Пример #1
0
        private (StringBuilder Data, long EndPosition) ReadNextEventLogItemData(CancellationToken cancellationToken = default)
        {
            StringBuilder data = new StringBuilder();

            long endPosition = 0;
            bool start       = false;

            while (true)
            {
                if (cancellationToken.IsCancellationRequested)
                {
                    break;
                }

                if (_lastPosition != 0)
                {
                    SetPosition(_lastPosition);
                }

                var currentLine = streamReader.ReadLine();

                if (currentLine is null)
                {
                    _lastPosition = GetPosition();
                    break;
                }
                else
                {
                    _lastPosition = 0;
                }

                // wait for the beginning of the event
                if (!start && currentLine.Length > 0 && currentLine[0] == '{')
                {
                    start = true;
                }

                if (!start)
                {
                    continue;
                }

                data.Append(currentLine);

                var blockEndIndex = BracketsFileParser.GetNodeEndIndex(data, 0);

                if (blockEndIndex != -1)
                {
                    endPosition = GetPosition();
                    data.Remove(blockEndIndex + 1, data.Length - 1 - blockEndIndex);
                    break;
                }
            }

            return(data, endPosition);
        }
Пример #2
0
        /// <summary>
        /// Reads properties of "Enum" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadEnumsAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(4, 1, 1, 17));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <OneSEnum>(objectInfo.GetNode(1, 5, 1), objectGuid);

                Enums.Add(obj);
            }
        }
Пример #3
0
        /// <summary>
        /// Reads properties of "Constant" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadConstantsAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(4, 1, 1, 3));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <Constant>(objectInfo.GetNode(1, 1, 1, 1), objectGuid);

                var typesNode = objectInfo.GetNode(1, 1, 1, 2);
                obj.Types = ReadTypesInfo(typesNode);

                Constants.Add(obj);
            }
        }
Пример #4
0
        /// <summary>
        /// Reads properties of "Document journal" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadDocumentJournalsAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(4, 1, 1, 10));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <DocumentJournal>(objectInfo.GetNode(1, 3, 1), objectGuid);

                var requisitiesNode = objectInfo.GetNode(4);

                obj.Graphs = ReadRequisities(requisitiesNode, true);

                DocumentJournals.Add(obj);
            }
        }
Пример #5
0
        /// <summary>
        /// Reads properties of "Calculation register" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadCalculationRegistersAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(6, 1, 4));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <CalculationRegister>(objectInfo.GetNode(1, 15, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "1b304502-2216-440b-960f-60decd04bb5d":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "b12fc850-8210-43c8-ae05-89567e698fbb":
                        obj.Dimensions = ReadRequisities(objectDetailsNode);
                        break;

                    case "702b33ad-843e-41aa-8064-112cd38cc92c":
                        obj.Resources = ReadRequisities(objectDetailsNode);
                        break;

                    case "274bf899-db0e-4df6-8ab5-67bf6371ec0b":
                        obj.Recalculations = await ReadRecalculations(connection, objectDetailsNode, ct);

                        break;

                    default:
                        continue;
                    }
                }

                CalculationRegisters.Add(obj);
            }
        }
Пример #6
0
        /// <summary>
        /// Reads properties of "Chart of accounts" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadChartsOfAccountsAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(5, 1, 3));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <ChartOfAccounts>(objectInfo.GetNode(1, 15, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "6e65cbf5-daa8-4d8d-bef8-59723f4e5777":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "4c7fec95-d1bd-4508-8a01-f1db090d9af8":
                        obj.TabularSections = ReadTabularSections(objectDetailsNode);
                        break;

                    case "78bd1243-c4df-46c3-8138-e147465cb9a4":
                        obj.AccountingFlags = ReadRequisities(objectDetailsNode);
                        break;

                    case "c70ca527-5042-4cad-a315-dcb4007e32a3":
                        obj.ExtDimensionAccountingFlags = ReadRequisities(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                ChartsOfAccounts.Add(obj);
            }
        }
Пример #7
0
        private async Task <List <Recalculation> > ReadRecalculations(DbConnection connection, BracketsFileNode node, CancellationToken ct)
        {
            var recalculations = new List <Recalculation>();

            var count = (int)node.GetNode(1);

            for (int i = 0; i < count; i++)
            {
                var recalculationNode = node.GetNode(i + 2);

                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, recalculationNode.Text, ct));

                var recalculation = ReadMetadataObject <Recalculation>(objectInfo.GetNode(1, 7, 1));

                recalculations.Add(recalculation);
            }

            return(recalculations);
        }
