/// <summary>
        /// Saves the order to the database
        /// </summary>
        /// <param name="order">The checked out order to be saved</param>
        public void saveOrder(lib.Order order)
        {
            try
            {
                var dataOrder    = new DataAccess.Order();
                var dataCustomer = _context.Customers.Where(c => c.CustomerId == order.CustomerId).FirstOrDefault();
                dataOrder.CustomerId = order.CustomerId;
                dataOrder.OrderTime  = DateTime.Parse(order.Time);
                dataOrder.LocationId = _context.Locations.Where(l => l.Name == order.Location).Select(l => l.LocationId).FirstOrDefault();
                _context.Add(dataOrder);
                _context.SaveChanges();

                foreach (var p in order.Products)
                {
                    var dataOrderLine = new DataAccess.OrderLine();
                    dataOrderLine.OrderId   = dataOrder.OrderId;
                    dataOrderLine.ProductId = p.ProductId;
                    dataOrderLine.Amount    = p.Amount;
                    dataCustomer.Balance   -= p.Amount * p.Price;
                    _context.Add(dataOrderLine);
                }
                _context.Update(dataCustomer);
                _context.SaveChanges();
            }
            catch (Exception)
            {
                Console.WriteLine("Error creating new orders");
            }
        }
        /// <summary>
        /// Saves the order to the database
        /// </summary>
        /// <param name="order">The checked out order to be saved</param>
        public void saveOrder(lib.Order order)
        {
            try
            {
                var locationDict = getLocationDict();
                using var context = new StoreDBContext(_options);

                var dataOrder = new DataAccess.Order();
                dataOrder.CustomerId = order.CustomerId;
                dataOrder.OrderTime  = order.Time;
                dataOrder.LocationId = context.Locations.Where(l => l.Name == order.Location).Select(l => l.LocationId).FirstOrDefault();
                context.Add(dataOrder);
                context.SaveChanges();

                foreach (var p in order.Products)
                {
                    var dataOrderLine = new DataAccess.OrderLine();
                    dataOrderLine.OrderId   = dataOrder.OrderId;
                    dataOrderLine.ProductId = p.ProductId;
                    dataOrderLine.Amount    = p.Amount;
                    context.Add(dataOrderLine);
                }

                context.SaveChanges();
            }
            catch (Exception)
            {
                Console.WriteLine("Error creating new orders");
            }
        }
Esempio n. 3
0
        private bool IsCurrentUserSellerForOrder(DataAccess.Order order)
        {
            CheckHelper.ArgumentNotNull(order, "order");

            return
                (SecurityService.IsCurrentUserSeller &&
                 order.CreatedBy.Id == SecurityService.CurrentUser.Id);
        }
Esempio n. 4
0
        private bool IsCurrentUserDistributorForOrder(DataAccess.Order order)
        {
            CheckHelper.ArgumentNotNull(order, "order");

            return
                (SecurityService.IsCurrentUserDistributor &&
                 order.Parcel != null &&
                 order.Parcel.DistributorId.HasValue &&
                 order.Parcel.DistributorId == SecurityService.CurrentUser.Id);
        }
Esempio n. 5
0
        public static void Reset()
        {
            _order_1 = null;
            _order_2 = null;
            _order_3 = null;
            _order_4 = null;
            _order_5 = null;
            _order_6 = null;
            _order_7 = null;
            _order_8 = null;

            _orders = null;
        }
