-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathIDialogDbContext.cs
51 lines (47 loc) · 2.23 KB
/
IDialogDbContext.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities;
using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Actions;
using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Activities;
using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Elements;
using Digdir.Domain.Dialogporten.Domain.Outboxes;
using Digdir.Library.Entity.Abstractions.Features.Identifiable;
using Microsoft.EntityFrameworkCore;
using System.Linq.Expressions;
namespace Digdir.Domain.Dialogporten.Application.Externals;
public interface IDialogDbContext
{
DbSet<DialogEntity> Dialogs { get; }
DbSet<DialogStatus> DialogStatuses { get; }
DbSet<DialogActivity> DialogActivities { get; }
DbSet<DialogApiAction> DialogApiActions { get; }
DbSet<DialogApiActionEndpoint> DialogApiActionEndpoints { get; }
DbSet<DialogGuiAction> DialogGuiActions { get; }
DbSet<DialogElement> DialogElements { get; }
DbSet<DialogElementUrl> DialogElementUrls { get; }
DbSet<DialogGuiActionPriority> DialogGuiActionTypes { get; }
DbSet<DialogActivityType> DialogActivityTypes { get; }
DbSet<OutboxMessage> OutboxMessages { get; }
DbSet<OutboxMessageConsumer> OutboxMessageConsumers { get; }
DbSet<DialogSeenLog> DialogSeenLog { get; }
/// <summary>
/// Validate a property on the <typeparamref name="TEntity"/> using a lambda
/// expression to specify the predicate only when the property is modified.
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <typeparam name="TProperty"></typeparam>
/// <param name="entity"></param>
/// <param name="propertyExpression"></param>
/// <param name="predicate"></param>
/// <returns>
/// <para>False if the property is modified and the predicate returns false.</para>
/// <para>True if the property is unmodified or the predicate returns true.</para>
/// </returns>
bool MustWhenModified<TEntity, TProperty>(
TEntity entity,
Expression<Func<TEntity, TProperty>> propertyExpression,
Func<TProperty, bool> predicate)
where TEntity : class;
Task<List<Guid>> GetExistingIds<TEntity>(
IEnumerable<TEntity> entities,
CancellationToken cancellationToken)
where TEntity : class, IIdentifiableEntity;
}