public ExcursionPriceList Price(int id, [FromUri] PriceParam param)
        {
            if (param == null)
            {
                throw new System.ArgumentNullException("param");
            }
            WebPartner partner = UserToolsProvider.GetPartner(param);

            if (!param.Date.HasValue)
            {
                throw new ArgumentNullExceptionWithCode(202, "date");
            }
            if (!param.StartPoint.HasValue && param.StartPointAlias != null)
            {
                param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
            }
            ExcursionPriceList result;

            if (param.Date.Value.Date < System.DateTime.Today)
            {
                result = new ExcursionPriceList(new System.Collections.Generic.List <ExcursionPrice>());
            }
            else
            {
                System.Collections.Generic.List <ExcursionPrice> prices = ExcursionProvider.GetPrice(param.Language, partner.id, id, param.Date.Value, param.StartPoint);
                result = new ExcursionPriceList((
                                                    from m in prices
                                                    where !m.issaleclosed && !m.isstopsale && m.price != null && !(m.totalseats >= 0 && !m.freeseats.HasValue)
                                                    select m).ToList <ExcursionPrice>());
            }

            return(result);
        }
 public ExcursionPriceList Price(int id, [FromUri] PriceParam param)
 {
     if (param == null)
     {
         throw new System.ArgumentNullException("param");
     }
     WebPartner partner = UserToolsProvider.GetPartner(param);
     if (!param.Date.HasValue)
     {
         throw new ArgumentNullExceptionWithCode(202, "date");
     }
     if (!param.StartPoint.HasValue && param.StartPointAlias != null)
     {
         param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
     }
     ExcursionPriceList result;
     if (param.Date.Value.Date < System.DateTime.Today)
     {
         result = new ExcursionPriceList(new System.Collections.Generic.List<ExcursionPrice>());
     }
     else
     {
         System.Collections.Generic.List<ExcursionPrice> prices = ExcursionProvider.GetPrice(param.Language, partner.id, id, param.Date.Value, param.StartPoint);
         result = new ExcursionPriceList((
             from m in prices
             where !m.issaleclosed && !m.isstopsale && m.price != null
             select m).ToList<ExcursionPrice>());
     }
     return result;
 }