コード例 #1
0
        /// <summary>
        /// Проверяет по условию поле "Делопроизводственный индекс"
        /// </summary>
        /// <param name="departmentID"></param>
        /// <param name="depList"></param>
        /// <returns>true/false - нашло/не_нашло</returns>
        private bool IndexCheck(string departmentID, DBList depList)
        {
            bool b = int.TryParse(departmentID, out int id);

            if (!b)
            {
                throw new FormatException("Передан неверный departmentID");
            }

            DBItem dep = depList.GetItem(id);

            string index = dep.GetStringValue(Consts.FieldIndex);

            switch (index)
            {
            case Consts.IndexCase1:
                Result = Consts.IndexCase1Valid;
                return(true);

            case Consts.IndexCase2:
                Result = Consts.IndexCase2Valid;
                return(true);

            case Consts.IndexCase3:
                Result = Consts.IndexCase3Valid;
                return(true);

            default:
                return(false);
            }
        }
コード例 #2
0
        /// <summary>
        /// Возвращает подразделение пользователя.
        /// </summary>
        /// <param name="idUser"></param>
        /// <returns>id подразделения</returns>
        private string GetDepartment()
        {
            DBList listUsers   = this.Site.UsersList;
            DBItem user        = listUsers.GetItem(this.UserID);
            string _department = "";

            _department = user.GetValue(Consts.FieldDepartment).ToString();

            return(_department);
        }
コード例 #3
0
        /// <summary>
        /// Возвращает должность пользователя.
        /// </summary>
        /// <param name="idUser"></param>
        /// <returns>id должности</returns>
        private string GetPosition()
        {
            DBList listUsers = this.Site.UsersList;
            DBItem user      = listUsers.GetItem(this.UserID);
            string _position = "";

            _position = user.GetValue(Consts.FieldPosition).ToString();

            return(_position);
        }
コード例 #4
0
        /// <summary>
        /// Возвращает строку для фильтрации, с id всех компаний до 4-ого уровня.
        /// </summary>
        /// <returns></returns>
        public string GetListOfDepartments()
        {
            DBWeb web = this.Site.GetWeb("/");

            if (web == null)
            {
                throw new Exception("Узел не найден");
            }

            DBList departmentsList = web.GetList(Consts.DepartmentsList);

            if (departmentsList == null)
            {
                throw new Exception($"Не найден список по имени '{Consts.DepartmentsList}'");
            }

            string        selectCondition = null;
            string        result          = null;
            List <DBItem> lvlOne          = new List <DBItem>();

            selectCondition = "[Название] = " + Consts.DepartmentLevelQuery;
            lvlOne.Add(departmentsList.GetItem(selectCondition));
            foreach (DBItem item in lvlOne)
            {
                result += item.ID + ",";
            }

            List <DBItem> lvlTwo = new List <DBItem>();

            lvlTwo = this.GetChildren(lvlOne, departmentsList);
            foreach (DBItem item in lvlTwo)
            {
                result += item.ID + ",";
            }

            List <DBItem> lvlThree = new List <DBItem>();

            lvlThree = this.GetChildren(lvlTwo, departmentsList);
            foreach (DBItem item in lvlThree)
            {
                result += item.ID + ",";
            }

            List <DBItem> lvlFour = new List <DBItem>();

            lvlFour = this.GetChildren(lvlThree, departmentsList);
            foreach (DBItem item in lvlFour)
            {
                result += item.ID + ",";
            }

            return(result.TrimEnd(','));
        }
コード例 #5
0
        /// <summary>
        /// Возвращает id компании по номеру пользователя
        /// </summary>
        /// <param name="initiatorID"></param>
        /// <returns></returns>
        public int GetCompany(int initiatorID)
        {
            int result = 0;

            DBList usersList = this.Context.Site.UsersList;
            DBItem user      = usersList.GetItem(initiatorID);

            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            result = user.GetLookupID(Consts.FieldCompany);
            return(result);
        }
