Example #1
0
        public static bool TimeToCheck(Ix4RequestProps ix4Property)
        {
            bool result = false;

            switch (ix4Property)
            {
            case Ix4RequestProps.Articles:
                if (_articlesLastUpdate == 0 || GetTimeStamp() - _articlesLastUpdate > 86400)
                {
                    result = true;
                }
                break;

            case Ix4RequestProps.Deliveries:
                if (_deliveriesLastUpdate == 0 || (GetTimeStamp() - _deliveriesLastUpdate) > 7200)
                {
                    result = true;
                }
                break;

            case Ix4RequestProps.Orders:
                if (_ordersLastUpdate == 0 || (GetTimeStamp() - _ordersLastUpdate) > 1800)
                {
                    result = true;
                }
                break;

            default:
                break;
            }
            return(result);
        }
        public LICSRequest[] GetRequestsWithArticles(IPluginSettings pluginSettings, Ix4RequestProps ix4Property)
        {
            List <LICSRequest> requests = new List <LICSRequest>();
            LICSRequest        request  = new LICSRequest();

            switch (ix4Property)
            {
            case Ix4RequestProps.Articles:
                request.ArticleImport = GetRequestArticles(pluginSettings);
                break;

            case Ix4RequestProps.Deliveries:
                request.DeliveryImport = GetRequestDeliveries(pluginSettings);
                break;

            case Ix4RequestProps.Orders:
                request.OrderImport = GetRequestOrders(pluginSettings);
                break;

            default:
                break;
            }
            requests.Add(request);
            return(requests.ToArray());
        }
        private bool HasItemsForSending(LICSRequest[] requests, Ix4RequestProps ix4Property)
        {
            bool result = false;

            if (requests != null)
            {
                switch (ix4Property)
                {
                case Ix4RequestProps.Articles:
                    foreach (LICSRequest request in requests)
                    {
                        _loger.Log(string.Format("Count of available {0} = {1}", ix4Property, request.OrderImport.Length));
                        if (request.ArticleImport.Length > 0)
                        {
                            result = true;
                            break;
                        }
                    }
                    break;

                case Ix4RequestProps.Orders:
                    foreach (LICSRequest request in requests)
                    {
                        _loger.Log(string.Format("Count of available {0} = {1}", ix4Property, request.OrderImport.Length));
                        if (request.OrderImport.Length > 0)
                        {
                            result = true;
                            break;
                        }
                    }
                    break;

                case Ix4RequestProps.Deliveries:
                    foreach (LICSRequest request in requests)
                    {
                        _loger.Log(string.Format("Count of available {0} = {1}", ix4Property, request.OrderImport.Length));
                        if (request.DeliveryImport.Length > 0)
                        {
                            result = true;
                            break;
                        }
                    }
                    break;

                default:
                    break;
                }
            }

            return(result);
        }
Example #4
0
        private void InitSettings(Ix4RequestProps itemName)
        {
            switch (itemName)
            {
            case Ix4RequestProps.Articles:
                BaseSettings = XmlConfigurationManager.Instance.GetCustomerInformation().ImportDataSettings.ArticleSettings;
                break;

            case Ix4RequestProps.Orders:
                BaseSettings = XmlConfigurationManager.Instance.GetCustomerInformation().ImportDataSettings.OrderSettings;
                break;

            case Ix4RequestProps.Deliveries:
                BaseSettings = XmlConfigurationManager.Instance.GetCustomerInformation().ImportDataSettings.DeliverySettings;
                break;
            }
        }
Example #5
0
        public static void SetLastUpdateTimeProperty(Ix4RequestProps ix4Property)
        {
            switch (ix4Property)
            {
            case Ix4RequestProps.Articles:
                _articlesLastUpdate = GetTimeStamp();
                break;

            case Ix4RequestProps.Deliveries:
                _deliveriesLastUpdate = GetTimeStamp();
                break;

            case Ix4RequestProps.Orders:
                _ordersLastUpdate = GetTimeStamp();
                break;

            default:
                break;
            }
        }
        private void CheckPreparedRequest(CustomDataSourceTypes dataSourceType, Ix4RequestProps ix4Property)
        {
            try
            {
                // if (UpdateTimeWatcher.TimeToCheck(ix4Property))
                {
                    _loger.Log(string.Format("Start Check {0} using {1} plugin", ix4Property.ToString(), dataSourceType.ToString()));
                    LICSRequest[] requests = _dataCompositor.GetPreparedRequests(dataSourceType, ix4Property);

                    if (requests != null && HasItemsForSending(requests, ix4Property))
                    {
                        foreach (var item in requests)
                        {
                            //_loger.Log(string.Format("Count of available {0} = {1}", ix4Property, item.OrderImport.Length));
                            //_loger.Log("LicsReques orders = " + item.SerializeObjectToString<LICSRequest>());
                            item.ClientId = _customerInfo.ClientID;
                            //_loger.Log("client id = " + _customerInfo.ClientID);
                            foreach (var order in item.OrderImport)
                            {
                                order.ClientNo = _customerInfo.ClientID;
                            }
                            bool res = SendLicsRequestToIx4(item, string.Format("{0}File.xml", ix4Property.ToString()));
                            _loger.Log(string.Format("{0} result: {1}", ix4Property, res));
                            if (res)
                            {
                                UpdateTimeWatcher.SetLastUpdateTimeProperty(ix4Property);
                            }
                        }
                    }
                    _loger.Log(string.Format("Finish Check {0} using {1} plugin", ix4Property.ToString(), dataSourceType.ToString()));
                    System.Threading.Thread.Sleep(30000);
                }
            }
            catch (Exception ex)
            {
                _loger.Log(ex);
            }
        }
