Ejemplo n.º 1
0
 /// <summary>
 /// Поиск документов в разделе
 /// </summary>
 /// <remarks>Поиск выполняется по наличию искомого значения без учета регистра в свойствах документа
 /// <see cref="DbDocument.DocumentName"/>, <see cref="DbDocument.DocumentShortName"/>,
 /// <see cref="DbDocument.DocumentNumber"/> и <see cref="DbDocument.DocumentType"/></remarks>
 /// <param name="section">Раздел БД</param>
 /// <param name="searchValue">Поисковое значение</param>
 public static IEnumerable <DbDocument> FindDocuments(IDbSection section, string searchValue)
 {
     return(section.Documents.Where(dbDocument =>
                                    dbDocument.DocumentName.ToUpper().Contains(searchValue.ToUpper()) ||
                                    dbDocument.DocumentShortName.ToUpper().Contains(searchValue.ToUpper()) ||
                                    dbDocument.DocumentNumber.ToUpper().Contains(searchValue.ToUpper()) ||
                                    dbDocument.DocumentType.ToUpper().Contains(searchValue.ToUpper())));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Возвращает коллекцию документов из ресурсов раздела
        /// </summary>
        /// <param name="resourceSet">Ресурсы раздела</param>
        /// <param name="dbSection">Раздел базы</param>
        public static IEnumerable <DbDocument> GetDocuments(ResourceSet resourceSet, IDbSection dbSection)
        {
            foreach (DictionaryEntry entry in resourceSet)
            {
                var resource = entry.Value;
                var xml      = XElement.Parse(resource.ToString());

                var document = new DbDocument(xml);
                if (document.InitCurrentElement(dbSection))
                {
                    yield return(document);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Инициализация документа из Xml
        /// </summary>
        /// <param name="dbSection">Раздел базы</param>
        internal bool InitCurrentElement(IDbSection dbSection)
        {
            try
            {
                if (XmlDocument != null)
                {
                    DataBaseName      = dbSection.Name;
                    Id                = int.Parse(XmlDocument.Attribute("Id")?.Value ?? string.Empty);
                    DocumentType      = XmlDocument.Attribute("DocType")?.Value;
                    DocumentNumber    = XmlDocument.Attribute("DocNum")?.Value;
                    DocumentName      = XmlDocument.Attribute("DocName")?.Value;
                    DocumentShortName = XmlDocument.Attribute("DocNameShort")?.Value;

                    // Статус документа: 3 варианта - действует, не действует, нет данных
                    var docStatus = DbDocumentStatus.NoData;
                    if (XmlDocument.Attribute("DocStatus") != null)
                    {
                        if (bool.TryParse(XmlDocument.Attribute("DocStatus")?.Value, out var b))
                        {
                            docStatus = b ? DbDocumentStatus.Valid : DbDocumentStatus.NotValid;
                        }
                    }

                    DocStatus = docStatus;
                    ShortName = XmlDocument.Attribute("ShortName")?.Value;
                    Group     = XmlDocument.Attribute("Group")?.Value;
                    Image     = XmlDocument.Attribute("Image")?.Value;
                    Rule      = XmlDocument.Attribute("Rule")?.Value;
                    var size = XmlDocument.Attribute("Size");
                    Size      = size?.Value ?? "нет";
                    ItemTypes = GeItemTypes();

                    // Типы (для отрисовки)
                    var coType = XmlDocument.Attribute("CoType");
                    CoType = coType?.Value ?? string.Empty;
                    var meType = XmlDocument.Attribute("MeType");
                    MeType = meType?.Value ?? string.Empty;
                    var maType = XmlDocument.Attribute("MaType");
                    MaType = maType?.Value ?? string.Empty;
                    var wdType = XmlDocument.Attribute("WdType");
                    WdType = wdType?.Value ?? string.Empty;
                    var otType = XmlDocument.Attribute("OtType");
                    OtType = otType?.Value ?? string.Empty;

                    // Массы
                    var mass = XmlDocument.Attribute("Mass");
                    Mass = mass?.Value ?? string.Empty;
                    var wMass = XmlDocument.Attribute("WMass");
                    WMass = wMass?.Value ?? string.Empty;
                    var cMass = XmlDocument.Attribute("CMass");
                    CMass = cMass?.Value ?? string.Empty;
                    var sMass = XmlDocument.Attribute("SMass");
                    SMass = sMass?.Value ?? string.Empty;

                    // Steel
                    var hasSteelAtt = XmlDocument.Attribute("HasSteel");
                    HasSteel = hasSteelAtt != null && bool.Parse(hasSteelAtt.Value);

                    SymbolCount = GetSymbolCount();
                    if (SymbolCount != 0)
                    {
                        Symbols = GetSymbols(SymbolCount);
                        Items   = new XElement("Items");
                        foreach (var xElement in XmlDocument.Elements("Item"))
                        {
                            Items.Add(xElement);
                        }
                    }

                    return(true);
                }

                return(false);
            }
            catch (Exception)
            {
                return(false);
            }
        }