public ActionResult UpdateStaff(SA_User entity)
        {
            if (ModelState.IsValid)
            {
                entity.LastModifiedBy   = GetCurrentUserName();
                entity.LastModifiedDate = DateTime.Now;
                var org = new SA_Organization();
                entity.Account  = entity.Name;
                org             = _service.GetOrgContainsId(entity.Id);
                org.Name        = entity.Name;
                org.Description = entity.Name;
                org.Code        = entity.Name;
                _service.UpdateOrganization(org);
                _service.UpdateUser(entity);
                _service.Save();

                var window = this.GetCmp <Window>("windowSA_User");
                window.Hide();

                TreePanel treePanel = this.GetCmp <TreePanel>("treePanelSAOrganization");
                treePanel.GetNodeById(entity.MainOrgId).Reload();
                return(this.Direct());
            }

            return(this.Direct());
        }
        public ActionResult CreatePosition(string currentNode)
        {
            SA_Organization   currentOrg  = JSON.Deserialize <SA_Organization>(currentNode);
            PartialViewResult partialView =
                new PartialViewResult
            {
                ViewName = "CreatePosition",
                Model    =
                    new SA_Organization()
                {
                    ParentId       = currentOrg.Id,
                    ParentCodePath = currentOrg.CodePath,
                    ParentNamePath = currentOrg.NamePath,
                    ParentIdPath   = currentOrg.IdPath,
                    AreaPath       = currentOrg.AreaPath,
                    OrgType        = OrganizationType.Position.ToString(),
                    ValidState     = ValidStates.Effective.ToString(),
                    Level          = currentOrg.Level + 1,
                    AreaCode       = currentOrg.AreaCode,
                    ParentAreaCode = currentOrg.AreaCode,
                    ParentAreaPath = currentOrg.AreaPath
                }
            };

            return(partialView);
        }
        public ActionResult SaveManagementAuthorize(string managementOrgId, string authorizes)
        {
            ChangeRecords <ManagementAuthorizeDTO> records =
                new StoreDataHandler(authorizes).BatchObjectData <ManagementAuthorizeDTO>();
            SA_Organization managementOrg = _service.GetOrgById(managementOrgId);

            foreach (var rec in records.Updated)
            {
                if (rec.Granted.ToLower() == "true")
                {
                    SA_Authorize authorize = new SA_Authorize();
                    authorize.OrgId             = managementOrg.Id;
                    authorize.OrgName           = managementOrg.Name;
                    authorize.OrgIdPath         = managementOrg.IdPath;
                    authorize.OrgNamePath       = managementOrg.NamePath;
                    authorize.AuthorizeRoleId   = rec.RoleId;
                    authorize.CreatedBy         = GetCurrentUserName();
                    authorize.CreatedDate       = DateTime.Now;
                    authorize.CreatedByIdPath   = GetOrganizationIdPath();
                    authorize.CreatedByNamePath = GetOrganizationNamePath();
                    _service.AddAuthorize(authorize);
                }
                else
                {
                    _service.DeleteAuthorize(managementOrg.Id, rec.RoleId);
                }
            }
            _service.Save();
            return(this.Direct());
        }
        public ActionResult CreateStaff(string currentNode)
        {
            SA_Organization   currentOrg  = JSON.Deserialize <SA_Organization>(currentNode);
            PartialViewResult partialView =
                new PartialViewResult
            {
                ViewName = "CreateStaff",
                Model    = new SA_User
                {
                    MainOrgId = currentOrg.Id
                }
            };

            return(partialView);
        }
        public ActionResult Insert(SA_Organization entity)
        {
            if (ModelState.IsValid)
            {
                entity.CreatedBy   = GetCurrentUserName();
                entity.CreatedDate = DateTime.Now;

                _service.AddOrganization(entity);
                _service.Save();

                this.GetCmp <Window>("windowSA_Organization").Hide();

                TreePanel treePanel = this.GetCmp <TreePanel>("treePanelSAOrganization");
                treePanel.GetNodeById(entity.ParentId).Reload();

                return(this.Direct());
            }
            return(this.Direct());
        }
        public ActionResult UpdatePosition(SA_Organization entity)
        {
            if (ModelState.IsValid)
            {
                entity.LastModifiedBy   = GetCurrentUserName();
                entity.LastModifiedDate = DateTime.Now;

                _service.UpdateOrganization(entity);
                _service.Save();

                var window = this.GetCmp <Window>("windowSA_Organization");
                window.Hide();

                TreePanel treePanel = this.GetCmp <TreePanel>("treePanelSAOrganization");
                treePanel.GetNodeById(entity.ParentId).Reload();
                return(this.Direct());
            }

            return(this.Direct());
        }
        public ActionResult Edit(string currentNode)
        {
            SA_Organization  currentOrg = JSON.Deserialize <SA_Organization>(currentNode);
            OrganizationType orgType    = EnumExtension <OrganizationType> .Parse(currentOrg.OrgType);

            switch (orgType)
            {
            case OrganizationType.Company:
                return(new PartialViewResult
                {
                    ViewName = "EditCompany",
                    Model = _service.GetOrgById(currentOrg.Id)
                });

            case OrganizationType.Department:
                return(new PartialViewResult
                {
                    ViewName = "EditDepartment",
                    Model = _service.GetOrgById(currentOrg.Id)
                });

            case OrganizationType.Position:
                return(new PartialViewResult
                {
                    ViewName = "EditPosition",
                    Model = _service.GetOrgById(currentOrg.Id)
                });

            case OrganizationType.Staff:
                return(new PartialViewResult
                {
                    ViewName = "EditStaff",
                    Model = _service.GetUserByOrgId(currentOrg.Id)
                });

            default:
                throw new NotImplementedException();
            }
        }
        public ActionResult InsertPosition(SA_Organization entity)
        {
            if (ModelState.IsValid)
            {
                entity.CreatedBy   = GetCurrentUserName();
                entity.CreatedDate = DateTime.Now;

                _service.AddOrganization(entity);
                _service.Save();

                var parentNode = this.GetCmp <TreePanel>("treePanelSAOrganization").GetNodeById(entity.ParentId);
                parentNode.Set("leaf", false);
                parentNode.Reload();
                parentNode.ExpandChildren(true);
                this.GetCmp <Window>("windowSA_Organization").Hide();
                //this.GetCmp<Window>("windowSA_Organization").Hide();
                //this.GetCmp<Store>("storeSAOrganization").Reload();

                return(this.Direct());
            }
            return(this.Direct());
        }