public Task Fail() { if (_token.IsCancellationRequested) { _processQueue.Remove($"ret2corp-{_leadNumber}"); return(Task.FromCanceled(_token)); } try { Lead lead = _leadRepo.GetById(_leadNumber); var retLeadId = lead.GetCFIntValue(724771); if (retLeadId == 0) { _processQueue.Remove($"ret2corp-{_leadNumber}"); return(Task.CompletedTask); } _sourceLeadRepo.Save(new Lead() { id = retLeadId, pipeline_id = 3558781, status_id = 143 }); _processQueue.Remove($"ret2corp-{_leadNumber}"); return(Task.CompletedTask); } catch (Exception e) { _processQueue.Remove($"ret2corp-{_leadNumber}"); _log.Add($"Не получилось синхронизировать сделку {_leadNumber} из корп. в розницу: {e.Message}."); return(Task.FromException(e)); } }
private static Request GetProcessedLeadRequest(Lead lead, int sheetId, IAmoRepo <Company> compRepo) { #region Оганизация string A = ""; if (lead._embedded.companies.Any()) { A = compRepo.GetById(lead._embedded.companies.FirstOrDefault().id).name; } #endregion #region Назначение платежа string B = lead.GetCFStringValue(118509); #endregion #region Кол-во человек int C = lead.GetCFIntValue(611005); if (C == 0) { C++; } #endregion #region Сумма int E = (int)lead.price; #endregion #region Стоимость string D = @"=INDIRECT(""R[0]C[1]"", FALSE)/INDIRECT(""R[0]C[-1]"", FALSE)"; #endregion #region Дата прихода long payment_date_unix; if (lead.custom_fields_values.Any(x => x.field_id == 118675)) { payment_date_unix = (long)lead.custom_fields_values.FirstOrDefault(x => x.field_id == 118675).values[0].value; } else { payment_date_unix = 0; } string F = DateTimeOffset.FromUnixTimeSeconds(payment_date_unix).UtcDateTime.AddHours(3).ToShortDateString(); #endregion #region Номер квитанции string G = lead.GetCFStringValue(118609); #endregion #region асчет string H = lead.GetCFStringValue(118545); #endregion #region Исполнитель string I = lead.GetCFStringValue(162301); #endregion #region Номер сделки int J = lead.id; #endregion #region % сделки int K = lead.GetCFIntValue(613663); #endregion #region Вознаграждение string L = @"=INDIRECT(""R[0]C[-7]"", FALSE)*INDIRECT(""R[0]C[-1]"", FALSE)/100"; #endregion return(GetRowRequest(sheetId, GetCellData(A, B, C, D, E, F, G, H, I, J, K, L))); }