/// <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; }
/// <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; }