public bool PutFileToBase(uint priceItemId, Stream stream)
        {
            LastErrorMessage = String.Empty;
            try {
                var parameter = new FilePriceInfo()
                {
                    PriceItemId    = priceItemId,
                    Stream         = stream,
                    LogInformation = new LogInformation()
                    {
                        ComputerName = Environment.MachineName,
                        UserName     = Environment.UserName
                    }
                };

                _clientProxy = _channelFactory.CreateChannel();
                _clientProxy.PutFileToBase(parameter);
                ((ICommunicationObject)_clientProxy).Close();
            }
            catch (FaultException faultException) {
                LastErrorMessage = faultException.Reason.ToString();
                return(false);
            }
            finally {
                AbortClientProxy();
            }
            return(true);
        }
        public bool RetransErrorPrice(ulong priceItemId)
        {
            LastErrorMessage = String.Empty;
            try {
                var wcfParameter = new WcfCallParameter()
                {
                    Value          = priceItemId,
                    LogInformation = new LogInformation()
                    {
                        ComputerName = Environment.MachineName,
                        UserName     = Environment.UserName
                    }
                };

                _clientProxy = _channelFactory.CreateChannel();
                _clientProxy.RetransErrorPrice(wcfParameter);
                ((ICommunicationObject)_clientProxy).Close();
            }
            catch (FaultException faultException) {
                LastErrorMessage = faultException.Reason.ToString();
                return(false);
            }
            finally {
                AbortClientProxy();
            }
            return(true);
        }
        public HistoryFile GetFileFormHistory(ulong downlogId)
        {
            LastErrorMessage = String.Empty;
            HistoryFile historyFile = null;

            try {
                var wcfParameter = new WcfCallParameter()
                {
                    Value          = downlogId,
                    LogInformation = new LogInformation()
                    {
                        ComputerName = Environment.MachineName,
                        UserName     = Environment.UserName
                    }
                };

                _clientProxy = _channelFactory.CreateChannel();
                historyFile  = _clientProxy.GetFileFormHistory(wcfParameter);
                ((ICommunicationObject)_clientProxy).Close();
            }
            catch (FaultException faultException) {
                LastErrorMessage = faultException.Reason.ToString();
                return(null);
            }
            finally {
                AbortClientProxy();
            }
            return(historyFile);
        }
 public void AppendToIndex(string[] synonymsIds)
 {
     try {
         _clientProxy = _channelFactory.CreateChannel();
         _clientProxy.AppendToIndex(synonymsIds);
         ((ICommunicationObject)_clientProxy).Close();
     }
     finally {
         AbortClientProxy();
     }
 }
 public void StopFindSynonyms(string taskId)
 {
     try {
         _clientProxy = _channelFactory.CreateChannel();
         _clientProxy.StopFindSynonyms(taskId);
         ((ICommunicationObject)_clientProxy).Close();
     }
     finally {
         AbortClientProxy();
     }
 }
 public void RetransPriceSmart(uint priceId)
 {
     try {
         _clientProxy = _channelFactory.CreateChannel();
         _clientProxy.RetransPriceSmart(priceId);
         ((ICommunicationObject)_clientProxy).Close();
     }
     finally {
         AbortClientProxy();
     }
 }
        public WcfSynonymBox FindSynonymsResult(string taskId)
        {
            WcfSynonymBox result;

            try {
                _clientProxy = _channelFactory.CreateChannel();
                result       = _clientProxy.FindSynonymsResult(taskId);
                ((ICommunicationObject)_clientProxy).Close();
            }
            finally {
                AbortClientProxy();
            }
            return(result);
        }
        public void SetUp()
        {
            TestHelper.RecreateDirectories();
            priceProcessor = factory.CreateChannel();

            supplier = TestSupplier.Create();

            var price = supplier.Prices[0];

            price.SetFormat(PriceFormatType.NativeDbf);
            priceItem = price.Costs[0].PriceItem;
            source    = priceItem.Source;
            priceItem.Format.Save();
        }
 public string[] FindSynonyms(uint priceItemId)
 {
     LastErrorMessage = String.Empty;
     string[] result;
     try {
         _clientProxy = _channelFactory.CreateChannel();
         result       = _clientProxy.FindSynonyms(priceItemId);
         ((ICommunicationObject)_clientProxy).Close();
     }
     catch (FaultException faultException) {
         LastErrorMessage = faultException.Reason.ToString();
         return(new[] { "Error", LastErrorMessage });
     }
     finally {
         AbortClientProxy();
     }
     return(result);
 }
        public Stream BaseFile(uint priceItemId)
        {
            LastErrorMessage = String.Empty;
            Stream stream = null;

            try {
                _clientProxy = _channelFactory.CreateChannel();
                stream       = _clientProxy.BaseFile(priceItemId);
                ((ICommunicationObject)_clientProxy).Close();
            }
            catch (FaultException faultException) {
                LastErrorMessage = faultException.Reason.ToString();
                return(null);
            }
            finally {
                AbortClientProxy();
            }
            return(stream);
        }
        public T UniversavWcfCall <T>(Func <T> action)
        {
            LastErrorMessage = String.Empty;
            var result = default(T);

            try {
                _clientProxy = _channelFactory.CreateChannel();
                result       = action();
                ((ICommunicationObject)_clientProxy).Close();
            }
            catch (FaultException faultException) {
                LastErrorMessage = faultException.Reason.ToString();
                return(default(T));
            }
            finally {
                AbortClientProxy();
            }
            return(result);
        }
        public string[] InboundFiles()
        {
            LastErrorMessage = String.Empty;
            var files = new string[0];

            try {
                _clientProxy = _channelFactory.CreateChannel();
                files        = _clientProxy.InboundFiles();
                ((ICommunicationObject)_clientProxy).Close();
            }
            catch (FaultException faultException) {
                LastErrorMessage = faultException.Reason.ToString();
                return(new string[0]);
            }
            finally {
                AbortClientProxy();
            }
            return(files);
        }
Esempio n. 13
0
        public static void RemotingCall(Action <IRemotePriceProcessor> action)
        {
            if (Stub != null)
            {
                try {
                    action(Stub);
                } catch (Exception e) {
                    _log.Warn("Ошибка при обращении к сервису обработки прайс листов", e);
                }
                return;
            }

            var binding = new NetTcpBinding();

            binding.Security.Transport.ProtectionLevel = ProtectionLevel.EncryptAndSign;
            binding.Security.Mode          = SecurityMode.None;
            binding.TransferMode           = TransferMode.Streamed;
            binding.MaxReceivedMessageSize = Int32.MaxValue;
            binding.MaxBufferSize          = 524288;

            var channelFactory            = new ChannelFactory <IRemotePriceProcessor>(binding, Settings.Default.WCFServiceUrl);
            IRemotePriceProcessor channel = null;

            try {
                channel = channelFactory.CreateChannel();
                action(channel);
                ((ICommunicationObject)channel).Close();
            }
            catch (Exception e) {
                _log.Warn("Ошибка при обращении к сервису обработки прайс листов", e);
            }
            finally {
                var communicationObject = (ICommunicationObject)channel;
                if (communicationObject != null &&
                    communicationObject.State != CommunicationState.Closed)
                {
                    communicationObject.Abort();
                }
                channelFactory.Close();
            }
        }