mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-10 17:59:38 +08:00
fix: fix formatting
This commit is contained in:
parent
61d90da20e
commit
10627f8de6
@ -29,4 +29,4 @@ app.UseEndpoints(endpoints =>
|
||||
|
||||
app.MapGet("/", x => x.Response.WriteAsync(appOptions.Name));
|
||||
|
||||
app.Run();
|
||||
app.Run();
|
||||
@ -213,4 +213,4 @@ var gateway = builder.AddProject<Projects.ApiGateway>("api-gateway")
|
||||
.WithHttpEndpoint(port: 5001, name: "gateway-http")
|
||||
.WithHttpsEndpoint(port: 5000, name: "gateway-https");
|
||||
|
||||
builder.Build().Run();
|
||||
builder.Build().Run();
|
||||
@ -47,4 +47,4 @@ public class CachingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest,
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4,4 +4,4 @@ public interface ICacheRequest
|
||||
{
|
||||
string CacheKey { get; }
|
||||
DateTime? AbsoluteExpirationRelativeToNow { get; }
|
||||
}
|
||||
}
|
||||
@ -4,4 +4,4 @@ namespace BuildingBlocks.Caching
|
||||
{
|
||||
string CacheKey { get; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -36,4 +36,4 @@ namespace BuildingBlocks.Caching
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7,4 +7,4 @@ public static class IdentityConstant
|
||||
public const string Admin = "admin";
|
||||
public const string User = "user";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8,4 +8,4 @@ public record FlightDeleted(Guid Id) : IIntegrationEvent;
|
||||
public record AircraftCreated(Guid Id) : IIntegrationEvent;
|
||||
public record AirportCreated(Guid Id) : IIntegrationEvent;
|
||||
public record SeatCreated(Guid Id) : IIntegrationEvent;
|
||||
public record SeatReserved(Guid Id) : IIntegrationEvent;
|
||||
public record SeatReserved(Guid Id) : IIntegrationEvent;
|
||||
@ -2,4 +2,4 @@ using BuildingBlocks.Core.Event;
|
||||
|
||||
namespace BuildingBlocks.Contracts.EventBus.Messages;
|
||||
|
||||
public record UserCreated(Guid Id, string Name, string PassportNumber) : IIntegrationEvent;
|
||||
public record UserCreated(Guid Id, string Name, string PassportNumber) : IIntegrationEvent;
|
||||
@ -3,4 +3,4 @@ using BuildingBlocks.Core.Event;
|
||||
namespace BuildingBlocks.Contracts.EventBus.Messages;
|
||||
|
||||
public record PassengerRegistrationCompleted(Guid Id) : IIntegrationEvent;
|
||||
public record PassengerCreated(Guid Id) : IIntegrationEvent;
|
||||
public record PassengerCreated(Guid Id) : IIntegrationEvent;
|
||||
@ -2,4 +2,4 @@ using BuildingBlocks.Core.Event;
|
||||
|
||||
namespace BuildingBlocks.Contracts.EventBus.Messages;
|
||||
|
||||
public record BookingCreated(Guid Id) : IIntegrationEvent;
|
||||
public record BookingCreated(Guid Id) : IIntegrationEvent;
|
||||
@ -9,4 +9,4 @@ public interface ICommand : ICommand<Unit>
|
||||
public interface ICommand<out T> : IRequest<T>
|
||||
where T : notnull
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -11,4 +11,4 @@ public interface ICommandHandler<in TCommand, TResponse> : IRequestHandler<TComm
|
||||
where TCommand : ICommand<TResponse>
|
||||
where TResponse : notnull
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -5,4 +5,4 @@ namespace BuildingBlocks.Core.CQRS;
|
||||
public interface IQuery<out T> : IRequest<T>
|
||||
where T : notnull
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -6,4 +6,4 @@ public interface IQueryHandler<in TQuery, TResponse> : IRequestHandler<TQuery, T
|
||||
where TQuery : IQuery<TResponse>
|
||||
where TResponse : notnull
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -34,4 +34,4 @@ public class CompositeEventMapper : IEventMapper
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6,4 +6,4 @@ public enum EventType
|
||||
DomainEvent = 1,
|
||||
IntegrationEvent = 2,
|
||||
InternalCommand = 4
|
||||
}
|
||||
}
|
||||
@ -2,4 +2,4 @@ namespace BuildingBlocks.Core.Event;
|
||||
|
||||
public interface IDomainEvent : IEvent
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -9,4 +9,4 @@ public interface IEvent : INotification
|
||||
Guid EventId => NewId.NextGuid();
|
||||
public DateTime OccurredOn => DateTime.Now;
|
||||
public string EventType => GetType().AssemblyQualifiedName;
|
||||
}
|
||||
}
|
||||
@ -2,4 +2,4 @@ namespace BuildingBlocks.Core.Event;
|
||||
|
||||
public interface IHaveIntegrationEvent
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -5,4 +5,4 @@ namespace BuildingBlocks.Core.Event;
|
||||
[ExcludeFromTopology]
|
||||
public interface IIntegrationEvent : IEvent
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -2,4 +2,4 @@ namespace BuildingBlocks.Core.Event;
|
||||
|
||||
public interface IInternalCommand : IEvent
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -2,4 +2,4 @@ using BuildingBlocks.Core.CQRS;
|
||||
|
||||
namespace BuildingBlocks.Core.Event;
|
||||
|
||||
public record InternalCommand : IInternalCommand, ICommand;
|
||||
public record InternalCommand : IInternalCommand, ICommand;
|
||||
@ -23,4 +23,4 @@ public class MessageEnvelope<TMessage> : MessageEnvelope
|
||||
}
|
||||
|
||||
public new TMessage? Message { get; }
|
||||
}
|
||||
}
|
||||
@ -152,4 +152,4 @@ public sealed class EventDispatcher(
|
||||
|
||||
return headers;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8,4 +8,4 @@ public interface IEventDispatcher
|
||||
where T : IEvent;
|
||||
public Task SendAsync<T>(T @event, Type type = null, CancellationToken cancellationToken = default)
|
||||
where T : IEvent;
|
||||
}
|
||||
}
|
||||
@ -6,4 +6,4 @@ public interface IEventMapper
|
||||
{
|
||||
IIntegrationEvent? MapToIntegrationEvent(IDomainEvent @event);
|
||||
IInternalCommand? MapToInternalCommand(IDomainEvent @event);
|
||||
}
|
||||
}
|
||||
@ -3,4 +3,4 @@ using BuildingBlocks.Core.Event;
|
||||
namespace BuildingBlocks.Core;
|
||||
|
||||
public record IntegrationEventWrapper<TDomainEventType>(TDomainEventType DomainEvent) : IIntegrationEvent
|
||||
where TDomainEventType : IDomainEvent;
|
||||
where TDomainEventType : IDomainEvent;
|
||||
@ -20,4 +20,4 @@ public abstract record Aggregate<TId> : Entity<TId>, IAggregate<TId>
|
||||
|
||||
return dequeuedEvents;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9,4 +9,4 @@ public abstract record Entity<T> : IEntity<T>
|
||||
public long? LastModifiedBy { get; set; }
|
||||
public bool IsDeleted { get; set; }
|
||||
public long Version { get; set; }
|
||||
}
|
||||
}
|
||||
@ -10,4 +10,4 @@ public interface IAggregate : IEntity
|
||||
{
|
||||
IReadOnlyList<IDomainEvent> DomainEvents { get; }
|
||||
IEvent[] ClearDomainEvents();
|
||||
}
|
||||
}
|
||||
@ -12,4 +12,4 @@ public interface IEntity : IVersion
|
||||
public DateTime? LastModified { get; set; }
|
||||
public long? LastModifiedBy { get; set; }
|
||||
public bool IsDeleted { get; set; }
|
||||
}
|
||||
}
|
||||
@ -4,4 +4,4 @@ namespace BuildingBlocks.Core.Model;
|
||||
public interface IVersion
|
||||
{
|
||||
long Version { get; set; }
|
||||
}
|
||||
}
|
||||
@ -33,4 +33,4 @@ public static class Extensions
|
||||
|
||||
return PageList<TEntity>.Create(items.AsReadOnly(), pageRequest.PageNumber, pageRequest.PageSize, total);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -13,4 +13,4 @@ public interface IPageList<T>
|
||||
int TotalCount { get; init; }
|
||||
int PageNumber { get; init; }
|
||||
int PageSize { get; init; }
|
||||
}
|
||||
}
|
||||
@ -4,4 +4,4 @@ using MediatR;
|
||||
|
||||
public interface IPageQuery<out TResponse> : IPageRequest, IRequest<TResponse>
|
||||
where TResponse : class
|
||||
{ }
|
||||
{ }
|
||||
@ -6,4 +6,4 @@ public interface IPageRequest
|
||||
int PageSize { get; init; }
|
||||
string? Filters { get; init; }
|
||||
string? SortOrder { get; init; }
|
||||
}
|
||||
}
|
||||
@ -16,4 +16,4 @@ public record PageList<T>(IReadOnlyList<T> Items, int PageNumber, int PageSize,
|
||||
{
|
||||
return new PageList<T>(items, pageNumber, pageSize, totalItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -178,4 +178,4 @@ public abstract class AppDbContextBase : DbContext, IDbContext
|
||||
throw new System.Exception("try for find IAggregate", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -57,4 +57,4 @@ namespace BuildingBlocks.EFCore
|
||||
return CreateNewInstance(options);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -78,4 +78,4 @@ where TResponse : notnull
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -138,4 +138,4 @@ public static class Extensions
|
||||
|
||||
await seedersManager.ExecuteSeedAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9,4 +9,4 @@ namespace BuildingBlocks.EFCore
|
||||
{
|
||||
Task SeedAllAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -15,4 +15,4 @@ public interface IDbContext
|
||||
Task RollbackTransactionAsync(CancellationToken cancellationToken = default);
|
||||
IExecutionStrategy CreateExecutionStrategy();
|
||||
Task ExecuteTransactionalAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
}
|
||||
@ -4,4 +4,4 @@ public interface ISeedManager
|
||||
{
|
||||
Task ExecuteSeedAsync();
|
||||
Task ExecuteTestSeedAsync();
|
||||
}
|
||||
}
|
||||
@ -3,4 +3,4 @@ namespace BuildingBlocks.EFCore;
|
||||
public class PostgresOptions
|
||||
{
|
||||
public string ConnectionString { get; set; }
|
||||
}
|
||||
}
|
||||
@ -39,4 +39,4 @@ public class SeedManager(
|
||||
logger.LogInformation("Seed {SeederName} is completed.", testSeeder.GetType().Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -25,4 +25,4 @@ public class BackgroundWorker : BackgroundService
|
||||
await perform(stoppingToken);
|
||||
logger.LogInformation("Background worker stopped");
|
||||
}, stoppingToken);
|
||||
}
|
||||
}
|
||||
@ -90,4 +90,4 @@ public static class EventStoreDBConfigExtensions
|
||||
.AsImplementedInterfaces()
|
||||
.WithTransientLifetime());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -24,5 +24,4 @@ namespace BuildingBlocks.EventStoreDB.Events
|
||||
|
||||
public virtual void When(object @event) { }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -36,4 +36,4 @@ public static class AggregateStreamExtensions
|
||||
|
||||
return aggregate;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -40,4 +40,4 @@ public class EventTypeMapper
|
||||
|
||||
return type;
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -12,4 +12,4 @@ namespace BuildingBlocks.EventStoreDB.Events
|
||||
public interface IAggregateEventSourcing<T> : IAggregateEventSourcing, IEntity<T>
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6,4 +6,4 @@ namespace BuildingBlocks.EventStoreDB.Events;
|
||||
public interface IEventHandler<in TEvent> : INotificationHandler<TEvent>
|
||||
where TEvent : IEvent
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -4,4 +4,4 @@ namespace BuildingBlocks.EventStoreDB.Events;
|
||||
|
||||
public interface IExternalEvent : IEvent
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -3,4 +3,4 @@ namespace BuildingBlocks.EventStoreDB.Events;
|
||||
public interface IProjection
|
||||
{
|
||||
void When(object @event);
|
||||
}
|
||||
}
|
||||
@ -26,5 +26,4 @@ public class StreamEvent<T> : StreamEvent where T : notnull
|
||||
public StreamEvent(T data, EventMetadata metadata) : base(data, metadata)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -16,4 +16,4 @@ public static class StreamEventExtensions
|
||||
var type = typeof(StreamEvent<>).MakeGenericType(eventData.GetType());
|
||||
return (StreamEvent)Activator.CreateInstance(type, eventData, metaData)!;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -25,4 +25,4 @@ public class StreamNameMapper
|
||||
return $"{tenantPrefix}{streamType.Name}-{aggregateId}";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -23,4 +23,4 @@ public static class Extensions
|
||||
.AddEventStoreDB(configuration)
|
||||
.AddProjections(assembliesToScan);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7,4 +7,4 @@ public interface IProjectionProcessor
|
||||
{
|
||||
Task ProcessEventAsync<T>(StreamEvent<T> streamEvent, CancellationToken cancellationToken = default)
|
||||
where T : INotification;
|
||||
}
|
||||
}
|
||||
@ -9,4 +9,4 @@ public interface IProjectionPublisher
|
||||
where T : INotification;
|
||||
|
||||
Task PublishAsync(StreamEvent streamEvent, CancellationToken cancellationToken = default);
|
||||
}
|
||||
}
|
||||
@ -36,4 +36,4 @@ public class ProjectionPublisher : IProjectionPublisher
|
||||
return (Task)method
|
||||
.Invoke(this, new object[] { streamEvent, cancellationToken })!;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -71,4 +71,4 @@ public class EventStoreDBRepository<T> : IEventStoreDBRepository<T> where T : cl
|
||||
return events
|
||||
.Select(EventStoreDBSerializer.ToJsonEventData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -30,4 +30,4 @@ public static class RepositoryExtensions
|
||||
|
||||
return await repository.Update(entity, expectedVersion, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -36,4 +36,4 @@ public static class EventStoreDBSerializer
|
||||
Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(@event)),
|
||||
Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new { }))
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -78,4 +78,4 @@ public static class JsonObjectContractProvider
|
||||
.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
|
||||
.OrderByDescending(e => e.GetParameters().Length)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
}
|
||||
@ -12,4 +12,4 @@ public class NonDefaultConstructorContractResolver : DefaultContractResolver
|
||||
base.CreateConstructorParameters
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -65,4 +65,4 @@ public static class SerializationExtensions
|
||||
{
|
||||
return new StringContent(obj.ToJson(), Encoding.UTF8, "application/json");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -73,4 +73,4 @@ public class EventStoreDBSubscriptionCheckpointRepository : ISubscriptionCheckpo
|
||||
}
|
||||
|
||||
private static string GetCheckpointStreamName(string subscriptionId) => $"checkpoint_{subscriptionId}";
|
||||
}
|
||||
}
|
||||
@ -188,4 +188,4 @@ public class EventStoreDBSubscriptionToAll
|
||||
logger.LogInformation("Checkpoint event - ignoring");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5,4 +5,4 @@ public interface ISubscriptionCheckpointRepository
|
||||
ValueTask<ulong?> Load(string subscriptionId, CancellationToken ct);
|
||||
|
||||
ValueTask Store(string subscriptionId, ulong position, CancellationToken ct);
|
||||
}
|
||||
}
|
||||
@ -17,4 +17,4 @@ public class InMemorySubscriptionCheckpointRepository : ISubscriptionCheckpointR
|
||||
|
||||
return ValueTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -10,4 +10,4 @@ public class AggregateNotFoundException : System.Exception
|
||||
{
|
||||
return new AggregateNotFoundException(typeof(T).Name, id);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -11,4 +11,4 @@ public class AppException : CustomException
|
||||
public AppException(string message, System.Exception innerException, HttpStatusCode statusCode = HttpStatusCode.BadRequest, int? code = null) : base(message, innerException, statusCode, code)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -10,4 +10,4 @@ namespace BuildingBlocks.Exception
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8,4 +8,4 @@ namespace BuildingBlocks.Exception
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -34,4 +34,4 @@ public class CustomException : System.Exception
|
||||
public HttpStatusCode StatusCode { get; }
|
||||
|
||||
public int? Code { get; }
|
||||
}
|
||||
}
|
||||
@ -13,4 +13,4 @@ namespace SmartCharging.Infrastructure.Exceptions
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -20,4 +20,4 @@ public class GrpcExceptionInterceptor : Interceptor
|
||||
throw new RpcException(new Status(StatusCode.Internal, exception.Message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -14,4 +14,4 @@ namespace BuildingBlocks.Exception
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8,4 +8,4 @@ namespace BuildingBlocks.Exception
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9,4 +9,4 @@ public class ProblemDetailsWithCode : ProblemDetails
|
||||
{
|
||||
[JsonPropertyName("code")]
|
||||
public int? Code { get; set; }
|
||||
}
|
||||
}
|
||||
@ -8,4 +8,4 @@ namespace BuildingBlocks.Exception
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -87,4 +87,4 @@ public static class Extensions
|
||||
|
||||
return app;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,4 +3,4 @@ namespace BuildingBlocks.HealthCheck;
|
||||
public class HealthOptions
|
||||
{
|
||||
public bool Enabled { get; set; } = true;
|
||||
}
|
||||
}
|
||||
@ -21,4 +21,4 @@ public class AuthHeaderHandler : DelegatingHandler
|
||||
|
||||
return base.SendAsync(request, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -74,4 +74,4 @@ namespace BuildingBlocks.Jwt
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -37,4 +37,4 @@ public class LoggingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest,
|
||||
_logger.LogInformation("[{Prefix}] Handled {X-RequestData}", prefix, typeof(TRequest).Name);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -16,4 +16,4 @@ public static class Extensions
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -35,4 +35,4 @@ public class ConsumeFilter<T> : IFilter<ConsumeContext<T>>
|
||||
public void Probe(ProbeContext context)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -117,4 +117,4 @@ public static class Extensions
|
||||
.Ignore<
|
||||
ValidationException>(); // don't retry if we have invalid data and message goes to _error queue masstransit
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7,4 +7,4 @@ public class RabbitMqOptions
|
||||
public string UserName { get; set; }
|
||||
public string Password { get; set; }
|
||||
public ushort? Port { get; set; }
|
||||
}
|
||||
}
|
||||
@ -4,4 +4,4 @@ public enum TransportType
|
||||
{
|
||||
RabbitMq,
|
||||
InMemory
|
||||
}
|
||||
}
|
||||
@ -49,4 +49,4 @@ namespace BuildingBlocks.Mongo
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -10,4 +10,4 @@ public interface IMongoDbContext : IDisposable
|
||||
Task CommitTransactionAsync(CancellationToken cancellationToken = default);
|
||||
Task RollbackTransaction(CancellationToken cancellationToken = default);
|
||||
void AddCommand(Func<Task> func);
|
||||
}
|
||||
}
|
||||
@ -5,4 +5,4 @@ namespace BuildingBlocks.Mongo;
|
||||
public interface IMongoRepository<TEntity, in TId> : IRepository<TEntity, TId>
|
||||
where TEntity : class, IAggregate<TId>
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -2,4 +2,4 @@ namespace BuildingBlocks.Mongo;
|
||||
|
||||
public interface IMongoUnitOfWork<out TContext> : IUnitOfWork<TContext> where TContext : class, IMongoDbContext
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -46,4 +46,4 @@ public interface IRepository<TEntity, in TId> :
|
||||
public interface IRepository<TEntity> : IRepository<TEntity, long>
|
||||
where TEntity : class, IAggregate<long>
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -5,4 +5,4 @@ public interface ITransactionAble
|
||||
Task BeginTransactionAsync(CancellationToken cancellationToken = default);
|
||||
Task RollbackTransactionAsync(CancellationToken cancellationToken = default);
|
||||
Task CommitTransactionAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user