Ejemplo n.º 1
0
        public ActionResult Add(AddNewOrderViewModel model)
        {
            Argument.ExpectNotNull(() => model);

            if (ModelState.IsValid)
            {
                var itemId = new OrderItemId(ServiceLocator.IdentityGenerator.GenerateNewId());
                var cmd = new AddProductToOrder(
                                model.OrderId,
                                itemId,
                                new Uri(model.ProductUrl),
                                model.Name,
                                model.Description,
                                model.Price.Value,
                                model.Quantity.Value,
                                model.Size,
                                model.Color,
                                String.IsNullOrEmpty(model.ImageUrl) ? null : new Uri(model.ImageUrl));
                _bus.Send(cmd);

                //TODO: figure out how to avoid this
                Thread.Sleep(100);

                return RedirectToAction("Add");
            }

            return View(model);
        }
        public ActionResult <Order> AddProductToOrder([FromBody] AddProductToOrder request)
        {
            var response = _ordersService.AddProductToOrder(new AddProductToOrderRequest(request.OrderId, request.UserId, request.ProductId));

            if (!response.IsSuccess)
            {
                return(BadRequest());
            }

            var order = response.Result.MapToResponse(_linkGenerator, HttpContext);

            return(Created(order.Link, order));
        }
        public IEnumerable <Command> Get()
        {
            var commands = new List <Command>();
            var import   = new XmlImport(XDocument.Load(Path.Combine("TestData", "TestData.xml")), "http://tempuri.org/Database.xsd");

            import.Parse <AddCustomerCommand>("Customer",
                                              (obj) =>
            {
                obj.SequenceNumber = ++sequence;
                commands.Add(obj);
            }, onIgnore: (type, property) =>
            {
                throw new Exception(string.Format("ignoring property {1} on {0}", type, property.PropertyType.Name));
            });
            import.Parse <AddOrderCommand>("Order",
                                           (obj) =>
            {
                obj.SequenceNumber = ++sequence;
                commands.Add(obj);
            }, onIgnore: (type, property) =>
            {
                throw new Exception(string.Format("ignoring property {1} on {0}", type, property.PropertyType.Name));
            });

            import.Parse <AddProductCommand>("Product",
                                             (obj) =>
            {
                obj.SequenceNumber = ++sequence;
                commands.Add(obj);
            }, onIgnore: (type, property) =>
            {
                throw new Exception(string.Format("ignoring property {1} on {0}", type, property.PropertyType.Name));
            });

            import.ParseConnections("OrderProduct", "Product", "Order", (productId, orderId) =>
            {
                var obj = new AddProductToOrder {
                    ProductId = productId, OrderId = orderId
                };
                obj.SequenceNumber = ++sequence;
                commands.Add(obj);
            });

            return(commands);
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            CreateAnAccount   createAnAccount = new CreateAnAccount();
            GetCustomerList   getCustomerList = new GetCustomerList();
            CreatePayment     createPayment   = new CreatePayment();
            AddProductToOrder addProduct      = new AddProductToOrder();
            CompleteOrder     completeOrder   = new CompleteOrder();

            Console.WriteLine(@"
                         **************************
                      ********************************
                    ************ SHUFFLEPUFF ***********
                    ************* BANGAZON *************
                      ********************************
                         **************************"
                              );
START:
            Console.WriteLine(@" 1. Create an Account" + Environment.NewLine + " 2. Choose Active Customer" + Environment.NewLine + " 3. Create Payment Option" + Environment.NewLine + " 4. Search for Products" + Environment.NewLine + " 5. Complete Order" + Environment.NewLine + " 6. See Product Popularity" + Environment.NewLine + " 7. Leave Shufflepuff Bangazon"
                              );


            string userCommand = Console.ReadKey(true).KeyChar.ToString();

            switch (userCommand)
            {
            case "1":
                Console.Clear();
                var savedToDatabase = createAnAccount.CreateNewAccount();
                Debug.WriteLine(savedToDatabase);
                Console.Clear();
                goto START;

            case "2":
                Console.WriteLine("Choose Active Customer");
                getCustomerList.DisplayCustomerList();
                Console.Clear();
                goto START;

            case "3":
                Console.Clear();
                var paymentSavedToDatabase = createPayment.SelectPaymentType();
                Debug.WriteLine(paymentSavedToDatabase);
                Console.Clear();
                goto START;

            case "4":
                Console.WriteLine("Choose Product");
                addProduct.DisplayProductList();
                Console.Clear();
                //Console.WriteLine(addProduct.SelectedProductId);
                List <Product> productIdList = addProduct.GetProducts();
                foreach (Product item in productIdList)
                {
                    Console.WriteLine(item);
                }
                Console.ReadLine();

                goto START;
            ////product search
            //ProductRepo repo = new ProductRepo();

            //var products = repo.GetProducts();

            //foreach (Product product in products)
            //{
            //    Console.WriteLine(product.ProductId + ". " + product.Name + " " + product.Price);
            //}
            //break;
            case "5":
                //complete order
                if (completeOrder.DetermineIfOrderContainsProducts())
                {
                    if (completeOrder.DetermineIfReadyToPurchase())
                    {
                        completeOrder.ChoosePaymentMethod();
                    }
                }
                else
                {
                    Console.WriteLine("Please add products to your order.  Press any key to continue.");
                    Console.Clear();
                }
                goto START;

            case "6":
                //product popularity
                PaymentRepo repo = new PaymentRepo();

                var payments = repo.GetPayments(getCustomerList.GetSelectedUserId());

                foreach (var payment in payments)
                {
                    Console.WriteLine(payment.Type + ". " + payment.AccountNumber);
                }
                goto START;

            case "7":
                Console.WriteLine("See Ya!");
                Environment.Exit(0);
                break;

            default:
                Console.WriteLine("Please select a valid option...");
                break;
            }
        }
Ejemplo n.º 5
0
 public void Handle(AddProductToOrder msg)
 {
     Order.Products.Add(new OrderedProduct(msg.ProductId));
 }