示例#1
0
 public AccessCode Update(PageEditDTO pageEditDTO, UserDTO userDTO)
 {
     using (var Data = DataFactory.Get())
     {
         var page = Data.PageRepository.Get().FirstOrDefault(X => X.Id == pageEditDTO.Id);
         var user = GetUserService.Get(userDTO, Data);
         if (page == null)
         {
             return(AccessCode.NotFound);
         }
         if (!PageRules.CanEdit(user, page))
         {
             return(AccessCode.NoPremision);
         }
         //-------------------------
         if (pageEditDTO.ParentId > 0) // Проверка на цикличность
         {
             var parent = Data.PageRepository.Get().FirstOrDefault(x => x.Id == pageEditDTO.ParentId);
             if (parent != null && CheckCycle(parent, page))
             {
                 return(AccessCode.Error);
             }
         }
         //-------------------------
         EditPage(page, pageEditDTO, Data);
         Data.PageRepository.Edited(page);
         Data.SaveChanges();
         Map.Update(page);
         return(AccessCode.Succsess);
     }
 }
示例#2
0
        public IActionResult Edit(PageEditDTO pageEditDTO)
        {
            var res = PageService.Update(pageEditDTO, GetUser());

            if (res == AccessCode.Succsess)
            {
                return(RedirectToAction("index", new { id = pageEditDTO.Id }));
            }
            return(Redirect(res));
        }
示例#3
0
        public IActionResult Create(PageEditDTO pageEditDTO)
        {
            var res = PageService.Create(pageEditDTO, GetUser());

            if (res.Code == AccessCode.Succsess)
            {
                return(RedirectToAction("index", new { id = res.Id }));
            }
            return(Redirect(res.Code));
        }
示例#4
0
 private void EditPage(Page page, PageEditDTO pageEditDTO, IUOW Data)
 {
     if (page == null || pageEditDTO == null)
     {
         return;
     }
     page.Name = pageEditDTO.Name;
     if (pageEditDTO.ParentId >= 0)
     {
         page.ParentPage = Data.PageRepository.Get().FirstOrDefault(x => x.Id == pageEditDTO.ParentId);
     }
     else
     {
         page.ParentPage = null;
     }
     page.Published = pageEditDTO.Published;
     page.Text      = pageEditDTO.Text;
 }
示例#5
0
 public CreateResultDTO Create(PageEditDTO pageEditDTO, UserDTO userDTO)
 {
     using (var Data = DataFactory.Get())
     {
         var user = GetUserService.Get(userDTO, Data);
         if (!PageRules.CanCreate(user))
         {
             return(CreateResultDTO.NoPremision);
         }
         var page = new Page();
         EditPage(page, pageEditDTO, Data);
         Data.PageRepository.Add(page);
         //Добавить проверку на цикл
         Data.SaveChanges();
         Map.Add(page);
         return(new CreateResultDTO(page.Id, AccessCode.Succsess));
     }
 }