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); } }
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); } }