コード例 #1
0
 public async Task Invoke(HttpContext context, [FromServices] IImprovedUnitOfWork unitOfWork)
 {
     try
     {
         await next(context);
     }
     catch (Exception ex)
     {
         await HandleExceptionAsync(context, ex, unitOfWork);
     }
 }
コード例 #2
0
 public Handlers(IImprovedUnitOfWork unitOfWork, IMediator mediator, IArtistRepository repository, IAlbumRepository albumRepository) : base(unitOfWork, mediator, repository)
 {
     _albumRepository = albumRepository;
 }
コード例 #3
0
 public ImprovedRecordController(IMediator mediator, IImprovedUnitOfWork unitOfWork, TRepository repository) : base(mediator, unitOfWork, repository)
 {
 }
コード例 #4
0
 public ImprovedHandler(IImprovedUnitOfWork unitOfWork, IMediator mediator, TRepository repository)
 {
     _repository = repository;
     _unitOfWork = unitOfWork;
     _mediator   = mediator;
 }
コード例 #5
0
 public SelfOneController(IMediator mediator, IImprovedUnitOfWork unitOfWork, ISelfOneRepository repository) : base(mediator, unitOfWork, repository)
 {
 }
コード例 #6
0
 public Handlers(IImprovedUnitOfWork unitOfWork, IMediator mediator, IManyRepository repository) : base(unitOfWork, mediator, repository)
 {
 }
コード例 #7
0
 public ImprovedBaseController(IMediator mediator, IImprovedUnitOfWork unitOfWork)
 {
     _unitOfWork = unitOfWork;
     _mediator   = mediator;
 }
コード例 #8
0
 public ArtistController(IMediator mediator, IImprovedUnitOfWork unitOfWork, IArtistRepository repository) : base(mediator, unitOfWork, repository)
 {
 }
コード例 #9
0
 public ImprovedQueryController(IMediator mediator, IImprovedUnitOfWork unitOfWork, TRepository repository) : base(mediator, unitOfWork)
 {
     _repository = repository;
 }
コード例 #10
0
 public ManyController(IMediator mediator, IImprovedUnitOfWork unitOfWork, IManyRepository repository) : base(mediator, unitOfWork, repository)
 {
 }
コード例 #11
0
 public ImprovedAuthController(IMediator mediator, IImprovedUnitOfWork unitOfWork) : base(mediator, unitOfWork)
 {
 }
コード例 #12
0
        private static Task HandleExceptionAsync(HttpContext context, Exception exception, IImprovedUnitOfWork unitOfWork)
        {
            var code   = HttpStatusCode.InternalServerError; // 500 if unexpected
            var result = string.Empty;

            if (exception is EntityException)
            {
                code   = HttpStatusCode.BadRequest;
                result = JsonConvert.SerializeObject(new ResponseResult(null, (exception as EntityException).Notifications), new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });
            }
            else if (exception is UnauthorizedException)
            {
                code   = HttpStatusCode.Unauthorized;
                result = JsonConvert.SerializeObject(new ResponseResult(null, (exception as UnauthorizedException).Notifications), new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });
            }
            else
            {
                result = JsonConvert.SerializeObject(new { error = exception.Message }, new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });

#if DEBUG
                ImprovedLogger.Write(exception);
#endif
            }

            unitOfWork.Rollback();

            context.Response.ContentType = "application/json";
            context.Response.StatusCode  = (int)code;
            return(context.Response.WriteAsync(result));
        }
コード例 #13
0
 public static void IncludeInTrasation(this IImprovedRepository repository, IImprovedUnitOfWork unitOfWork)
 {
     unitOfWork.Begin(repository);
 }