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