public ActionResult Departure(GuestWebParams param)
        {
            DepartureContext context;
            DateTime         date = ((param != null) && param.TestDate.HasValue) ? param.TestDate.Value.Date : DateTime.Now.Date;

            if (WebSecurity.IsAuthenticated)
            {
                context = new DepartureContext();
                List <GuestClaim> list = GuestProvider.GetActiveClaims(UrlLanguage.CurrentLanguage, WebSecurity.CurrentUserId, date);
                if ((list != null) && (list.Count > 0))
                {
                    context.Hotels = new List <DepartureHotel>();
                    foreach (GuestClaim claim in list)
                    {
                        int?hotel = null;
                        context.Hotels.AddRange(GuestProvider.GetDepartureInfo(UrlLanguage.CurrentLanguage, date, date.AddDays(1.0), hotel, new int?(claim.claim)));
                    }
                }
                return(base.View(context));
            }
            if (HttpPreferences.Current.LocationHotel != null)
            {
                context = new DepartureContext {
                    Hotel = CatalogProvider.GetHotelDescription(UrlLanguage.CurrentLanguage, HttpPreferences.Current.LocationHotel)
                };
                if (context.Hotel != null)
                {
                    context.Hotels = GuestProvider.GetDepartureInfo(UrlLanguage.CurrentLanguage, date, date.AddDays(1.0), new int?(context.Hotel.id), null);
                }
                return(base.View(context));
            }
            string str = base.Url.RouteUrl(base.Request.QueryStringAsRouteValues());

            return(base.RedirectToAction("login", "account", new { returnUrl = str }));
        }
 public HotelGuideResult HotelGuide([FromUri] HotelGuideParam param)
 {
     if (param == null)
     {
         throw new ArgumentNullException("param");
     }
     if (!param.Hotel.HasValue)
     {
         throw new ArgumentNullExceptionWithCode(0x6b, "h");
     }
     if (!param.PeriodBegin.HasValue)
     {
         throw new ArgumentNullExceptionWithCode(0x6c, "pb");
     }
     if (!param.PeriodEnd.HasValue)
     {
         throw new ArgumentNullExceptionWithCode(0x6d, "pe");
     }
     return(new HotelGuideResult {
         hotel = CatalogProvider.GetHotelDescription(param.Language, param.Hotel.Value), guides = GuideProvider.GetHotelGuides(param.Language, param.Hotel.Value, param.PeriodBegin.Value, param.PeriodEnd.Value)
     });
 }