예제 #1
0
        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;
        }
예제 #2
0
 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;
     });
 }