/// <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); } } }
/// <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()); } }
/// <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++; } }