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); } }
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)); }
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)); }
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; }
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)); } }