コード例 #1
0
ファイル: OrderDao.cs プロジェクト: ognjenm/egle
        /// <summary>
        /// Get order information without the bookings
        /// </summary>
        /// <param name="id">Order id</param>
        /// <param name="channelReference">Channel Reference</param>
        /// <param name="orderReference">Order Reference</param>
        /// <param name="cultureCode">Culture for translations</param>
        /// <param name="type">Type of get</param>
        /// <returns>Order for given criteria</returns>
        public Model.Order.Order GetByKey(int id = default(int), string channelReference = "", string orderReference = "", string cultureCode = "", GetOrderWithBookingsByEnum type = GetOrderWithBookingsByEnum.Id)
        {
            cultureCode = string.IsNullOrEmpty(cultureCode) ? ConfigHelper.DefaultCultureCode : cultureCode;
            var sqlById = string.Empty;

            switch (type)
            {
                case GetOrderWithBookingsByEnum.Id:
                    sqlById = @"WHERE BO.Id = @Id";
                    break;
                case GetOrderWithBookingsByEnum.ChannelReference:
                    sqlById = @"WHERE BO.ChannelReference = @ChannelReference AND FB.BookingStatusCode NOT IN ('X') ";
                    break;
                case GetOrderWithBookingsByEnum.OrderReference:
                    sqlById = @"WHERE BO.OrderReference = @OrderReference";
                    break;
            }

            var sqlToGetById = string.Format("{0} {1} ", SQL_GET_ORDER, sqlById);

            var parameters = new List<SqlParameter>
            {
                DbHelper.CreateParameter(OrderMapper.Parameters.Id, id),
                DbHelper.CreateParameter(OrderMapper.Parameters.ChannelReference, channelReference),
                DbHelper.CreateParameter(OrderMapper.Parameters.OrderReference, orderReference),
                DbHelper.CreateParameter(CultureMapper.Parameters.CultureCode, cultureCode)
            };

            var order = DbHelper.CreateInstance(sqlToGetById, OrderMapper.MapReader, parameters: parameters);

            FillInGuestPhones(order);

            return order;
        }
コード例 #2
0
ファイル: OrderDao.cs プロジェクト: ognjenm/egle
        /// <summary>
        /// Get Order with bookings by Id
        /// </summary>
        /// <param name="id">Order id</param>
        /// <param name="channelReference">Channel Reference</param>
        /// <param name="orderReference">Order Reference</param>
        /// <param name="cultureCode">Culture for translations</param>
        /// <param name="type">Type of get</param>
        /// <returns>The Order model with bookings related to the id </returns>
        public Model.Order.Order GetOrderWithBookingsByKey(int id = default(int), string channelReference = "", string orderReference = "", string cultureCode = "", GetOrderWithBookingsByEnum type = GetOrderWithBookingsByEnum.Id)
        {
            var order = GetByKey(id, channelReference, orderReference, cultureCode, type);

            if (order != null)
            {
                var orderWithoutBookings = order.Clone();
                order.Bookings = bookingDao.GetByOrderId(order.Id.Value, cultureCode);
                order.Bookings.ForEach(x => x.Order = orderWithoutBookings);
            }

            return order;
        }