public override async Task HandleAsync(EditMappedEntityCommand <Contest, ContestDetailsViewModel, int> command) { command.Entity.RemoveWindowsLineEnds(); var dbContest = await Repository.Set <Contest>() .Include(x => x.ContestAreas) .SingleOrDefaultAsync(x => x.Id == command.Id); if (dbContest == null) { throw new EntityNotFoundException(); } await SaveContestHelper.SyncManyToMany(command.Entity.SelectedAreaIds, Repository.Set <Area>(), dbContest.ContestAreas, SaveContestHelper.CreateContestAreaRelation, SaveContestHelper.CmpArea, dbContest); Mapper.Map(command.Entity, dbContest); Repository.Update(dbContest); await Repository.SaveChangesAsync(); }
public override async Task HandleAsync(EditMappedEntityCommand <TEntity, TViewModel, TKey> command) { var validationResult = await ValidateViewModel(command.Entity); if (validationResult?.Count > 0) { throw new ValidationException(validationResult); } var dbEntity = await Repository.FindAsync <TEntity>(command.Id); if (dbEntity == null) { throw new EntityNotFoundException(); } Mapper.Map(command.Entity, dbEntity); await Repository.SaveChangesAsync(); }