/// <summary> /// Загрузка изменений в удаленной базе /// </summary> /// <param name="settingName">Название настройки обмена</param> public void RemoteLoadChanges(string settingName) { Logger logger = LogManager.GetCurrentClassLogger(); logger.Debug(settingName + ": Начало загрузки изменений в удаленной базе"); SetCurrentStatus(settingName, Job.RemoteLoad, JobStatus.Process); OnExchangeProcess(GetCurrentStatus(settingName)); var baseConfig = GetBaseConfig(settingName); ChannelFactory <IService1C> factory; Status remoteStatus = RemoteGetCurrentStatus(settingName); if (remoteStatus.jobStatus == JobStatus.Error && remoteStatus.description.Contains("Не найдена настройка")) { throw new Exception(remoteStatus.description); } //попробуем загрузить из файла конфигурации try{ factory = new ChannelFactory <IService1C>("IService1C"); } catch { //если нет то создаем вручную NetTcpBinding TCPbinding = new NetTcpBinding(SecurityMode.None); TCPbinding.CloseTimeout = TimeSpan.FromHours(0.5); TCPbinding.OpenTimeout = TimeSpan.FromHours(0.5); TCPbinding.SendTimeout = TimeSpan.FromHours(13); TCPbinding.TransferMode = TransferMode.Buffered; TCPbinding.MaxReceivedMessageSize = 429496729; EndpointAddress endpointAdress = new EndpointAddress(config.HostSetting.Protocol + @"://" + baseConfig.ServerAdress + "/Service1C"); factory = new ChannelFactory <IService1C>(TCPbinding, endpointAdress); } IService1C channel = factory.CreateChannel(); channel.LoadChanges(settingName); factory.Abort(); //.Close(); //ждем пока не выполнится задача Status _status = WaitServerJob(settingName); if (_status.jobStatus == JobStatus.Complite) { logger.Debug(settingName + ": Конец загрузки изменений в удаленной базе"); SetCurrentStatus(settingName, Job.RemoteLoad, JobStatus.Complite); } else { logger.Error(settingName + ": Ошибка загрузки изменений в удаленной базе"); SetCurrentStatus(settingName, Job.RemoteLoad, JobStatus.Error, _status.description); } OnExchangeProcess(GetCurrentStatus(settingName)); }
/// <summary> /// Загрузка изменений в удаленной базе /// </summary> /// <param name="settingName">Название настройки обмена</param> public Status RemoteGetCurrentStatus(string settingName) { Logger logger = LogManager.GetCurrentClassLogger(); logger.Debug(settingName + ": Получаем текущий статус на сревере"); var baseConfig = GetBaseConfig(settingName); ChannelFactory <IService1C> factory; Status request = new Status(); try{ //попробуем загрузить из файла конфигурации try{ factory = new ChannelFactory <IService1C>("IService1C"); } catch { //если нет то создаем вручную NetTcpBinding TCPbinding = new NetTcpBinding(SecurityMode.None); TCPbinding.CloseTimeout = TimeSpan.FromHours(0.5); TCPbinding.OpenTimeout = TimeSpan.FromHours(0.5); TCPbinding.SendTimeout = TimeSpan.FromHours(13); TCPbinding.TransferMode = TransferMode.Buffered; TCPbinding.MaxReceivedMessageSize = 429496729; EndpointAddress endpointAdress = new EndpointAddress(config.HostSetting.Protocol + @"://" + baseConfig.ServerAdress + "/Service1C"); factory = new ChannelFactory <IService1C>(TCPbinding, endpointAdress); } IService1C channel = factory.CreateChannel(); request = channel.GetCurrentStatus(settingName); factory.Close(); logger.Debug(settingName + ": Конец получения текущего статуса на сревере"); } catch { request.job = Job.Exchange; request.jobStatus = JobStatus.Error; request.description = settingName + ": Ошибка получения статуса на сервере"; } return(request); }
/// <summary> /// Конструктор. /// </summary> /// <param name="service1C">Источник данных</param> /// <param name="loggerFactory">Фабрика логгера</param> public Service1СSoap(IService1C service1C, ILoggerFactory loggerFactory) { _Service1C = service1C; _Logger = loggerFactory.CreateLogger <Service1СSoap>(); }
public NBCHRequestController(IService1C service1C) { Service1C = service1C; }