示例#1
0
        /// <summary>
        /// Запускает импорт
        /// </summary>
        /// <returns></returns>
        public int Start(string path)
        {
            using (var reader = new StreamReader(path, Encoding.UTF8, true))
            {
                var serializer = new XmlSerializer(typeof(FLInfoList));
                try
                {
                    var arrayOfInfo = (FLInfoList)serializer.Deserialize(reader);

                    List <SS_FlInfo> list = new List <SS_FlInfo>();
                    ServiceLogger.Info("{info}", "начало мапинга");
                    foreach (var item in arrayOfInfo.FLInfos)
                    {
                        list.Add(CustomMapper(item));
                    }
                    ServiceLogger.Info("{info}", "конец мапинга");
                    using (var db = new dbModel(connection))
                    {
                        db.CommandTimeout = 1200000;
                        using (var tr = db.BeginTransaction())
                        {
                            try
                            {
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo_Dupl перезапись начало");
                                db.AbonentInfoDelete();
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo_Dupl перезапись конец");
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo очищена");

                                ServiceLogger.Info("{info}", "таблица SS_FlInfo запись начало");
                                InsertBulk(list, db);
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo запись окончание");

                                ServiceLogger.Info("{info}", "таблица SS_FlInfo обновление начало");
                                db.AbonentInfoUpdate();
                                ServiceLogger.Info("{info}", "таблица SS_FlInfo обновление конец");

                                tr.Commit();
                                ServiceLogger.Info("{info}", "импорт завершён");

                                return(list.Count);
                            }
                            catch (Exception e)
                            {
                                ServiceLogger.Error("{error}", e.ToString());
                                return(0);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    ServiceLogger.Error("{error}", e.ToString());
                    //string sd = @"�";
                    return(0);
                }
            }
        }
示例#2
0
 /// <summary>
 /// Очищает буферные таблицы
 /// </summary>
 private static void CleaningTempTables(dbModel db)
 {
     try
     {
         using (var tr = db.BeginTransaction())
         {
             db.import_productss.Delete();
             db.import_catalogss.Delete();
             db.import_product_categoriess.Delete();
             db.import_product_certificatess.Delete();
             db.import_product_imagess.Delete();
             tr.Commit();
         }
     }
     catch (Exception e)
     {
         SrvcLogger.Error("{error}", e.ToString());
     }
 }
示例#3
0
        /// <summary>
        /// Запускает хранимку для переноса данных из буферных таблиц в боевые
        /// </summary>
        /// <param name="db"></param>
        private static void Finalizer(dbModel db)
        {
            try
            {
                distinctProducts = null;

                using (var tr = db.BeginTransaction())
                {
                    db.import();
                    tr.Commit();
                }
                UpdateCurrentStep();
            }
            catch (Exception e)
            {
                string errorMessage = e.ToString();
                EmailBody += $"<p>{errorMessage}</p>";
                SrvcLogger.Error("{error}", errorMessage);
                CountFalse++;
            }
        }