/// <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()));
        }
Example #2
0
        /// <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));
        }
Example #4
0
        /// <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));
        }