public IActionResult Save([FromBody] Data.DTO.Category_Save_Request dto) { if (ModelState.IsValid) { return(BadRequest("kötü çocuk")); } Data.Entities.Category category = null; Data.Entities.Menu menu = null; Data.Entities.Category parentCategory = null; if (dto.MenuId != null) { menu = _unitOfWork.MenuRepository.Get((int)dto.MenuId); } if (dto.ParentCategoryId != null) { parentCategory = _unitOfWork.CategoryRepository.Get((int)dto.ParentCategoryId); } if (dto.CategoryId == 0) { //yeni kayıt category = new Data.Entities.Category() { Active = true, CreateDate = DateTime.UtcNow, Menu = menu, Name = dto.Name, Parent = parentCategory }; _unitOfWork.CategoryRepository.Insert(category); _unitOfWork.Complete(); } else { //güncelleme category = _unitOfWork.CategoryRepository .Query() .Include(a => a.Parent) .Include(a => a.Menu) .SingleOrDefault(a => a.Id == dto.CategoryId); if (category == null) { return(BadRequest("kaydetmeye çalıştığınız kategori bulunamadı")); } category.Name = dto.Name; category.Menu = menu; category.Parent = parentCategory; _unitOfWork.CategoryRepository.Insert(category); _unitOfWork.Complete(); } return(new JsonResult(category)); }
private Data.Entities.Menu _GetActiveMenu(Data.Entities.Menu menu) { if (!menu.IsRoot) { menu = DataContext.Menus.Where(x => x.Id == menu.ParentId).First(); return(this._GetActiveMenu(menu)); } return(menu); }
public GetSiteMenusResponse GetSiteMenus(GetSiteMenusRequest request) { var response = new GetSiteMenusResponse(); var menus = new List <Data.Entities.Menu>(); if (request.ParentId != null) { menus = DataContext.Menus.Where(x => x.IsActive == true && x.ParentId == request.ParentId && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId)).OrderBy(x => x.Order).ToList(); } else { menus = DataContext.Menus.Where(x => x.IsActive == true && x.ParentId == null && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId) || x.ParentId == 0 && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId)).OrderBy(x => x.Order).ToList(); } if (request.IncludeChildren) { var logout = new Data.Entities.Menu { Name = "Logout", IsActive = true, Url = "/Account/Logoff", Parent = null, Icon = "fa-sign-out" }; menus.Add(logout); //looping to get the children, we dont use Include because only include 1st level child menus foreach (var menu in menus) { menu.Menus = this._GetMenuChildren(menu.Id, request.RoleId); //if (menu.Name == "Setting" && menu.IsRoot == true) { // menu.Menus.Add(logout); //} } } response.Menus = menus.MapTo <GetSiteMenusResponse.Menu>(); ////set root menu active / selected ////set root menu active / selected //if (request.MenuId == null || request.MenuId == 0) //{ // response.MenuIdActive = DataContext.Menus.Where(x => x.ParentId == null || x.ParentId == 0).Select(x => x.Id).First(); //} //else //{ //} return(response); }
public DeleteMenuResponse Delete(int id) { var response = new DeleteMenuResponse(); response.Id = id; try { var menu = new Data.Entities.Menu { Id = id }; DataContext.Menus.Attach(menu); DataContext.Entry(menu).State = EntityState.Deleted; DataContext.SaveChanges(); response.IsSuccess = true; response.Message = "Menu item has been deleted successfully"; } catch (DbUpdateException dbUpdateException) { response.Message = dbUpdateException.Message; } return response; }
public DeleteMenuResponse Delete(int id) { var response = new DeleteMenuResponse(); response.Id = id; try { var menu = new Data.Entities.Menu { Id = id }; DataContext.Menus.Attach(menu); DataContext.Entry(menu).State = EntityState.Deleted; DataContext.SaveChanges(); response.IsSuccess = true; response.Message = "Menu item has been deleted successfully"; } catch (DbUpdateException dbUpdateException) { response.Message = dbUpdateException.Message; } return(response); }
public GetSiteMenusResponse GetSiteMenus(GetSiteMenusRequest request) { var response = new GetSiteMenusResponse(); var menus = new List<Data.Entities.Menu>(); if (request.ParentId != null) { menus = DataContext.Menus.Where(x => x.IsActive == true && x.ParentId == request.ParentId && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId)).OrderBy(x => x.Order).ToList(); } else { menus = DataContext.Menus.Where(x => x.IsActive == true && x.ParentId == null && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId) || x.ParentId == 0 && x.RoleGroups.Select(y => y.Id).Contains(request.RoleId)).OrderBy(x => x.Order).ToList(); } if (request.IncludeChildren) { var logout = new Data.Entities.Menu { Name = "Logout", IsActive = true, Url = "/Account/Logoff", Parent = null, Icon = "fa-sign-out" }; menus.Add(logout); //looping to get the children, we dont use Include because only include 1st level child menus foreach (var menu in menus) { menu.Menus = this._GetMenuChildren(menu.Id, request.RoleId); //if (menu.Name == "Setting" && menu.IsRoot == true) { // menu.Menus.Add(logout); //} } } response.Menus = menus.MapTo<GetSiteMenusResponse.Menu>(); ////set root menu active / selected ////set root menu active / selected //if (request.MenuId == null || request.MenuId == 0) //{ // response.MenuIdActive = DataContext.Menus.Where(x => x.ParentId == null || x.ParentId == 0).Select(x => x.Id).First(); //} //else //{ //} return response; }
public GetSiteMenuActiveResponse GetSiteMenuActive(GetSiteMenuActiveRequest request) { var response = new GetSiteMenuActiveResponse(); //get the menu from url request var url_request = new StringBuilder("/").Append(request.Controller).ToString(); if (!request.Action.ToLower().Equals("index")) { url_request = new StringBuilder(url_request).Append("/").Append(request.Action).ToString(); } var url_controller = new StringBuilder("/").Append(request.Controller).ToString(); try { //var menu = DataContext.Menus.Where(x => x.Url == request.Url).First(); //var menu = DataContext.Menus.Where(x => x.Url.ToLower() == url_request).First(); var menus = DataContext.Menus.Where(x => x.Url == url_request || x.Url.Contains(url_controller) || x.Url.Contains(url_request)).OrderBy(y => y.Id).ToList(); url_request = this._CleanUpMenuUrl(url_request); if (menus.Count == 1) { var menu = menus[0]; var RootMenu = this._GetActiveMenu(menu); response = RootMenu.MapTo <GetSiteMenuActiveResponse>(); response.SelectedMenu = menu.MapTo <Data.Entities.Menu>(); response.IsSuccess = true; } else if (menus.Count > 1) { int i = 0; foreach (var menu in menus) { // skip inactive menu //if (menu.IsActive == false) break; string edited_menu_url = this._CleanUpMenuUrl(menu.Url.ToString()); if (menu.Url.ToLower() == request.Url.ToLower() || edited_menu_url.Equals(request.Url.ToLower())) { var root = this._GetActiveMenu(menu); if (root.IsRoot) { response = root.MapTo <GetSiteMenuActiveResponse>(); response.SelectedMenu = menu.MapTo <Data.Entities.Menu>(); response.IsSuccess = true; } break; } else { i++; if (edited_menu_url.Equals(url_request.ToLower())) { var root = this._GetActiveMenu(menu); if (root.IsRoot) { response = root.MapTo <GetSiteMenuActiveResponse>(); response.SelectedMenu = menu.MapTo <Data.Entities.Menu>(); response.IsSuccess = true; } break; } else { if (i == menus.Count) { Data.Entities.Menu parent = null; Data.Entities.Menu root = null; if (menu.IsActive == false) { parent = menu.Parent; root = this._GetActiveMenu(parent); response = root.MapTo <GetSiteMenuActiveResponse>(); response.SelectedMenu = parent.MapTo <Data.Entities.Menu>(); } else { root = this._GetActiveMenu(menu); response = root.MapTo <GetSiteMenuActiveResponse>(); response.SelectedMenu = menu.MapTo <Data.Entities.Menu>(); } response.IsSuccess = true; break; } } } } } else { var menu = DataContext.Menus.First(m => m.Id == 1); menu = this._GetActiveMenu(menu); response = menu.MapTo <GetSiteMenuActiveResponse>(); response.SelectedMenu = menu.MapTo <Data.Entities.Menu>(); response.IsSuccess = false; } //var menu = DataContext.Menus.Where(x => x.Url.ToLower() == url_request || x.Url.ToLower().Contains(url_request)).OrderBy(y=>y.Id).First(); //menu = this._GetActiveMenu(menu); //response = menu.MapTo<GetSiteMenuActiveResponse>(); return(response); } catch (System.InvalidOperationException x) { var menu = DataContext.Menus.First(m => m.Id == 1); response = menu.MapTo <GetSiteMenuActiveResponse>(); response.Message = x.Message; return(response); } }