Exemplo n.º 1
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();
        }
        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();
        }