Пример #1
0
    public ReturnData AJAX_GetDetail(int idRole)
    {
        try
        {
            DataClassesDataContext       db          = new DataClassesDataContext();
            Class_Role                   role        = new Class_Role();
            Class_Menu                   menu        = new Class_Menu();
            Class_Order_Status           orderStatus = new Class_Order_Status();
            Dictionary <string, dynamic> data        = new Dictionary <string, dynamic>();
            data.Add("Role", Dynamic_GetDetail(db, idRole));
            data.Add("TreeMenus", role.GetTree_Menu(db, idRole));
            data.Add("SelectedMenus", role.Dynamic_GetData_Menu_ByIDRole(idRole));
            data.Add("TreeOrderStatus", GetTree_OrderStatus(db, idRole));
            data.Add("SelectedOrderStatus", Dynamic_GetData_OrderStatus_ByIDRole(idRole));
            data.Add("Notification", Dynamic_GetNotification_OrderStatus(db, idRole));
            return(ReturnData.MessageSuccess("OK", data));
        }
        catch (Exception ex)
        {
            Class_Log_Error log = new Class_Log_Error();
            log.Insert(ex.Message, ex.StackTrace);

            return(ReturnData.MessageFailed(ex.Message, null));
        }
    }
Пример #2
0
    private IEnumerable <WITLibrary.JsTreeModel> GenerateUL(DataClassesDataContext db, Class_Menu _menu, IEnumerable <TBMenu> menus, int idRole)
    {
        List <WITLibrary.JsTreeModel> _newMenu = new List <WITLibrary.JsTreeModel>();

        foreach (var menu in menus)
        {
            if (menu.TBMenus.AsEnumerable().Any())
            {
                _newMenu.Add(new WITLibrary.JsTreeModel
                {
                    text  = menu.Name,
                    state = new WITLibrary.JsTreeState {
                        selected = menu.TBRole_Menus.AsEnumerable().FirstOrDefault(x => x.IDRole == idRole) != null
                    },
                    li_attr = new WITLibrary.JsTreeAttr {
                        id = menu.IDMenu.ToString()
                    },
                    children = GenerateUL(db, _menu, _menu.GetDataBy_IDMenuParent(db, menu.IDMenu), idRole).ToArray()
                });
            }
            else
            {
                _newMenu.Add(new WITLibrary.JsTreeModel
                {
                    text    = menu.Name,
                    li_attr = new WITLibrary.JsTreeAttr {
                        id = menu.IDMenu.ToString()
                    },
                    state = new WITLibrary.JsTreeState {
                        selected = menu.TBRole_Menus.AsEnumerable().FirstOrDefault(x => x.IDRole == idRole) != null
                    },
                    children = GenerateUL(db, _menu, _menu.GetDataBy_IDMenuParent(db, menu.IDMenu), idRole).ToArray()
                });
            }
        }
        return(_newMenu.ToArray());
    }
Пример #3
0
    public IEnumerable <dynamic> GetTree_Menu(DataClassesDataContext db, int idRole)
    {
        Class_Menu _menu = new Class_Menu();

        return(GenerateUL(db, _menu, _menu.GetDataBy_IDMenuParent(db, 0), idRole));
    }
Пример #4
0
    public ReturnData AJAX_Update_Menu(int idRole, int[] menus)
    {
        try
        {
            using (DataClassesDataContext db = new DataClassesDataContext())
            {
                List <int> disctMenu = new List <int>();
                disctMenu = menus.Distinct().ToList();
                if (disctMenu.Count() == 0)
                {
                    return(ReturnData.MessageFailed("No selected menu to insert.", null));
                }

                dynamic _role = Dynamic_GetDetail(db, idRole);
                if (_role == null)
                {
                    return(ReturnData.MessageFailed("The requested resource does not exist.", null));
                }

                TBRole_Menu[] _oldMenu = GetData_Menu_ByIDRole(db, _role.IDRole);
                List <TBMenu> _menus   = new List <TBMenu>();
                Class_Menu    _menu    = new Class_Menu();
                foreach (int item in disctMenu)
                {
                    if (_oldMenu.AsEnumerable().Where(x => x.IDMenu == item).FirstOrDefault() == null)
                    {
                        TBMenu _newData = _menu.GetDetail(db, item);
                        if (_menu == null)
                        {
                            return(ReturnData.MessageFailed("Some menu does not exists.", null));
                        }

                        _menus.Add(_newData);
                    }
                }
                foreach (TBRole_Menu item in _oldMenu)
                {
                    dynamic _item = disctMenu.Where(x => x == item.IDMenu).FirstOrDefault();
                    if (_item == 0)
                    {
                        db.TBRole_Menus.DeleteOnSubmit(item);
                    }
                    //else
                    //{
                    //    if (!item.TBCategory.Active)
                    //        return ReturnData.MessageFailed(item.TBCategory.Name + " failed to insert, because " + item.TBCategory.Name + " does not active.", null);
                    //}
                }
                db.SubmitChanges();

                foreach (dynamic item in _menus)
                {
                    TBRole_Menu _newData = GetData_Menu_ByIDRole(db, idRole).Where(x => x.IDMenu == item.IDMenu && x.IDRole == idRole).FirstOrDefault();
                    if (_newData == null)
                    {
                        _newData = new TBRole_Menu
                        {
                            IDRole         = idRole,
                            IDMenu         = item.IDMenu,
                            DateInsert     = DateTime.Now,
                            DateLastUpdate = DateTime.Now,
                        };

                        db.TBRole_Menus.InsertOnSubmit(_newData);
                    }
                }
                db.SubmitChanges();

                Dictionary <string, dynamic> _result = new Dictionary <string, dynamic>();
                _result.Add("Role", Dynamic_GetDetail(db, idRole));
                _result.Add("SelectedMenus", Dynamic_GetData_Menu_ByIDRole(idRole));
                _result.Add("SelectedOrderStatus", Dynamic_GetData_OrderStatus_ByIDRole(idRole));
                _result.Add("TreeMenus", GetTree_Menu(db, idRole));
                _result.Add("TreeOrderStatus", GetTree_OrderStatus(db, idRole));
                _result.Add("Notification", Dynamic_GetNotification_OrderStatus(db, idRole));
                return(ReturnData.MessageSuccess(disctMenu.Count() + " menus has been successfully updated.", _result));
            }
        }
        catch (Exception ex)
        {
            Class_Log_Error log = new Class_Log_Error();
            log.Insert(ex.Message, ex.StackTrace);

            return(ReturnData.MessageFailed(ex.Message, null));
        }
    }