Esempio n. 1
0
        protected void ProceedPrimaryResults(PrimaryIntegratePackResponse results)
        {
            try
            {
                var query = new StringBuilder();
                foreach (var result in results.PrimaryIntegratePackResult)
                {
                    if (result.IsSuccess)
                    {
                        query.AppendLine(String.Format("Update {1} Set Status = 1 Where ERPId = '{0}';", result.GetCorrectId(), _tableName));
                    }
                    else
                    {
                        var errorMessage = String.IsNullOrEmpty(result.ErrorMessage) ? String.Empty : result.ErrorMessage.Replace("'", "''").Replace("{", "").Replace("}", "");
                        if (errorMessage.Length > 250)
                        {
                            errorMessage = errorMessage.Substring(0, 250);
                        }
                        query.AppendLine(String.Format("Update {2} Set Status = {3}, ErrorMessage = '{1}' Where ERPId = '{0}';", result.GetCorrectId(), errorMessage, _tableName, result.IsTimeout ? "4" : "2"));
                    }
                }

                var sql = query.ToString();
                if (!string.IsNullOrEmpty(sql))
                {
                    DBConnectionProvider.ExecuteNonQuery(sql);
                }
            }
            catch (Exception e)
            {
                Logger.LogError(JsonConvert.SerializeObject(results), e);
            }
        }
Esempio n. 2
0
        private bool SendToProcessingPrimary(List <BaseIntegrationObject> pack, DateTime now, out PrimaryIntegratePackResponse results, IEnumerable <PackResult> successResults, bool isUsePA)
        {
            now = DateTime.Now;

            var processingResults = SendToProcessing(pack.Where(p => successResults.FirstOrDefault(r => r.Id == p.ERPId) != null).ToList(), isUsePA, _processingPrimaryMethodName);

            Logger.LogInfo(string.Format("Запрос {0} к процессингу выполнен за {1}с", _tableName, (DateTime.Now - now).TotalSeconds.ToString("F1")), "");

            results = new PrimaryIntegratePackResponse();

            if (processingResults.IsSuccess)
            {
                try
                {
                    results.PrimaryIntegratePackResult = JsonConvert.DeserializeObject <List <PackResult> >(processingResults.ResponseStr);
                    return(true);
                }
                catch (Exception e)
                {
                    ProceedResult(new PackResult()
                    {
                        IsSuccess = false, ErrorMessage = $"{e.Message} {processingResults.ResponseStr}"
                    }, pack);
                    Logger.LogInfo(processingResults.ResponseStr, "");
                    return(false);
                }
            }
            else
            {
                SetProcessingErrors(pack, processingResults.ResponseStr, processingResults.IsTimeout);
                return(false);
            }
        }