private IEnumerable<TopOffersDataContract> GetTopOffersForSelectedLocation(string locationKey, string locationName) { ITopOffersRepository topOffersRepository = _DataRepositoryFactory.GetDataRepository<ITopOffersRepository>(); ITopOfferMappingRepository topOffersMappingRepository = _DataRepositoryFactory.GetDataRepository<ITopOfferMappingRepository>(); IActivitiesMasterRepository activityMasterrepository = _DataRepositoryFactory.GetDataRepository<IActivitiesMasterRepository>(); IEnumerable<TopOffers> allTopOffers = topOffersRepository.GetTopOffersForLocation(locationKey); IEnumerable<TopOfferMapping> allTopOffersMapping = topOffersMappingRepository.GetAllTopActivitiesOfferForSelectedLocation(locationKey); List<TopOffersDataContract> results = new List<TopOffersDataContract>(); IActivityImagesRepository activityImageRepository = _DataRepositoryFactory.GetDataRepository<IActivityImagesRepository>(); foreach (var topOffers in allTopOffers) { if (allTopOffersMapping.Any(e => e.TopOfferKey == topOffers.TopOffersKey)) { TopOfferMapping offerMapping = allTopOffersMapping.FirstOrDefault(e => e.TopOfferKey == topOffers.TopOffersKey); ActivitiesMaster activity = activityMasterrepository.Get(offerMapping.MappingKey); ActivityImages img = activityImageRepository.GetImagesForSelectedActivity(activity.ActivitesKey).FirstOrDefault(e => e.IsDefault == true); decimal activityCost = Math.Ceiling(activity.Cost - ((offerMapping.Discount / 100) * activity.Cost)); TopOffersDataContract topOffer = new TopOffersDataContract { TopOffersKey = topOffers.TopOffersKey, Discount = offerMapping.Discount, Cost = activityCost, ImageURL = string.Format("Images/{0}", topOffers.ImageUrl), //string.Format("Images/{0}", img.ImageURL), Currency = activity.Currency, Location = locationName, Key = offerMapping.MappingType, OfferType = ACTIVITY, Value = activity.Name, Rating = activity.AverageUserRating }; results.Add(topOffer); } } return results; }
public ActivityDetailsDataContract GetAllActivities(string locationKey, string activityKey, string userAgent) { return ExecuteFaultHandledOperation(() => { IActivitiesMasterRepository activitiesMasterRepository = _DataRepositoryFactory.GetDataRepository<IActivitiesMasterRepository>(); ITopOffersRepository topOffersRepository = _DataRepositoryFactory.GetDataRepository<ITopOffersRepository>(); IActivityImagesRepository activityImageRepository = _DataRepositoryFactory.GetDataRepository<IActivityImagesRepository>(); ITopOfferMappingRepository topOffersMappingRepository = _DataRepositoryFactory.GetDataRepository<ITopOfferMappingRepository>(); ActivityDetailsDataContract allActivitiesForLocation = activitiesMasterRepository.GetActivityByLocation(locationKey: locationKey, activityKey: activityKey, userAgent: userAgent); IEnumerable<TopOffers> topOfferForSelectedActivity = topOffersRepository.GetOffersForActivity(activityKey); IEnumerable<TopOfferMapping> allTopOffersMapping = topOffersMappingRepository.GetAllTopActivitiesOfferForSelectedLocation(locationKey); List<TopOffersDataContract> offers = new List<TopOffersDataContract>(); foreach (var item in topOfferForSelectedActivity) { if (allTopOffersMapping.Any(e => e.TopOfferKey == item.TopOffersKey)) { TopOfferMapping offerMapping = allTopOffersMapping.FirstOrDefault(e => e.TopOfferKey == item.TopOffersKey); ActivityImages img = activityImageRepository.GetImagesForSelectedActivity(allActivitiesForLocation.ActivityKey).FirstOrDefault(e => e.IsDefault == true); TopOffersDataContract topOffer = new TopOffersDataContract { TopOffersKey = item.TopOffersKey, Discount = offerMapping.Discount, ImageURL = string.Format("Images/{0}", img.ImageURL), Currency = allActivitiesForLocation.Currency, Location = allActivitiesForLocation.Location, Key = offerMapping.MappingType, OfferType = ACTIVITY, Value = allActivitiesForLocation.Name, Rating = allActivitiesForLocation.UserRating }; offers.Add(topOffer); } } if (topOfferForSelectedActivity.Count() > 0) { allActivitiesForLocation.IsTopOffer = true; allActivitiesForLocation.AllTopOffers = offers; } else { allActivitiesForLocation.IsTopOffer = false; allActivitiesForLocation.AllTopOffers = new List<TopOffersDataContract>(); } return allActivitiesForLocation; }); }