Example #7
0
        public LICSRequest[] GetRequestsWithArticles(IPluginSettings pluginSettings, Ix4RequestProps ix4Property)
        {
            List <LICSRequest> requests    = new List <LICSRequest>();
            XmlPluginSettings  xmlSettings = pluginSettings as XmlPluginSettings;

            if (xmlSettings == null)
            {
                return(requests.ToArray());
            }

            if (pluginSettings.CheckArticles)
            {
                LICSRequest request = new LICSRequest();
                switch (ix4Property)
                {
                case Ix4RequestProps.Articles:
                    request.ArticleImport = GetRequestArticles(pluginSettings);
                    requests.Add(request);
                    break;

                case Ix4RequestProps.Orders:
                    //request.ArticleImport = GetRequestArticles(pluginSettings);
                    //request.OrderImport = GetRequestOrders(pluginSettings);
                    //requests.Add(request);


                {
                    // string[] xmlSourceFiles = Directory.GetFiles("C:\\Ilya\\TestXmlFolder\\XmlSource");// _customerInfo.PluginSettings.XmlSettings.SourceFolder);
                    // ICustomerDataConnector xmlDataConnector = CustomerDataComposition.Instance.GetDataConnector(CustomDataSourceTypes.Xml);
                    string[] xmlSourceFiles = Directory.GetFiles(xmlSettings.XmlArticleSourceFolder, "*.xml");
                    if (xmlSourceFiles.Length > 0)
                    {
                        foreach (string file in xmlSourceFiles)
                        {
                            //    _streamWriterFile.WriteLine(string.Format("Filename:  {0}", file));

                            LICSRequest req = GetCustomerDataFromXml(file);        // CustomerDataComposition.Instance.GetCustomerDataFromXml(file);// xmlDataConnector.GetCustomerDataFromXml(file);
                            requests.Add(req);
                        }
                    }
                }
                break;

                case Ix4RequestProps.Deliveries:
                    //  LICSRequestDelivery[] deliveries = GetRequestDeliveries(pluginSettings);
                    //  List<LICSRequestDelivery> deliveryList = new List<LICSRequestDelivery>();
                    //  if(deliveries.Length>_deliveriesLimit)
                    //  {
                    //      int i = 0;
                    //      foreach(var deliv in deliveries)
                    //      {
                    //          if(i<=_deliveriesLimit)
                    //          {
                    //              deliveryList.Add(deliv);
                    //              i++;
                    //          }
                    //          else
                    //          {
                    //              i = 0;
                    //              request.DeliveryImport = deliveryList.ToArray();
                    //              requests.Add(request);
                    //              deliveryList = new List<LICSRequestDelivery>();
                    //          }
                    //      }
                    //  }
                    //  request.ArticleImport = GetRequestArticles(pluginSettings);
                    ////  request.OrderImport = GetRequestOrders(pluginSettings);
                    //  requests.Add(request);
                    break;

                default:
                    break;
                }
            }

            return(requests.ToArray());
        }
        public LICSRequest[] GetRequestsWithArticles(IPluginSettings pluginSettings, Ix4RequestProps ix4Property)
        {
            List <LICSRequest> requests = new List <LICSRequest>();

            return(requests.ToArray());
        }
        public LICSRequest[] GetPreparedRequests(CustomDataSourceTypes dataSourceType, Ix4RequestProps ix4Property)
        {
            LICSRequest[] requests        = new LICSRequest[] { };
            var           plugingSettings = _pluginSettings.AllAvailablePluginSettings().FirstOrDefault(pl => pl.PluginType == dataSourceType);

            if (plugingSettings == null)
            {
                return(requests);
            }

            foreach (var plugin in CustomerDataPlugins)
            {
                if (((string)plugin.Metadata[CurrentServiceInformation.NameForPluginMetadata]).Equals(Enum.GetName(typeof(CustomDataSourceTypes), dataSourceType)))
                {
                    requests = plugin.Value.GetRequestsWithArticles(plugingSettings, ix4Property);
                    break;
                }
            }
            return(requests);
        }