Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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;
        }
Exemplo n.º 7
0
        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);
            }
        }