Пример #1
0
        public void StoreEbayUserAccountData(IDatabaseCustomerMarketPlace databaseCustomerMarketPlace, IDatabaseEbayAccountInfo data, MP_CustomerMarketplaceUpdatingHistory historyRecord)
        {
            if (data == null)
            {
                WriteToLog("StoreEbayUserData: invalid data to store", WriteLogType.Error);
                return;
            }

            MP_CustomerMarketPlace customerMarketPlace = GetCustomerMarketPlace(databaseCustomerMarketPlace.Id);

            try
            {
                var accountData = new MP_EbayUserAccountData
                {
                    CustomerMarketPlace = customerMarketPlace,
                    Created             = data.SubmittedDate.ToUniversalTime(),
                    Currency            = data.Currency,
                    Id                   = 0,
                    PaymentMethod        = data.PaymentMethod,
                    AccountId            = data.AccountId,
                    AccountState         = data.AccountState,
                    AmountPastDueValue   = data.AmountPastDueValue,
                    BankAccountInfo      = data.BankAccountInfo,
                    BankModifyDate       = data.BankModifyDate,
                    CreditCardExpiration = data.CreditCardExpiration,
                    CreditCardInfo       = data.CreditCardInfo,
                    CreditCardModifyDate = data.CreditCardModifyDate,
                    CurrentBalance       = data.CurrentBalance,
                    PastDue              = data.PastDue,
                    HistoryRecord        = historyRecord
                };

                if (data.AdditionalAccount != null && data.AdditionalAccount.Length > 0)
                {
                    data.AdditionalAccount.ForEach(
                        a => accountData.EbayUserAdditionalAccountData.Add(
                            new MP_EbayUserAdditionalAccountData
                    {
                        Currency            = a.Currency,
                        AccountCode         = a.AccountCode,
                        Balance             = a.Balance.Value,
                        EbayUserAccountData = accountData
                    }));
                }

                customerMarketPlace.EbayUserAccountData.Add(accountData);

                _CustomerMarketplaceRepository.Update(customerMarketPlace);
            }
            catch (Exception ex)
            {
                WriteToLog("StoreEbayUserData: failed to store data", WriteLogType.Error, ex);
            }
        }
		} // BuildEbayAdditionalAccountData

		private static void BuildEbayAccountData(MP_EbayUserAccountData ebayAccount, EBayModel model) {
			if (ebayAccount == null)
				return;

			model.AccountId = ebayAccount.AccountId;
			model.AccountState = ebayAccount.AccountState;
			model.AmountPastDueAmount = ebayAccount.AmountPastDueValue != null
				? ebayAccount.AmountPastDueValue.Value.ToString(CultureInfo.InvariantCulture)
				: "-";
			model.BankAccountInfo = ebayAccount.BankAccountInfo ?? "-";
			model.BankModifyDate = FormattingUtils.FormatDateTimeToString(ebayAccount.BankModifyDate, "-");
			model.CreditCardExpiration = FormattingUtils.FormatDateTimeToString(ebayAccount.CreditCardExpiration, "-");
			model.CreditCardInfo = ebayAccount.CreditCardInfo;
			model.CreditCardModifyDate = FormattingUtils.FormatDateTimeToString(ebayAccount.CreditCardModifyDate, "-");
			model.CurrentBalance = ebayAccount.CurrentBalance.ToString();
			model.PastDue = ((bool?)ebayAccount.PastDue).ToString();
			model.PaymentMethod = ebayAccount.PaymentMethod;
			model.Currency = ebayAccount.Currency;
		} // BuildEbayAccountData
		} // GetFeedbackData

		private static EBayModel BuildEBay(
			MP_EbayUserData ebayUserData,
			MP_EbayUserAccountData ebayAccount,
			MP_EbayFeedback ebayFeedBack
		) {
			var ebayFeedBackScore = ebayUserData != null ? ebayUserData.FeedbackScore : 0;

			var ebayAdditionalAccount = ebayAccount != null
				? ebayAccount.EbayUserAdditionalAccountData.LastOrDefault()
				: null;

			var model = new EBayModel {
				EBayFeedBackScore = ebayFeedBackScore.ToString(),
			};

			BuildEbayUserData(ebayUserData, model);
			BuildEbayAccountData(ebayAccount, model);
			BuildEbayAdditionalAccountData(model, ebayAdditionalAccount);
			BuildEbayFeedbackData(ebayFeedBack, model);

			return model;
		} // BuildEBay