/// <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); } }
/// <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); }
/// <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); }
/// <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(',')); }
/// <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); }
/// <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("Название")); }
/// <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); }
/// <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); }
/// <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); }
/// <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)); }