Beispiel #1
0
        /// <summary> Чтение буфера в SQL </summary>
        private async Task <List <IElasticDocument> > ReadBuffer(CompanyDocumentReaderSettings readerSettings)
        {
            var reader = new CompanyDocumentReader(SqlConnectionString, readerSettings);
            var buffer = await reader.Read();

            return(buffer);
        }
Beispiel #2
0
        private void SaveReaderSettings(CompanyDocumentReaderSettings readerSettings)
        {
            try
            {
                string settingsString =
                    ElasticLoaderSettings.Default.CompanyDocumentReaderSettings =
                        JsonConvert.SerializeObject(readerSettings, Formatting.Indented);

                ElasticLoaderSettings.Default.Save();
            }
            catch (Exception e)
            {
                throw new Exception("Ошибка записи файла конфигурации CompanyDocumentLoaderSettings", e);
            }
        }
Beispiel #3
0
        /// <summary> Запись буфера в Elastic </summary>
        private async Task WriteBuffer(List <IElasticDocument> buffer, CompanyDocumentReaderSettings readerSettings)
        {
            foreach (var doc in buffer)
            {
                doc.UpdateDate = readerSettings.LastStarted;
            }

            var writer = new CompanyDocumentWriter(ElasticConnectionString);
            await writer.BulkCreateOrUpdate(buffer);

            // корректировка параметров для следующей операции чтения:
            readerSettings.LastId = int.Parse(
                buffer.OrderByDescending(d => int.Parse(d.Id)).First().Id);

            this.SaveReaderSettings(readerSettings);
        }
Beispiel #4
0
        private CompanyDocumentReaderSettings GetReaderSettings(bool getDefaultSettings = false)
        {
            CompanyDocumentReaderSettings defaultSettings = new CompanyDocumentReaderSettings()
            {
                BufferCount   = 10000,
                LastId        = 0,
                LastCompleted = DateTime.Parse("1753-01-01T00:00:00.000"),
                LastStarted   = null
            };

            if (getDefaultSettings)
            {
                return(defaultSettings);
            }

            try
            {
                CompanyDocumentReaderSettings settings;

                string settingsString
                    = ElasticLoaderSettings.Default.CompanyDocumentReaderSettings;

                if (String.IsNullOrWhiteSpace(settingsString))
                {
                    settings = defaultSettings;
                }
                else
                {
                    settings =
                        (CompanyDocumentReaderSettings)
                        JsonConvert.DeserializeObject(settingsString, typeof(CompanyDocumentReaderSettings));
                }

                return(settings);
            }
            catch (Exception e)
            {
                throw new Exception("Ошибка чтения файла конфигурации CompanyDocumentLoaderSettings", e);
            }
        }