コード例 #6
0
        /// <summary>
        /// Возвращает имя подразделения по его id
        /// </summary>
        /// <param name="departmentID"></param>
        /// <returns></returns>
        private string GetDepartmentNameByID(string departmentID)
        {
            bool b = int.TryParse(departmentID, out int id);

            if (!b)
            {
                throw new FormatException("Передан неверный id подразделения");
            }

            DBWeb  web        = this.Site.GetWeb("/");
            DBList listDeps   = web.GetList("Departments");
            DBItem department = listDeps.GetItem(id);

            return(department.GetStringValue("Название"));
        }
コード例 #7
0
        /// <summary>
        /// Возвращает id по названию зоны ответственности.
        /// </summary>
        /// <param name="zoneName"></param>
        /// <returns>id для поля "Зона ответственности"</returns>
        private int ConvertResponsibilityZoneNameToID(string zoneName)
        {
            if (zoneName == null)
            {
                throw new ArgumentNullException(nameof(zoneName));
            }

            DBWeb  web           = this.Site.GetWeb("/dms/InvestmentInitiatives");
            DBList listRespZones = web.GetList("ResponsibilityZones");

            string selectCondition    = $"[Название] = N'{zoneName}'";
            DBItem responsibilityZone = listRespZones.GetItem(selectCondition);

            if (responsibilityZone == null)
            {
                throw new Exception("Зона ответственности не найдена");
            }

            return(responsibilityZone.ID);
        }
コード例 #8
0
        /// <summary>
        /// Возвращает id по названию подразделения.
        /// </summary>
        /// <param name="zoneName"></param>
        /// <returns>id для поля "Подразделение-заказчик"</returns>
        private int ConvertDepartmentNameToID(string departmentName)
        {
            if (departmentName == null)
            {
                throw new ArgumentNullException(nameof(departmentName));
            }


            DBWeb  web      = this.Site.GetWeb("/");
            DBList listDeps = web.GetList("Departments");

            string selectCondition = $"[Название] = N'{departmentName}'";
            DBItem department      = listDeps.GetItem(selectCondition);

            if (department == null)
            {
                throw new Exception("Подразделение не найдено");
            }
            return(department.ID);
        }
コード例 #9
0
        /// <summary>
        /// Возвращает должность пользователя
        /// </summary>
        /// <param name="idUser"></param>
        /// <returns></returns>
        private string Position(string idUser)
        {
            string _position = "";

            try
            {
                int id = Convert.ToInt32(idUser);

                // Подключаемся к БД
                DBSite site      = this.AppContext.Site;
                DBList listUsers = site.UsersList;
                DBItem user      = listUsers.GetItem(id);

                _position = user.GetValue(Const.Position).ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(_position);
        }
コード例 #10
0
        /// <summary>
        /// Проверяет наличие уcловия, ищет "Родительские подразделения"
        /// </summary>
        /// <param name="level"></param>
        /// <param name="depList"></param>
        /// <returns>id Родительского подразделения</returns>
        private string GetParent(string departmentID, DBList departmentsList)
        {
            int result = 0;

            bool b = int.TryParse(departmentID, out int id);

            if (!b)
            {
                throw new FormatException("Передан неверный id подразделения");
            }

            DBItem departments = departmentsList.GetItem(id);

            if (departments != null)
            {
                string parentDepartmentName = departments.GetStringValue(Consts.FieldParentDep);

                if (parentDepartmentName == Consts.FirstLevel)
                {
                    Result = this.GetDepartmentNameByID(departmentID);
                }
                else if (parentDepartmentName == null)
                {
                    Result = "nothing";
                }
                else if (parentDepartmentName == Consts.ParentDepValue)
                {
                    Result = "ao_vmz";
                }
                else
                {
                    bool check = this.IndexCheck(departmentID, departmentsList);
                    if (!check)
                    {
                        result = departments.GetLookupID(Consts.FieldParentDep);
                    }
                }
            }
            return(Convert.ToString(result));
        }