/// <summary> /// Metoda do konstruowania i wywoływania zapytania za pomocą sesji NHibernate /// </summary> /// <param name="session">Sesja NHibernate</param> public override OrderForm Execute(ISession session) { var order = session .CreateQuery(@" select o from Order o join fetch o.OrderItems oi join fetch o.Customer c join fetch c.AppUser au join fetch oi.Product p join fetch p.Menu m join fetch m.Restaurant r where au.UserId = :userId and (o.OrderStatus = :openStatusId or o.OrderStatus = :assignToWaiterStatusId or o.OrderStatus = :closedStatusId) and r.Id = :restaurantId") .SetInt32("userId", userId) .SetInt32("openStatusId", (int)OrderStatus.Open) .SetInt32("assignToWaiterStatusId", (int)OrderStatus.AssignedToWaiter) .SetInt32("closedStatusId", (int)OrderStatus.Closed) .SetGuid("restaurantId", restaurantId) .List <Order>(); return(!order.Any() ? null : OrderMapper.MapOrderToForm(order.Distinct().First())); }
/// <summary> /// Metoda do konstruowania i wywoływania zapytania za pomocą sesji NHibernate /// </summary> /// <param name="session">Sesja NHibernate</param> public override OrderForm Execute(ISession session) { var order = session.Get<Domain.Order.Order>(orderId); if (order == null) throw new TechnicalException($"Nie można znaleźć zamówienia o podanym id: {orderId}"); var productIds = order.OrderItems.Select(x => x.Product.Id).ToList(); foreach (var productId in productIds) { var product = session.Get<Domain.Product.Product>(productId); order.OrderItems.Where(x => x.Product.Id == productId).ForEach(x => x.Product = product); } return OrderMapper.MapOrderToForm(order); }
/// <summary> /// Metoda do konstruowania i wywoływania zapytania za pomocą sesji NHibernate /// </summary> /// <param name="session">Sesja NHibernate</param> public override OrderForm Execute(ISession session) { var order = session.Get <Domain.Order.Order>(orderId); if (order == null) { throw new TechnicalException($"The order with the given id can not be found: {orderId}"); } var productIds = order.OrderItems.Select(x => x.Product.Id).ToList(); foreach (var productId in productIds) { var product = session.Get <Domain.Product.Product>(productId); order.OrderItems.Where(x => x.Product.Id == productId).ForEach(x => x.Product = product); } return(OrderMapper.MapOrderToForm(order)); }
/// <summary> /// Metoda do konstruowania i wywoływania zapytania za pomocą sesji NHibernate /// </summary> /// <param name="session">Sesja NHibernate</param> public override OrderForm Execute(ISession session) { var order = session .CreateQuery("select o from Order o join o.OrderItems oi where oi.Id = :orderItemId") .SetGuid("orderItemId", orderItemId) .List <Domain.Order.Order>() .Single(); if (order == null) { throw new TechnicalException(String.Format("The order with the given line item id can not be found: { 0}", orderItemId)); } var productIds = order.OrderItems.Select(x => x.Product.Id).ToList(); foreach (var productId in productIds) { var product = session.Get <Domain.Product.Product>(productId); order.OrderItems.Where(x => x.Product.Id == productId).ForEach(x => x.Product = product); } return(OrderMapper.MapOrderToForm(order)); }
/// <summary> /// Metoda do konstruowania i wywoływania zapytania za pomocą sesji NHibernate /// </summary> /// <param name="session">Sesja NHibernate</param> public override OrderForm Execute(ISession session) { var order = session .CreateQuery("select o from Order o join o.OrderItems oi where oi.Id = :orderItemId") .SetGuid("orderItemId", orderItemId) .List <Domain.Order.Order>() .Single(); if (order == null) { throw new TechnicalException(String.Format("Nie można znaleźć zamówienia o podanym id elementu zamówienia: {0}", orderItemId)); } var productIds = order.OrderItems.Select(x => x.Product.Id).ToList(); foreach (var productId in productIds) { var product = session.Get <Domain.Product.Product>(productId); order.OrderItems.Where(x => x.Product.Id == productId).ForEach(x => x.Product = product); } return(OrderMapper.MapOrderToForm(order)); }