/// <summary> /// Получение всех вытекающих типов документа /// </summary> /// <returns>List никогда не бывает null</returns> public static List <DocTypeLink> GetAllChildTypes(int DocTypeId) { var list = new List <DocTypeLink>(); using (var dbReader = new DBReader(SQLQueries.SELECT_СвязиТиповДокументов_Вытекающие, DocTypeId, CommandType.Text, ConnString)) { if (dbReader.HasRows) { #region Получение порядкового номера столбца var colКодТипаДокументаОснования = dbReader.GetOrdinal("КодТипаДокументаОснования"); var colТипДокументаОснования = dbReader.GetOrdinal("ТипДокументаОснования"); var colКодТипаДокументаВытекающего = dbReader.GetOrdinal("КодТипаДокументаВытекающего"); var colТипДокументаВытекающего = dbReader.GetOrdinal("ТипДокументаВытекающего"); var colВыводитьСписокВОсновании = dbReader.GetOrdinal("ВыводитьСписокВОсновании"); var colПорядокВыводаВОсновании = dbReader.GetOrdinal("ПорядокВыводаВОсновании"); var colТипСвязи = dbReader.GetOrdinal("ТипСвязи"); var colРежимПоискаОснования = dbReader.GetOrdinal("РежимПоискаОснования"); var colКодПоляДокумента = dbReader.GetOrdinal("КодПоляДокумента"); var colПолеДокумента = dbReader.GetOrdinal("ПолеДокумента"); var colПолеДокументаEn = dbReader.GetOrdinal("ПолеДокументаEn"); #endregion while (dbReader.Read()) { var row = new DocTypeLink { Unavailable = false }; if (!dbReader.IsDBNull(colКодТипаДокументаОснования)) { row.DocBasisId = dbReader.GetInt32(colКодТипаДокументаОснования); } row.DocBasisType = dbReader.GetString(colТипДокументаОснования); row.ChildDocId = dbReader.GetInt32(colКодТипаДокументаВытекающего); row.DocChildType = dbReader.GetString(colТипДокументаВытекающего); row.ShowListInBasis = dbReader.GetByte(colВыводитьСписокВОсновании); row.BasisOrder = dbReader.GetInt32(colПорядокВыводаВОсновании); row.LinkType = dbReader.GetByte(colТипСвязи); row.BasisSearchMode = dbReader.GetByte(colРежимПоискаОснования); row.DocFieldId = dbReader.GetInt32(colКодПоляДокумента); row.DocChildField = dbReader.GetString(colПолеДокумента); row.DocChildFieldEN = dbReader.GetString(colПолеДокументаEn); list.Add(row); } } } list.Sort((a, b) => a.BasisOrder.CompareTo(b.BasisOrder)); return(list); }
/// <summary> /// Получить список СвязиТиповДокументов /// </summary> public List <DocTypeLink> GetDocTypeLinkList(string query) { List <DocTypeLink> list = null; using (var dbReader = new DBReader(query, CommandType.Text, CN)) { if (dbReader.HasRows) { list = new List <DocTypeLink>(); #region Получение порядкового номера столбца var colКодТипаДокументаОснования = dbReader.GetOrdinal("КодТипаДокументаОснования"); var colКодТипаДокументаВытекающего = dbReader.GetOrdinal("КодТипаДокументаВытекающего"); var colТипСвязи = dbReader.GetOrdinal("ТипСвязи"); var colКодПоляДокумента = dbReader.GetOrdinal("КодПоляДокумента"); var colВыводитьСписокВОсновании = dbReader.GetOrdinal("ВыводитьСписокВОсновании"); var colПорядокВыводаВОсновании = dbReader.GetOrdinal("ПорядокВыводаВОсновании"); var colРежимПоискаОснования = dbReader.GetOrdinal("РежимПоискаОснования"); var colСтрогийПоискОснования = dbReader.GetOrdinal("СтрогийПоискОснования"); var colЗапретИзмененияОснования = dbReader.GetOrdinal("ЗапретИзмененияОснования"); var colТипДокументаОснования = dbReader.GetOrdinal("ТипДокументаОснования"); var colТипДокументаВытекающего = dbReader.GetOrdinal("ТипДокументаВытекающего"); #endregion while (dbReader.Read()) { var row = new DocTypeLink { Unavailable = false, DocBasisId = dbReader.GetInt32(colКодТипаДокументаОснования), ChildDocId = dbReader.GetInt32(colКодТипаДокументаВытекающего), LinkType = dbReader.GetByte(colТипСвязи), DocFieldId = dbReader.GetInt32(colКодПоляДокумента), ShowListInBasis = dbReader.GetByte(colВыводитьСписокВОсновании), BasisOrder = dbReader.GetInt32(colПорядокВыводаВОсновании), BasisSearchMode = dbReader.GetByte(colРежимПоискаОснования), StrictBasisSearch = dbReader.GetByte(colСтрогийПоискОснования), BasisChangeBan = dbReader.GetByte(colЗапретИзмененияОснования), DocBasisType = dbReader.GetString(colТипДокументаОснования), DocChildType = dbReader.GetString(colТипДокументаВытекающего) }; list.Add(row); } } } return(list); }
/// <summary> /// Получение ограничений по типам и полям документов оснований /// </summary> /// <remarks> /// Данные статичные. Можно один раз получить и закешировать /// </remarks> public static List <DocTypeLink> GetControlFilter(int docTypeId) { if (docTypeId == 0) { return(null); } List <DocTypeLink> list = null; var param = new Dictionary <string, object> { { "@id", docTypeId } }; using (var dbReader = new DBReader(SQLQueries.SELECT_СвязиТиповДокументов_ТипВытекающего, CommandType.Text, ConnString, param)) { if (dbReader.HasRows) { list = new List <DocTypeLink>(); #region Получение порядкового номера столбца var colКодТипаДокументаОснования = dbReader.GetOrdinal("КодТипаДокументаОснования"); var colРежимПоискаОснования = dbReader.GetOrdinal("РежимПоискаОснования"); var colКодПоляДокумента = dbReader.GetOrdinal("КодПоляДокумента"); #endregion while (dbReader.Read()) { var row = new DocTypeLink { Unavailable = false, DocBasisId = dbReader.GetInt32(colКодТипаДокументаОснования), ChildDocId = docTypeId, BasisSearchMode = dbReader.GetByte(colРежимПоискаОснования), DocFieldId = dbReader.GetInt32(colКодПоляДокумента) }; list.Add(row); } } } return(list); }