/// <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"); } }
private bool IsCurrentUserSellerForOrder(DataAccess.Order order) { CheckHelper.ArgumentNotNull(order, "order"); return (SecurityService.IsCurrentUserSeller && order.CreatedBy.Id == SecurityService.CurrentUser.Id); }
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); }
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; }
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(); })); }
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; }
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; } }