public override async Task HandleAsync(CreateMappedEntityCommand <Contest, ContestDetailsViewModel> command) { //Если создавать контест на винде, перевод строки там два символа. А потом при регистрации на никсах идет сплит по переводу строки, а это один символ. И \r добавляется сзади к паролю. //Это ломает экспорт в csv и при отправле пароля по email этот символ рендерится как пробел command.Entity.RemoveWindowsLineEnds(); var contest = new Contest(); await SaveContestHelper.SyncManyToMany(command.Entity.SelectedAreaIds, Repository.Set <Area>(), command.Entity.ContestAreas, SaveContestHelper.CreateContestAreaRelation, SaveContestHelper.CmpArea, contest); Mapper.Map(command.Entity, contest); Repository.Add(contest); await Repository.SaveChangesAsync(); }
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(); }