Пример #8
0
        /// <summary>
        /// Reads properties of "Task" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadTasksAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(7, 1, 3));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <OneSTask>(objectInfo.GetNode(1, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "8ddfb495-c5fc-46b9-bdc5-bcf58341bff0":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "ee865d4b-a458-48a0-b38f-5a26898feeb0":
                        obj.TabularSections = ReadTabularSections(objectDetailsNode);
                        break;

                    case "e97c0570-251c-4566-b0f1-10686820f143":
                        obj.AddressingAttributes = ReadRequisities(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                Tasks.Add(obj);
            }
        }
Пример #9
0
        /// <summary>
        /// Reads properties of "Accounting register" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadAccountingRegistersAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(5, 1, 4));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <AccountingRegister>(objectInfo.GetNode(1, 15, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "9d28ee33-9c7e-4a1b-8f13-50aa9b36607b":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "35b63b9d-0adf-4625-a047-10ae874c19a3":
                        obj.Dimensions = ReadRequisities(objectDetailsNode);
                        break;

                    case "63405499-7491-4ce3-ac72-43433cbe4112":
                        obj.Resources = ReadRequisities(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                AccountingRegisters.Add(obj);
            }
        }
Пример #10
0
        /// <summary>
        /// Reads properties of "Accumulation register" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadAccumulationRegistersAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(4, 1, 1, 13));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <AccumulationRegister>(objectInfo.GetNode(1, 13, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "b64d9a42-1642-11d6-a3c7-0050bae0a776":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "b64d9a43-1642-11d6-a3c7-0050bae0a776":
                        obj.Dimensions = ReadRequisities(objectDetailsNode);
                        break;

                    case "b64d9a41-1642-11d6-a3c7-0050bae0a776":
                        obj.Resources = ReadRequisities(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                AccumulationRegisters.Add(obj);
            }
        }
Пример #11
0
        /// <summary>
        /// Reads a configuration from the database
        /// </summary>
        /// <param name="dbConnection"></param>
        /// <returns></returns>
        public async static Task <Configuration> ReadFromDatabaseAsync(DbConnection connection, CancellationToken ct)
        {
            var config = new Configuration();

            var root = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, "root", ct));
            var conf = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, (string)root.GetNode(1), ct));

            config.ReadConfigurationProperties(conf);

            await config.ReadExchangePlansAsync(connection, conf, ct);

            await config.ReadConstantsAsync(connection, conf, ct);

            await config.ReadCatalogsAsync(connection, conf, ct);

            await config.ReadDocumentsAsync(connection, conf, ct);

            await config.ReadDocumentJournalsAsync(connection, conf, ct);

            await config.ReadEnumsAsync(connection, conf, ct);

            await config.ReadChartsOfCharacteristicTypesAsync(connection, conf, ct);

            await config.ReadChartsOfAccountsAsync(connection, conf, ct);

            await config.ReadAccumulationRegistersAsync(connection, conf, ct);

            await config.ReadAccountingRegistersAsync(connection, conf, ct);

            await config.ReadCalculationRegistersAsync(connection, conf, ct);

            await config.ReadBusinessProcessesAsync(connection, conf, ct);

            await config.ReadTasksAsync(connection, conf, ct);

            return(config);
        }
Пример #12
0
        /// <summary>
        /// Reads properties of "Business process" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadBusinessProcessesAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(7, 1, 4));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <BusinessProcess>(objectInfo.GetNode(1, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "87c988de-ecbf-413b-87b0-b9516df05e28":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "a3fe6537-d787-40f7-8a06-419d2f0c1cfd":
                        obj.TabularSections = ReadTabularSections(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                BusinessProcesses.Add(obj);
            }
        }
Пример #13
0
        /// <summary>
        /// Reads properties of "Chart of characteristic types" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadChartsOfCharacteristicTypesAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(4, 1, 1, 12));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <ChartOfCharacteristicTypes>(objectInfo.GetNode(1, 13, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "31182525-9346-4595-81f8-6f91a72ebe06":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "54e36536-7863-42fd-bea3-c5edd3122fdc":
                        obj.TabularSections = ReadTabularSections(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                ChartsOfCharacteristicTypes.Add(obj);
            }
        }
Пример #14
0
        /// <summary>
        /// Reads properties of "Document" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadDocumentsAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(4, 1, 1, 4));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <Document>(objectInfo.GetNode(1, 9, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "45e46cbc-3e24-4165-8b7b-cc98a6f80211":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "21c53e09-8950-4b5e-a6a0-1054f1bbc274":
                        obj.TabularSections = ReadTabularSections(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                Documents.Add(obj);
            }
        }
Пример #15
0
        /// <summary>
        /// Reads properties of "Catalog" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadCatalogsAsync(DbConnection connection, BracketsFileNode conf, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(conf.GetNode(4, 1, 1, 16));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <Catalog>(objectInfo.GetNode(1, 9, 1), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "cf4abea7-37b2-11d4-940f-008048da11f9":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "932159f9-95b2-4e76-a8dd-8849fe5c5ded":
                        obj.TabularSections = ReadTabularSections(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                Catalogs.Add(obj);
            }
        }
