Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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)));
        }