Beispiel #1
0
        // original ReadFile function
        protected virtual void ReadFile(string xmlPath, string defaultErrorSubDirPath, bool hasBackOffice, ref bool xmlFileEmpty, FieldElementSection rawDataFields, FieldElementSection metaDataFields, SqlCommand insertCommand, Dictionary <string, string> gatewayNameFields)
        {
            bool firstRowInXml = true;

            using (XmlTextReader xmlReader = new XmlTextReader(xmlPath))
            {
                xmlReader.WhitespaceHandling = WhitespaceHandling.None;

                // Read root node
                xmlReader.Read();
                xmlFileEmpty = true;

                // Loop on all the rows in the xml report file.
                while (xmlReader.Read())
                {
                    if (!GetToRowsSection(xmlReader))
                    {
                        continue;
                    }

                    // Initalize dayCode.
                    if (firstRowInXml)
                    {
                        xmlFileEmpty  = false;
                        firstRowInXml = false;
                        // ASAF: raise log error if we have diffrent date in the file and in _requiredDay.
                        _requiredDay = DayCode.GenerateDateTime(GetDate(xmlReader));

                        if (_accountID == SystemAccountID)
                        {
                            GetAccountID(xmlReader.GetAttribute("acctname").ToString(), out _accountID, _accountFieldName);
                            _accountName = xmlReader.GetAttribute("acctname").ToString();
                        }

                        // Delete old data in the DB for the same data we fetch the new data.
                        DataIdentifier dataIdentifier = new DataIdentifier(_accountID, GetDayCode(_requiredDay), _channelID);
                        _dataIdentifiers.Add(dataIdentifier);
                        HandleDeleteDay();
                        InitalizeNullValues(insertCommand, rawDataFields, metaDataFields);
                    }

                    CheckRowData(xmlReader);

                    try
                    {
                        HandleRow(hasBackOffice, rawDataFields, metaDataFields, insertCommand, gatewayNameFields, xmlReader);
                    }
                    catch (Exception ex)
                    {
                        WriteErrorMesageToFile(xmlPath, xmlReader.ReadOuterXml(), ex, defaultErrorSubDirPath);
                    }
                }
            }
        }
Beispiel #2
0
        protected virtual void CheckRowData(XmlTextReader xmlReader)
        {
            int accountID;

            // New date in the file.
            if (DayCode.GenerateDateTime(GetDate(xmlReader)) != _requiredDay)
            {
                _requiredDay = DayCode.GenerateDateTime(GetDate(xmlReader));

                DataIdentifier dataIdentifier = new DataIdentifier(_accountID, GetDayCode(_requiredDay), _channelID);


                if (!_dataIdentifiers.Contains(dataIdentifier))
                {
                    // Delete old data in the DB for the same data we fetch the new data.
                    HandleDeleteDay();
                    _dataIdentifiers.Add(dataIdentifier);
                }
            }

            if (!string.IsNullOrEmpty(_accountName))
            {
                // New account in the file.
                if (xmlReader.GetAttribute("acctname").ToString() != _accountName)
                {
                    GetAccountID(xmlReader.GetAttribute("acctname").ToString(), out accountID, _accountFieldName);

                    _accountID   = accountID;
                    _accountName = xmlReader.GetAttribute("acctname").ToString();

                    DataIdentifier dataIdentifier = new DataIdentifier(_accountID, GetDayCode(_requiredDay), _channelID);

                    if (!_dataIdentifiers.Contains(dataIdentifier))
                    {
                        // Delete old data in the DB for the same data we fetch the new data.
                        HandleDeleteDay();
                        _dataIdentifiers.Add(dataIdentifier);
                    }
                }
            }
        }
Beispiel #3
0
        protected virtual void CheckRowData(SourceDataRowReader <RetrieverDataRow> reader)
        {
            int accountID;

            // New date in the file.
            if (DayCode.GenerateDateTime(GetDate(reader)) != _requiredDay)
            {
                _requiredDay = DayCode.GenerateDateTime(GetDate(reader));

                DataIdentifier dataIdentifier = new DataIdentifier(_accountID, GetDayCode(_requiredDay), _channelID);

                if (!_dataIdentifiers.Contains(dataIdentifier))
                {
                    // Delete old data in the DB for the same data we fetch the new data.
                    HandleDeleteDay();
                    _dataIdentifiers.Add(dataIdentifier);
                }
            }

            if (!string.IsNullOrEmpty(_accountName))
            {
                // New account in the file.
                if (reader.CurrentRow.Fields["acctname"] != _accountName)
                {
                    GetAccountID(reader.CurrentRow.Fields["acctname"], out accountID, _accountFieldName);

                    _accountID   = accountID;
                    _accountName = reader.CurrentRow.Fields["acctname"];

                    DataIdentifier dataIdentifier = new DataIdentifier(_accountID, GetDayCode(_requiredDay), _channelID);

                    if (!_dataIdentifiers.Contains(dataIdentifier))
                    {
                        // Delete old data in the DB for the same data we fetch the new data.
                        HandleDeleteDay();
                        _dataIdentifiers.Add(dataIdentifier);
                    }
                }
            }
        }