public async Task Invoke(HttpContext context, [FromServices] IImprovedUnitOfWork unitOfWork) { try { await next(context); } catch (Exception ex) { await HandleExceptionAsync(context, ex, unitOfWork); } }
public Handlers(IImprovedUnitOfWork unitOfWork, IMediator mediator, IArtistRepository repository, IAlbumRepository albumRepository) : base(unitOfWork, mediator, repository) { _albumRepository = albumRepository; }
public ImprovedRecordController(IMediator mediator, IImprovedUnitOfWork unitOfWork, TRepository repository) : base(mediator, unitOfWork, repository) { }
public ImprovedHandler(IImprovedUnitOfWork unitOfWork, IMediator mediator, TRepository repository) { _repository = repository; _unitOfWork = unitOfWork; _mediator = mediator; }
public SelfOneController(IMediator mediator, IImprovedUnitOfWork unitOfWork, ISelfOneRepository repository) : base(mediator, unitOfWork, repository) { }
public Handlers(IImprovedUnitOfWork unitOfWork, IMediator mediator, IManyRepository repository) : base(unitOfWork, mediator, repository) { }
public ImprovedBaseController(IMediator mediator, IImprovedUnitOfWork unitOfWork) { _unitOfWork = unitOfWork; _mediator = mediator; }
public ArtistController(IMediator mediator, IImprovedUnitOfWork unitOfWork, IArtistRepository repository) : base(mediator, unitOfWork, repository) { }
public ImprovedQueryController(IMediator mediator, IImprovedUnitOfWork unitOfWork, TRepository repository) : base(mediator, unitOfWork) { _repository = repository; }
public ManyController(IMediator mediator, IImprovedUnitOfWork unitOfWork, IManyRepository repository) : base(mediator, unitOfWork, repository) { }
public ImprovedAuthController(IMediator mediator, IImprovedUnitOfWork unitOfWork) : base(mediator, unitOfWork) { }
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)); }
public static void IncludeInTrasation(this IImprovedRepository repository, IImprovedUnitOfWork unitOfWork) { unitOfWork.Begin(repository); }