예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }