protected override PaymentAccountsModel GetPaymentAccountModel(MP_CustomerMarketPlace mp, DateTime?history, List <IAnalysisDataParameterInfo> av)
        {
            var status = mp.GetUpdatingStatus(history);

            var yodleeModel = new YodleePaymentAccountsModel(mp, history);

            yodleeModel.Load(av);

            return(yodleeModel);
        }
示例#2
0
 public PaymentAccountsModel(MP_CustomerMarketPlace mp, DateTime?history)
 {
     if (mp != null)
     {
         displayName = mp.DisplayName;
         id          = mp.Id;
         IsNew       = mp.IsNew;
         Status      = mp.GetUpdatingStatus(history);
     }
 }         // constructor
        }         // constructor

        public MarketPlaceModel Create(MP_CustomerMarketPlace mp, DateTime?history)
        {
            string      lastChecked         = "";
            string      updatingStatus      = "";
            string      updatingError       = "";
            string      age                 = "";
            string      url                 = "";
            DateTime?   lastTransactionDate = null;
            TimeCounter tc = new TimeCounter("MarketplaceModelBuilder building time for mp " + mp.Id);

            using (tc.AddStep("lastChecked Time taken")) {
                lastChecked = mp.UpdatingEnd.HasValue
                                        ? FormattingUtils.FormatDateToString(mp.UpdatingEnd.Value)
                                        : "never/in progress";
            }
            using (tc.AddStep("GetUpdatingStatus Time taken")) {
                updatingStatus = mp.GetUpdatingStatus(history);
            }
            using (tc.AddStep("GetUpdatingError Time taken")) {
                updatingError = mp.GetUpdatingError(history);
            }
            using (tc.AddStep("GetAccountAge Time taken")) {
                DateTime?originationDate;
                age = GetAccountAge(mp, out originationDate);
            }
            using (tc.AddStep("GetUrl Time taken")) {
                url = GetUrl(mp, mp.GetRetrieveDataHelper()
                             .RetrieveCustomerSecurityInfo(mp.Id));
            }
            using (tc.AddStep("GetLastTransactionDate Time taken")) {
                lastTransactionDate = GetLastTransactionDate(mp);
            }

            var model = new MarketPlaceModel {
                Id                  = mp.Id,
                Type                = mp.DisplayName,
                Name                = mp.Marketplace.Name,
                LastChecked         = lastChecked,
                UpdatingStatus      = updatingStatus,
                UpdateError         = updatingError,
                AccountAge          = age,
                PositiveFeedbacks   = 0,
                NegativeFeedbacks   = 0,
                NeutralFeedbacks    = 0,
                RaitingPercent      = 0,
                SellerInfoStoreURL  = url,
                IsPaymentAccount    = mp.Marketplace.IsPaymentAccount,
                UWPriority          = mp.Marketplace.UWPriority,
                Disabled            = mp.Disabled,
                IsNew               = mp.IsNew,
                IsHistory           = history.HasValue,
                History             = history,
                LastTransactionDate = lastTransactionDate,
            };
            List <IAnalysisDataParameterInfo> aggregations = new List <IAnalysisDataParameterInfo>();

            using (tc.AddStep("SetAggregationData Time taken")) {
                aggregations = mp.Marketplace.GetAggregations(mp, history).ToList();
                SetAggregationData(model, aggregations);
            }

            using (tc.AddStep("monthSales Time taken")) {
                var monthSales = aggregations.FirstOrDefault(x =>
                                                             x.TimePeriod.TimePeriodType == TimePeriodEnum.Month &&
                                                             x.ParameterName == AggregationFunction.Turnover.ToString()
                                                             );
                model.MonthSales = monthSales == null ? 0 : (decimal)monthSales.Value;
            }
            using (tc.AddStep("yearSales Time taken")) {
                var yearSales = aggregations.FirstOrDefault(x =>
                                                            x.TimePeriod.TimePeriodType == TimePeriodEnum.Year &&
                                                            x.ParameterName == AggregationFunction.Turnover.ToString()
                                                            );
                model.AnnualSales = yearSales == null ? 0 : (decimal)yearSales.Value;
            }

            using (tc.AddStep("InitializeSpecificData Time taken")) {
                InitializeSpecificData(mp, model, history);
            }
            using (tc.AddStep("GetFeedbackData Time taken")) {
                var feedbacks = GetFeedbackData(aggregations);
                model.RaitingPercent    = feedbacks.RaitingPercent;
                model.PositiveFeedbacks = feedbacks.PositiveFeedbacks;
                model.NegativeFeedbacks = feedbacks.NegativeFeedbacks;
                model.NeutralFeedbacks  = feedbacks.NeutralFeedbacks;
                model.AmazonSelerRating = feedbacks.AmazonSelerRating;
            }

            using (tc.AddStep("GetPaymentAccountModel Time taken")) {
                if (model.IsPaymentAccount)
                {
                    var paymentModel = GetPaymentAccountModel(mp, history, aggregations);
                    model.TotalNetInPayments  = paymentModel.TotalNetInPayments;
                    model.TotalNetOutPayments = paymentModel.TotalNetOutPayments;
                    model.TransactionsNumber  = paymentModel.TransactionsNumber;
                    model.MonthInPayments     = paymentModel.MonthInPayments;
                }                 // if
            }

            Log.Info(tc.ToString());
            return(model);
        }         // Create
        }         // Create

        public MarketPlaceDataModel CreateLightModel(MP_CustomerMarketPlace mp, DateTime?history)
        {
            var lastChecked = mp.UpdatingEnd.HasValue
                                ? FormattingUtils.FormatDateToString(mp.UpdatingEnd.Value)
                                : "never/in progress";
            var      updatingStatus = mp.GetUpdatingStatus(history);
            var      updatingError  = mp.GetUpdatingError(history);
            DateTime?originationDate;
            var      age = GetAccountAge(mp, out originationDate);
            var      url = GetUrl(mp, mp.GetRetrieveDataHelper().RetrieveCustomerSecurityInfo(mp.Id));
            var      lastTransactionDate = GetLastTransactionDate(mp);

            var model = new MarketPlaceDataModel {
                Id                  = mp.Id,
                Type                = mp.DisplayName,
                Name                = mp.Marketplace.Name,
                LastChecked         = lastChecked,
                UpdatingStatus      = updatingStatus,
                UpdateError         = updatingError,
                AccountAge          = age,
                RaitingPercent      = 0,
                SellerInfoStoreURL  = url,
                IsPaymentAccount    = mp.Marketplace.IsPaymentAccount,
                UWPriority          = mp.Marketplace.UWPriority,
                Disabled            = mp.Disabled,
                IsNew               = mp.IsNew,
                IsHistory           = history.HasValue,
                History             = history,
                LastTransactionDate = lastTransactionDate,
                OriginationDate     = originationDate
            };

            var aggregations = mp.Marketplace.GetAggregations(mp, history).ToList();

            model.TurnoverTrend =
                ThisLibrary.Instance.DB.Fill <TurnoverTrend>(
                    "LoadActiveMarketplaceTurnovers",
                    CommandSpecies.StoredProcedure,
                    new QueryParameter("MpID", mp.Id)
                    )
                .OrderByDescending(x => x.TheMonth)
                .Take(12)
                .ToList();

            var monthSales = aggregations.FirstOrDefault(x =>
                                                         x.TimePeriod.TimePeriodType == TimePeriodEnum.Month &&
                                                         x.ParameterName == AggregationFunction.Turnover.ToString()
                                                         );

            model.MonthSales = monthSales == null ? 0 : (decimal)monthSales.Value;

            var yearSales = aggregations.FirstOrDefault(x =>
                                                        x.TimePeriod.TimePeriodType == TimePeriodEnum.Year &&
                                                        x.ParameterName == AggregationFunction.Turnover.ToString()
                                                        );

            model.AnnualSales = yearSales == null ? 0 : (decimal)yearSales.Value;

            var feedbacks = GetFeedbackData(aggregations);

            model.RaitingPercent = feedbacks.RaitingPercent;

            if (model.IsPaymentAccount)
            {
                var paymentModel = GetPaymentAccountModel(mp, history, aggregations);
                model.TotalNetInPayments  = paymentModel.TotalNetInPayments;
                model.TotalNetOutPayments = paymentModel.TotalNetOutPayments;
                model.MonthInPayments     = paymentModel.MonthInPayments;
                model.TransactionsNumber  = paymentModel.TransactionsNumber;
            }             // if

            return(model);
        }         // CreateLightModel