public ActionResult Edit(EditUserAuthorizationViewModel model)
        {
            if (ModelState.IsValid)
            {
                var originPageMap = _userAuthorizationBll.GetById(model.RoleAuthorizationDto.Brole);

                if (originPageMap.PageMaps != null)
                {
                    var pageMaps     = originPageMap.PageMaps;
                    var listPageMaps = pageMaps.Where(x => x.Page.Id != Convert.ToInt32(Enums.MenuList.LOGIN)).ToList();
                    foreach (var pageMap in listPageMaps)
                    {
                        _pageBll.DeletePageMap(pageMap.Id);
                    }
                }
                var listNewPages = new List <PageMapDto>();
                if (model.Pages != null)
                {
                    foreach (var page in model.Pages)
                    {
                        if (page.IsChecked)
                        {
                            var pageMapDto = new PageMapDto();
                            pageMapDto.Page  = page;
                            pageMapDto.Brole = model.RoleAuthorizationDto.Brole;
                            listNewPages.Add(pageMapDto);
                        }
                    }
                }
                SetChanges(originPageMap, listNewPages);

                foreach (var listNewPage in listNewPages)
                {
                    var pageMapToSave = new PAGE_MAP();
                    pageMapToSave.PAGE_ID = listNewPage.Page.Id;
                    pageMapToSave.BROLE   = listNewPage.Brole;
                    _pageBll.Save(pageMapToSave);
                }
            }
            AddMessageInfo(Constans.SubmitMessage.Updated, Enums.MessageInfoType.Success);

            return(RedirectToAction("Index"));
        }
예제 #2
0
 public void Save(PAGE_MAP pageMap)
 {
     _pageMapRepository.InsertOrUpdate(pageMap);
     _uow.SaveChanges();
 }