Esempio n. 6
0
        public DTO.Order CreateOrder(DataAccess.Order order, bool includeOnlyActive = false, Func <DataAccess.Order, bool> predicate = null)
        {
            CheckHelper.ArgumentNotNull(order, "order");
            CheckHelper.ArgumentWithinCondition(!order.IsNew(), "!order.IsNew()");

            return
                (_dtoCache.Get(
                     order,
                     o =>
            {
                var result =
                    new DTO.Order
                {
                    Id = o.Id,
                    OrderDate = o.OrderDate,
                    CustomerFirstName = o.CustomerFirstName,
                    CustomerLastName = o.CustomerLastName,
                    CustomerAddress = o.CustomerAddress,
                    CustomerCity = o.CustomerCity,
                    CustomerCountry = o.CustomerCountry,
                    CustomerPostalCode = o.CustomerPostalCode,
                    CustomerPhoneNumber = o.CustomerPhoneNumber,
                    CustomerEmail = o.CustomerEmail,
                    Active = o.Active,
                    Comments = o.Comments,
                    RublesPerDollar = o.RublesPerDollar,
                    CustomerPaid = o.CustomerPaid,
                    CustomerPrepaid = o.CustomerPrepaid,
                    DistributorSpentOnDelivery = o.DistributorSpentOnDelivery,
                    TrackingNumber = o.TrackingNumber,
                    CreateUserId = o.CreateUserId
                };

                CopyTrackableFields(result, o);

                return result;
            },
                     (oDto, o) =>
            {
                oDto.Parcel = o.Parcel != null ? CreateParcel(o.Parcel, includeOnlyActive, predicate) : null;
                oDto.OrderItems =
                    o.OrderItems
                    .Where(oi => oi.Active || !includeOnlyActive)
                    .OrderBy(oi => oi.ProductSize.Product.Name)
                    .ThenBy(oi => oi.ProductSize.Size.Name)
                    .Select(oi => CreateOrderItem(oi, includeOnlyActive))
                    .ToArray();
            }));
        }
Esempio n. 7
0
        public void CreateOrder(DTO.Order createdOrder)
        {
            CheckHelper.ArgumentNotNull(createdOrder, "createdOrder");
            CheckHelper.ArgumentWithinCondition(createdOrder.IsNew(), "Order is not new.");
            Container.Get <IValidateService>().CheckIsValid(createdOrder);

            CheckHelper.WithinCondition(SecurityService.IsLoggedIn, "User is not logged in.");
            CheckHelper.WithinCondition(SecurityService.IsCurrentUserSeller, "Only seller can create order.");

            var persistentService = Container.Get <IPersistentService>();

            var order =
                new DataAccess.Order
            {
                OrderDate           = createdOrder.OrderDate,
                CustomerFirstName   = createdOrder.CustomerFirstName,
                CustomerLastName    = createdOrder.CustomerLastName,
                CustomerAddress     = createdOrder.CustomerAddress,
                CustomerCity        = createdOrder.CustomerCity,
                CustomerCountry     = createdOrder.CustomerCountry,
                CustomerPostalCode  = createdOrder.CustomerPostalCode,
                CustomerPhoneNumber = createdOrder.CustomerPhoneNumber,
                CustomerEmail       = createdOrder.CustomerEmail,
                Active          = createdOrder.Active,
                Comments        = createdOrder.Comments,
                RublesPerDollar = createdOrder.RublesPerDollar,
                CustomerPrepaid = createdOrder.CustomerPrepaid,
                CustomerPaid    = createdOrder.CustomerPaid
            };

            order.UpdateTrackFields(Container);

            persistentService.Add(order);
            persistentService.SaveChanges();

            createdOrder.Id         = order.Id;
            createdOrder.CreateDate = order.CreateDate;
            createdOrder.CreateUser = order.CreatedBy.GetFullName();
            createdOrder.ChangeDate = order.ChangeDate;
            createdOrder.ChangeUser = order.ChangedBy.GetFullName();

            createdOrder.Parcel = null;
            createdOrder.DistributorSpentOnDelivery = 0m;
            createdOrder.TrackingNumber             = null;
        }
Esempio n. 8
0
        private void UpdateParcel(DataAccess.Order order, DTO.Parcel parcel)
        {
            CheckHelper.ArgumentNotNull(order, "order");

            if (parcel != null)
            {
                var parcelId = parcel.Id;
                CheckHelper.WithinCondition(parcelId > 0, "Parcel is new.");

                var persistentService = Container.Get <IPersistentService>();

                var p = persistentService.GetEntityById <DataAccess.Parcel>(parcelId);
                CheckHelper.NotNull(p, "Parcel user does not exist.");

                order.ParcelId = p.Id;
                order.Parcel   = p;
            }
            else
            {
                order.ParcelId = null;
                order.Parcel   = null;
            }
        }