private void ParceAndSaveUserFeedbackInfo(IDatabaseCustomerMarketPlace databaseCustomerMarketPlace, AmazonUserRatingInfo ratingInfo, MP_CustomerMarketplaceUpdatingHistory historyRecord) { var submittedDate = ratingInfo.SubmittedDate; var data = new DatabaseAmazonFeedbackData(submittedDate) { UserRaining = ratingInfo.Rating }; var timePeriodsFeedback = new[] { TimePeriodEnum.Month, TimePeriodEnum.Month3, TimePeriodEnum.Year, TimePeriodEnum.Lifetime }; foreach (var timePeriod in timePeriodsFeedback) { FeedbackPeriod amazonTimePeriod = AmazonDatabaseTypeConverter.ConvertToAmazonTimePeriod(timePeriod); var count = ratingInfo.GetFeedbackValue(amazonTimePeriod, FeedbackType.Count); var negativePercent = ratingInfo.GetFeedbackValue(amazonTimePeriod, FeedbackType.Negative); var neutralPercent = ratingInfo.GetFeedbackValue(amazonTimePeriod, FeedbackType.Neutral); var positivePercent = ratingInfo.GetFeedbackValue(amazonTimePeriod, FeedbackType.Positive); var negativeNumber = ConvertToNumber(negativePercent, count); var neutralNumber = ConvertToNumber(neutralPercent, count); var positiveNumber = ConvertToNumber(positivePercent, count); //Debug.Assert( count == negativeNumber + neutralNumber + positiveNumber ); data.FeedbackByPeriod.Add(timePeriod, new DatabaseAmazonFeedbackDataByPeriod(timePeriod) { Count = count, Negative = negativeNumber, Neutral = neutralNumber, Positive = positiveNumber }); } Helper.StoreAmazonFeedbackData(databaseCustomerMarketPlace, data, historyRecord); }
public void StoreAmazonFeedbackData(IDatabaseCustomerMarketPlace databaseCustomerMarketPlace, DatabaseAmazonFeedbackData data, MP_CustomerMarketplaceUpdatingHistory historyRecord) { if (data == null) { WriteToLog("StoreAmazonUserData: invalid data to store", WriteLogType.Error); return; } MP_CustomerMarketPlace customerMarketPlace = GetCustomerMarketPlace(databaseCustomerMarketPlace.Id); var feedBack = new MP_AmazonFeedback { CustomerMarketPlace = customerMarketPlace, Created = data.Submitted, UserRaining = data.UserRaining, HistoryRecord = historyRecord }; if (data.FeedbackByPeriod != null && data.FeedbackByPeriod.Count > 0) { feedBack.FeedbackByPeriodItems.AddAll(data.FeedbackByPeriod.Values.Select(f => new MP_AmazonFeedbackItem { AmazonFeedback = feedBack, Count = f.Count, Negative = f.Negative, Positive = f.Positive, Neutral = f.Neutral, TimePeriod = GetTimePeriod(TimePeriodFactory.Create(f.TimePeriod)) }).ToList()); } customerMarketPlace.AmazonFeedback.Add(feedBack); _CustomerMarketplaceRepository.Update(customerMarketPlace); }