예제 #1
0
        public async Task Post(ResourceEditDto dto)
        {
            if (TryValidateModel(dto))
            {
                using (var db = new TestDbContext())
                {
                    var model = await db.Resources.FirstOrDefaultAsync(x => x.Id == dto.Id);

                    if (model != null)
                    {
                        _mapper.Map(dto, model);
                        model.UpdatedOnUtc    = DateTime.Now;
                        db.Entry(model).State = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                    else
                    {
                        model = _mapper.Map <Resource>(dto);
                        model.CreatedOnUtc = DateTime.Now;
                        model.UpdatedOnUtc = DateTime.Now;
                        db.Resources.Add(model);
                        await db.SaveChangesAsync();
                    }
                }
            }
            else
            {
                throw new Exception(String.Join(";", ModelState.Values.SelectMany(v => v.Errors).Select(x => x.ErrorMessage)));
            }
        }
        public ViewResult Edit(int ResourceId)
        {
            var curRes         = this.repositoryWrapper.Resource.FindByCondition(r => r.ResourceId == ResourceId).First();
            var subjTitle      = this.repositoryWrapper.Subject.FindByCondition(s => s.SubjectId == curRes.SubjectId).First().Title;
            var newResourceDto = new ResourceEditDto()
            {
                ResourceId   = curRes.ResourceId,
                SubjectId    = curRes.SubjectId,
                Title        = curRes.Title,
                Url          = curRes.Url,
                Notes        = curRes.Notes,
                Type         = curRes.Type,
                SubjectTitle = subjTitle
            };

            return(View(newResourceDto));
        }
        public ActionResult Edit(ResourceEditDto editResourceDto)
        {
            try
            {
                var curRes = this.repositoryWrapper.Resource.FindByCondition(r => r.ResourceId == editResourceDto.ResourceId).First();
                curRes.Title = editResourceDto.Title;
                curRes.Url   = editResourceDto.Url;
                curRes.Notes = editResourceDto.Notes;
                curRes.Type  = editResourceDto.Type;

                repositoryWrapper.Resource.Update(curRes);
                repositoryWrapper.Save();

                return(RedirectToAction(nameof(Index), new { ParentId = curRes.SubjectId }));
            }
            catch
            {
                return(View());
            }
        }