public async Task <TEntity> Handle(TCommand request, CancellationToken cancellationToken) { var entity = PrepareEntity(request); var entryResult = await Context.Set <TEntity>().AddAsync(entity); await Context.SaveChangesAsync(); return(entryResult.Entity); }
public async Task <TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate <TResponse> next) { using (var transaction = _context.BeginTransaction()) { var result = await next(); await _context.SaveChangesAsync(); await transaction.CommitAsync(); return(result); } }
public async Task <Unit> Handle(TCommand request, CancellationToken cancellationToken) { var entity = Context.Set <TEntity>().FirstOrDefault(x => x.Id == request.Id); if (entity == null) { throw new EntityNotFoundException(); } Context.Set <TEntity>().Remove(entity); await Context.SaveChangesAsync(); return(Unit.Value); }
public async Task <Unit> Handle(TCommand request, CancellationToken cancellationToken) { var cityIds = request.Ids.Select(x => new TEntity() { Id = x }); _context.Set <TEntity>().RemoveRange(cityIds); var deleted = await _context.SaveChangesAsync(); #if DEBUG if (deleted != request.Ids.Count) { throw new ApplicationException("delete != request.Ids.Count"); } #endif return(Unit.Value); }
public async Task <UserInfo> Register(RegisterInfo registerInfo) { var user = await _context.Users.FirstOrDefaultAsync(x => x.UserSettingInfo.Login == registerInfo.Login); if (user != null) { throw new UserAlreadyExistException(); } PasswordHelper.CreatePasswordHash(registerInfo.Password, out var hash, out var salt); var settingInfo = new UserSettingInfo() { Login = registerInfo.Login, PasswordHash = hash, PasswordSalt = salt, }; var newUser = UserInfo.Create( registerInfo.FirstName, registerInfo.LastName, Domain.Enums.Role.User, settingInfo); using var transaction = _context.BeginTransaction(); try { var entity = _context.Users.Add(newUser); await _context.SaveChangesAsync(); await transaction.CommitAsync(); return(entity.Entity); } catch (Exception e) { await transaction.RollbackAsync(); throw e; } }
public async Task <Domain.Entities.Place> Handle(CommandUpdatePlace request, CancellationToken cancellationToken) { var mappedEntity = _mapper.Map <Domain.Entities.Place>(request); var originalPlace = _context.Places .Include(x => x.Dishes).ThenInclude(x => x.Image) .Include(x => x.HeaderImages).ThenInclude(x => x.Image) .FirstOrDefault(x => x.Id == request.Id) ?? throw new EntityNotFoundException(); //ProcessDishes(request, originalPlace); //ProcessHeaderImages(request, originalPlace); originalPlace.CategoryId = mappedEntity.CategoryId != 0 ? mappedEntity.CategoryId : originalPlace.CategoryId; originalPlace.Name = mappedEntity.Name ?? originalPlace.Name; originalPlace.PhoneNumber = mappedEntity.PhoneNumber ?? originalPlace.PhoneNumber; var updatedEntry = _context.Places.Update(originalPlace); await _context.SaveChangesAsync(cancellationToken); return(updatedEntry.Entity); }