Пример #16
0
        /// <summary>
        /// Reads properties of "Exchange plan" metadata objects
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="config"></param>
        /// <param name="conf"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        private async Task ReadExchangePlansAsync(DbConnection connection, BracketsFileNode node, CancellationToken ct)
        {
            var objectGuids = GetMetadataObjectGuids(node.GetNode(3, 1, 19));

            foreach (var objectGuid in objectGuids)
            {
                var objectInfo = BracketsFileParser.Parse(await GetStringConfigFileDataAsync(connection, objectGuid, ct));

                var obj = ReadMetadataObject <ExchangePlan>(objectInfo.GetNode(1, 12), objectGuid);

                var objectDetailsNodesCount = (int)objectInfo.GetNode(2);

                for (int i = 3; i < (3 + objectDetailsNodesCount); i++)
                {
                    var objectDetailsNode = objectInfo.GetNode(i);

                    var objectDetailsNodeGuid = (string)objectDetailsNode.GetNode(0);

                    switch (objectDetailsNodeGuid)
                    {
                    case "1a1b4fea-e093-470d-94ff-1d2f16cda2ab":
                        obj.Requisities = ReadRequisities(objectDetailsNode);
                        break;

                    case "52293f4b-f98c-43ea-a80f-41047ae7ab58":
                        obj.TabularSections = ReadTabularSections(objectDetailsNode);
                        break;

                    default:
                        continue;
                    }
                }

                ExchangePlans.Add(obj);
            }
        }
Пример #17
0
        private T ParseEventLogItemData(StringBuilder eventLogItemData, long endPosition, CancellationToken cancellationToken = default)
        {
            var parsedData = BracketsFileParser.ParseBlock(eventLogItemData);

            var eventLogItem = new T
            {
                DateTime          = _timeZone.ToUtc(DateTime.ParseExact((string)parsedData[0], "yyyyMMddHHmmss", CultureInfo.InvariantCulture)),
                TransactionStatus = GetTransactionPresentation((string)parsedData[1]),
                FileName          = LgpFileName,
                EndPosition       = endPosition,
                LgfEndPosition    = _lgfReader.GetPosition()
            };

            var transactionData = parsedData[2];

            eventLogItem.TransactionNumber = Convert.ToInt64((string)transactionData[1], 16);

            var transactionDate = new DateTime().AddSeconds(Convert.ToInt64((string)transactionData[0], 16) / 10000);

            eventLogItem.TransactionDateTime = transactionDate == DateTime.MinValue ? transactionDate : _timeZone.ToUtc(transactionDate);

            var(Value, Uuid)      = _lgfReader.GetReferencedObjectValue(ObjectType.Users, (int)parsedData[3], cancellationToken);
            eventLogItem.UserUuid = Uuid;
            eventLogItem.User     = Value;

            eventLogItem.Computer = _lgfReader.GetObjectValue(ObjectType.Computers, (int)parsedData[4], cancellationToken);

            var application = _lgfReader.GetObjectValue(ObjectType.Applications, (int)parsedData[5], cancellationToken);

            eventLogItem.Application = GetApplicationPresentation(application);

            eventLogItem.Connection = (int)parsedData[6];

            var ev = _lgfReader.GetObjectValue(ObjectType.Events, (int)parsedData[7], cancellationToken);

            eventLogItem.Event = GetEventPresentation(ev);

            var severity = (string)parsedData[8];

            eventLogItem.Severity = GetSeverityPresentation(severity);

            eventLogItem.Comment = (string)parsedData[9];

            (Value, Uuid)             = _lgfReader.GetReferencedObjectValue(ObjectType.Metadata, (int)parsedData[10], cancellationToken);
            eventLogItem.MetadataUuid = Uuid;
            eventLogItem.Metadata     = Value;

            eventLogItem.Data             = GetData(parsedData[11]).Trim();
            eventLogItem.DataPresentation = (string)parsedData[12];
            eventLogItem.Server           = _lgfReader.GetObjectValue(ObjectType.Servers, (int)parsedData[13], cancellationToken);

            var mainPort = _lgfReader.GetObjectValue(ObjectType.MainPorts, (int)parsedData[14], cancellationToken);

            if (mainPort != "")
            {
                eventLogItem.MainPort = int.Parse(mainPort);
            }

            var addPort = _lgfReader.GetObjectValue(ObjectType.AddPorts, (int)parsedData[15], cancellationToken);

            if (addPort != "")
            {
                eventLogItem.AddPort = int.Parse(addPort);
            }

            eventLogItem.Session = (int)parsedData[16];

            return(eventLogItem);
        }