コード例 #1
0
 public List <DepartureHotel> Departure([FromUri] DepartureParam param)
 {
     if (param == null)
     {
         throw new ArgumentNullException("param");
     }
     if (!param.FirstDate.HasValue)
     {
         throw new ArgumentNullException("fd");
     }
     if (!param.LastDate.HasValue)
     {
         throw new ArgumentNullException("ld");
     }
     if (!(param.Hotel.HasValue || param.Claim.HasValue))
     {
         throw new ArgumentException("'h' or 'c' should be specified");
     }
     return(GuestProvider.GetDepartureInfo(param.Language, param.FirstDate.Value, param.LastDate.Value, param.Hotel, param.Claim));
 }
コード例 #2
0
        public DeparturesResult Departures([FromUri] DepartureParam param)
        {
            if (param == null)
            {
                throw new ArgumentNullException("param");
            }
            WebPartner partner = UserToolsProvider.GetPartner(param);

            if (!(param.StartPoint.HasValue || (param.StartPointAlias == null)))
            {
                param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
            }
            object[] args = new object[5];
            args[0] = param.Language;
            args[1] = partner.id;
            args[2] = param.StartPoint.HasValue ? param.StartPoint.ToString() : "-";
            int?destinationState = param.DestinationState;

            args[3] = destinationState.HasValue ? (destinationState = param.DestinationState).ToString() : "-";
            args[4] = param.WithoutPrice;
            string           key    = string.Format("cache_departuresResult[ln:{0}][p:{1}][sp:{2}][st:{3}][wp:{4}]", args);
            DeparturesResult result = HttpContext.Current.Cache[key] as DeparturesResult;

            if ((result == null) || Settings.IsCacheDisabled)
            {
                DateTime?startDate   = null;
                TimeSpan?minDuration = null;
                List <CatalogExcursionMinPrice> catalog = ExcursionProvider.FindExcursions(param.Language, partner.id, startDate, null, null, param.StartPoint, null, null, null, param.DestinationState.HasValue ? new int[] { param.DestinationState.Value } : null, null, minDuration, null, null, param.WithoutPrice);
                result = new DeparturesResult {
                    departures = ExcursionProvider.BuildRegionList(catalog)
                };

                HttpContext.Current.Cache.Add(key, result, null, DateTime.Now.AddMinutes(10.0), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
            }
            return(result);
        }