Exemplo n.º 1
0
        /// <summary>Flattens the duration.</summary>
        /// <param name="salesAreaCampaignTarget">The sales area campaign target.</param>
        /// <returns></returns>
        public DurationFlattenModel FlattenDuration(SalesAreaCampaignTarget salesAreaCampaignTarget)
        {
            var durationFlattenModel = new DurationFlattenModel();

            if (salesAreaCampaignTarget is null)
            {
                return(durationFlattenModel);
            }

            if (!(salesAreaCampaignTarget.Multiparts is null))
            {
                durationFlattenModel.DurationTargetRatings =
                    salesAreaCampaignTarget.Multiparts.Sum(m => m.DesiredPercentageSplit);
                durationFlattenModel.DurationActualRatings =
                    salesAreaCampaignTarget.Multiparts.Sum(m => m.CurrentPercentageSplit);

                var ticks = salesAreaCampaignTarget.Multiparts.FirstOrDefault()?.Lengths?.Select(x => x.Length)
                            .FirstOrDefault().BclCompatibleTicks ?? default;
                durationFlattenModel.DurationSecs = Convert.ToInt32(TimeSpan.FromTicks(ticks).TotalSeconds);
            }

            durationFlattenModel.DurationTargetActualDiff =
                durationFlattenModel.DurationActualRatings - durationFlattenModel.DurationTargetRatings;
            durationFlattenModel.DurationTargetAchievedPct = GetDurationTargetAchievedPct();

            return(durationFlattenModel);

            decimal GetDurationTargetAchievedPct() =>
            Math.Round(durationFlattenModel.DurationTargetRatings == 0
                        ? 0
                        : durationFlattenModel.DurationActualRatings / durationFlattenModel.DurationTargetRatings * 100, 2,
                       MidpointRounding.AwayFromZero);
        }
Exemplo n.º 2
0
 /// <summary>Maps to campaign flatten model.</summary>
 /// <param name="baseCampaignFlattenedModel">The base campaign flattened model.</param>
 /// <param name="salesAreaCampaignTargetFlattenModel">The sales area campaign target flatten model.</param>
 /// <param name="durationFlattenModel">The duration flatten model.</param>
 /// <param name="strikeWeightFlattenModel">The strike weight flatten model.</param>
 /// <param name="dayPartFlattenModel">The day part flatten model.</param>
 /// <returns></returns>
 private CampaignFlattenedModel MapToCampaignFlattenModel(
     CampaignBaseFlattenedModel baseCampaignFlattenedModel,
     SalesAreaCampaignTargetFlattenModel salesAreaCampaignTargetFlattenModel,
     DurationFlattenModel durationFlattenModel,
     StrikeWeightFlattenModel strikeWeightFlattenModel = null,
     DayPartFlattenModel dayPartFlattenModel           = null)
 {
     return(_mapper.Map <CampaignFlattenedModel>(
                Tuple.Create(
                    baseCampaignFlattenedModel,
                    salesAreaCampaignTargetFlattenModel,
                    durationFlattenModel,
                    strikeWeightFlattenModel,
                    dayPartFlattenModel)));
 }
Exemplo n.º 3
0
        private CampaignFlattenedModel MapToCreateCampaignFlattenedModel(
            CampaignBaseFlattenedModel baseCampaignFlattenedModel,
            SalesAreaCampaignTargetFlattenModel salesAreaCampaignTargetFlattenModel,
            DurationFlattenModel durationFlattenModel,
            IMapper mapper,
            StrikeWeightFlattenModel strikeWeightFlattenModel = null,
            DayPartFlattenModel dayPartFlattenModel           = null)
        {
            var campaignFlattenedModel = mapper.Map <CampaignFlattenedModel>(baseCampaignFlattenedModel);

            campaignFlattenedModel = mapper.Map(salesAreaCampaignTargetFlattenModel, campaignFlattenedModel);
            campaignFlattenedModel = mapper.Map(durationFlattenModel, campaignFlattenedModel);
            if (strikeWeightFlattenModel != null)
            {
                campaignFlattenedModel = mapper.Map(strikeWeightFlattenModel, campaignFlattenedModel);
                if (dayPartFlattenModel != null)
                {
                    campaignFlattenedModel = mapper.Map(dayPartFlattenModel, campaignFlattenedModel);
                }
            }
            return(campaignFlattenedModel);
        }