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();
        }
예제 #2
0
        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();
        }