Пример #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);
                }
            }
        }