public void FirstTradedMoreProfitableBuyOrders()
        {
            // 2) сначала торгуются более выгодные ордеры
            // 3) цена определяется ранее открытым ордером

            var buy1 = new Order { OrderType = OrderType.Buy, TotalAmount = 5, Price = 10 };
            var buy2 = new Order { OrderType = OrderType.Buy, TotalAmount = 5, Price = 11 };
            var buy3 = new Order { OrderType = OrderType.Buy, TotalAmount = 5, Price = 12 };
            var sellOrder = new Order {OrderType = OrderType.Sell, TotalAmount = 5, Price = 10.5m};

            _service.ProcessOrder(buy1);
            _service.ProcessOrder(buy2);
            _service.ProcessOrder(buy3);
            _service.ProcessOrder(sellOrder);

            var realTrades = _service.GetTradeHistory();

            Assert.AreEqual(realTrades.Count, 1);
            Assert.AreEqual(realTrades[0].Price, 12);
            Assert.AreEqual(realTrades[0].Amount, 5);

            Assert.AreEqual(realTrades[0].BuyOrder.OrderType, OrderType.Buy);
            Assert.AreEqual(realTrades[0].BuyOrder.Price, 12);
            Assert.AreEqual(realTrades[0].BuyOrder.TotalAmount, 5);

            Assert.AreEqual(realTrades[0].SellOrder.OrderType, OrderType.Sell);
            Assert.AreEqual(realTrades[0].SellOrder.Price, 10.5m);
            Assert.AreEqual(realTrades[0].SellOrder.TotalAmount, 5);
        }
Beispiel #2
0
        private async Task StartOverAsync(IDialogContext context, IMessageActivity message)
        {
            await context.PostAsync(message);

            this.order = new Models.Order();
            await this.WelcomeMessageAsync(context);
        }
        public Response<Order> EditOrder(Order orderToEdit, DateTime orderDate)
        {
            var response = new Response<Order>();

            orderToEdit = CompleteOrder(orderToEdit);

            response.Data = orderToEdit;

            try
            {
                _myOrderRepository.EditOrder(orderToEdit,orderDate);

                response.Success = true;
                response.Message = "Edit successful. Reference Order Number " + orderToEdit.OrderNumber + ".";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                try
                {
                    var repo = new LogRepository();
                    repo.WriteLog(ex.Message);
                }
                catch
                {
                    response.Message += "\nCould not write to log file.";
                }
            }

            return response;
        }
Beispiel #4
0
        public static decimal PromptForArea(Order order)
        {
            do
            {
                Console.Write("Enter Area in Square Feet ({0}): ", order.Area);

                Console.ForegroundColor = ConsoleColor.Green;
                string userInput = Console.ReadLine();
                Console.ForegroundColor = ConsoleColor.Yellow;

                decimal newArea;

                var validArea = decimal.TryParse(userInput, out newArea);

                if (userInput == "")
                {
                    return order.Area;
                }

                if (validArea && newArea > 0)
                {
                    return newArea;
                }
            } while (true);
        }
        public bool Create(string userId, int addressId, ICollection<OrderItem> tickets)
        {
            this.ticketsService.Create(tickets);

            if (!this.ticketsService.BuyTickets(tickets))
            {
                return false;
            }

            var order = new Order()
            {
                UserId = userId,
                DeliveryAdressId = addressId,
                OrderItems = tickets
            };

            foreach (var ticket in tickets)
            {
                this.notificationsService.Create(ticket.Ticket.EventId, NotificationType.TicketSold);
            }

            this.orders.Add(order);
            this.orders.Save();

            return true;
        }
Beispiel #6
0
        private async Task OnOptionSelected(IDialogContext context, IAwaitable <IMessageActivity> result)
        {
            var message = await result;

            if (message.Text == Resources.RootDialog_Welcome_Orders)
            {
                this.order = new Models.Order();

                // BotBuilder's LocationDialog
                // Leverage DI to inject other parameters
                var locationDialog = this.dialogFactory.Create <LocationDialog>(
                    new Dictionary <string, object>()
                {
                    { "prompt", string.Format(CultureInfo.CurrentCulture, Resources.RootDialog_DeliveryAddress_Prompt, message.From.Name ?? "User") },
                    { "channelId", context.Activity.ChannelId }
                });

                context.Call(locationDialog, this.AfterDeliveryAddress);
            }
            else if (message.Text == Resources.RootDialog_Welcome_Support)
            {
                await this.StartOverAsync(context, Resources.RootDialog_Support_Message);
            }
            else
            {
                await this.StartOverAsync(context, Resources.RootDialog_Welcome_Error);
            }
        }
        public void Execute()
        {
            Console.Clear();

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Add an Order");
            Console.WriteLine("============================================\n");
            Console.ForegroundColor = ConsoleColor.Yellow;

            var ops = OperatorFactory.CreateOrderOperations();

            var name = UserPrompts.PromptForCustomerName();
            var area = UserPrompts.PromptForArea();
            var state = UserPrompts.PromptForState();
            var product = UserPrompts.PromptForProductType();

            var order = new Order {CustomerName = name, Area = area, State = state, ProductType = product};

            if (Confirm(order))
            {
                var response = ops.NewOrder(order);

                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine(response.Message);
                Console.ForegroundColor = ConsoleColor.Yellow;

                UserPrompts.KeyToContinue();
            }
        }
Beispiel #8
0
        private static void SimpleMapping()
        {
            var order = new Order
            {
                OrderId = Guid.NewGuid(),
                OrderDate = DateTime.Now,
                Total = 50m,
                CustomerId = Guid.NewGuid()
            };

            var dtoOrder = AutoMapper.Mapper.Map<OrderDto>(order);

            Console.WriteLine("Order Info");
            Console.WriteLine("__________");
            Console.WriteLine("OrderId: {0}", order.OrderId);
            Console.WriteLine("Order Date: {0}", order.OrderDate);
            Console.WriteLine("Total: {0}", order.Total);
            Console.WriteLine("CustomerId: {0}", order.CustomerId);
            Console.WriteLine();
            Console.WriteLine("Order Dto Info");
            Console.WriteLine("__________");
            Console.WriteLine("OrderId: {0}", dtoOrder.OrderId);
            Console.WriteLine("Order Date: {0}", dtoOrder.OrderDate);
            Console.WriteLine("Total: {0}", dtoOrder.Total);
            Console.WriteLine("CustomerNumber: {0}", dtoOrder.CustomerNumber);
            Console.WriteLine("Day Of Month: {0}", dtoOrder.OrderDay);

            Console.ReadKey();
        }
Beispiel #9
0
        public static Order CreateRandomOrder()
        {
            Random rand = new Random();

            Order order = new Order
            {
                OrderID = rand.Next(1000, 10000),
                CustomerID = rand.Next(1, 100),
                CustomerName = "客户名_" + DateTime.Now.ToString(),
                OrderDate = DateTime.Now,
                Comment = Guid.NewGuid().ToString(),
                Finished = false,
                Detail = new List<OrderDetail>()
            };

            order.Detail.Add(new OrderDetail
            {
                OrderID = order.OrderID,
                Quantity = rand.Next(1, 10),
                ProductID = rand.Next(101, 500),
                ProductName = "商品1" + Guid.NewGuid().ToString("N"),
            });
            order.Detail.Add(new OrderDetail
            {
                OrderID = order.OrderID,
                Quantity = rand.Next(1, 10),
                ProductID = rand.Next(101, 500),
                ProductName = "商品2" + Guid.NewGuid().ToString("N"),
            });

            return order;
        }
        public OrderViewModel(m.Order _order)
        {
            ID       = _order.ID;
            Customer = _order.Customer;
            Products = new List <OrderLineViewModel>();
            IProductRepository ProdRepo = new ProductRepository();
            IUserRepository    UserRepo = new UserRepository();

            UserList = new List <SelectListItem>();
            UserList.Add(new SelectListItem {
                Value = "", Text = ""
            });
            foreach (m.User _u in UserRepo.GetAllUsers())
            {
                if (_u.Role == "Bar")
                {
                    UserList.Add(new SelectListItem {
                        Value = _u.ID.ToString(), Text = _u.Name
                    });
                }
            }
            foreach (m.Product _prod in ProdRepo.GetAllProducts())
            {
                Products.Add(new OrderLineViewModel(new m.OrderLine(_prod, 0)));
            }
            Statuses = new List <OrderStatusViewModel>();
            for (int i = 0; i < 3; i++)
            {
                Statuses.Add(new OrderStatusViewModel(new m.OrderStatus((m.OrderStatus.OrderStatusesEnum)i, DateTime.Now, ID)));
            }
        }
        public void OrderConstructorWithParamsTest()
        {
            //arrange

            String Destination = "Shevchenka, 12";
            String CarNumber   = "BC0173AC";
            String Where       = "University, 1";

            Models.status Status           = APPOINTED;
            int           PassengersAmount = 1;

            String ExpectedDestination = "Shevchenka, 12";
            String ExpectedCarNumber   = "BC0173AC";
            String ExpectedWhere       = "University, 1";

            Models.status ExpectedStatus           = APPOINTED;
            int           ExpectedPassengersAmount = 1;

            //act

            Models.Order obj = new Models.Order(Where, Destination, PassengersAmount, Status, CarNumber);
            //assert

            Assert.AreEqual(ExpectedDestination, obj.Destination);
            Assert.AreEqual(ExpectedCarNumber, obj.CarNumber);
            Assert.AreEqual(ExpectedWhere, obj.Where);
            Assert.AreEqual(ExpectedStatus, obj.Status);
            Assert.AreEqual(ExpectedPassengersAmount, obj.PassengersAmount);
        }
 public void OrderDefaultConstructorTest()
 {
     Models.Order obj = new Models.Order();
     Assert.AreEqual(null, obj.CarNumber);
     Assert.AreEqual(null, obj.Destination);
     Assert.AreEqual(NOTAPPOINTED, obj.Status);
     Assert.AreEqual(null, obj.Where);
     Assert.AreEqual(0, obj.PassengersAmount);
 }
        public void GetPassengerAmountOutOfBoundsTest()
        {
            int ExpectedPassengerAmount = 10;

            Models.Order obj = new Models.Order();
            obj.PassengersAmount = 10;

            Assert.AreEqual(ExpectedPassengerAmount, obj.PassengersAmount);
        }
        public void EditOrder(Order orderToEdit, DateTime orderDate)
        {
            List<Order> orders = GetAllOrders(orderDate);

            var existingOrder = orders.First(o => o.OrderNumber == orderToEdit.OrderNumber);
            orders.Remove(existingOrder);
            OverWriteFile(orderDate, orders);

            orders = GetAllOrders(DateTime.Today);
            AddOrder(orderToEdit);
        }
        public void AddOrder(Order orderToAdd)
        {
            List<Order> orders = GetAllOrders(DateTime.Today);

            if (orders.LongCount() > 0)
                orderToAdd.OrderNumber = orders.Max(o => o.OrderNumber) + 1;
            else
                orderToAdd.OrderNumber = 1;

            orders.Add(orderToAdd);
            OverWriteFile(DateTime.Today, orders);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="OrderStateListPresenter"/> class.
        /// </summary>
        /// <param name="view">The view.</param>
        /// <param name="order">The order.</param>
        /// <param name="merchantOrderStateConfiguration">The merchant order state configuration.</param>
        /// <param name="orderStateListValidator">The order state list validator.</param>
        public OrderStateListPresenter([NotNull] IOrderStateListView view, [NotNull] Order order, [NotNull] MerchantOrderStateConfiguration merchantOrderStateConfiguration, [NotNull] OrderStateListValidator orderStateListValidator)
        {
            Assert.ArgumentNotNull(view, "view");
              Assert.ArgumentNotNull(order, "order");
              Assert.ArgumentNotNull(merchantOrderStateConfiguration, "merchantOrderStateConfiguration");
              Assert.ArgumentNotNull(orderStateListValidator, "orderStateListValidator");

              this.view = view;
              this.order = order;
              this.merchantOrderStateConfiguration = merchantOrderStateConfiguration;
              this.orderStateListValidator = orderStateListValidator;
        }
        public int FindeLastOrderCode()
        {
            Order order = db.Orders.OrderByDescending(current => current.Code).FirstOrDefault();

            if (order != null)
            {
                return(order.Code);
            }
            else
            {
                return(999);
            }
        }
Beispiel #18
0
        public virtual System.Web.Mvc.ActionResult AddToOrder(System.Guid id, int countOrder)
        {
            if (Infrastructure.AuthenticatedUser.IsAuthenticated == true)
            {
                var oPruduct = UnitOfWork.ProductsRepository.Get()
                               .Where(current => current.Id == id)
                               .FirstOrDefault()
                ;

                //var order = UnitOfWork.OrdersRepository.Get()
                // .Where(current => current.ProductId == id)
                // .Where(current => current.userId == Infrastructure.Sessions.AuthenticatedUser.Id)
                // .FirstOrDefault()
                // ;
                // برای این است که می خواهم لیسا تمام خریدهای قبلی اش را ببینم ، این قسمت را باید در فیش های پرداختی یا خریدهای قبلی بگذارم


                Models.Order oOrder = new Models.Order
                {
                    ProductId  = id,
                    CountOrder = countOrder,
                    TotalPrice = oPruduct.Price * countOrder,
                    userId     = Infrastructure.Sessions.AuthenticatedUser.Id,
                    IsActive   = true
                };

                UnitOfWork.OrdersRepository.Insert(oOrder);

                //else
                //{
                //    if (order != null && order.userId == Infrastructure.Sessions.AuthenticatedUser.Id)
                //    {
                //        order.CountOrder = Convert.ToInt32(countOrder);
                //        order.TotalPrice = oPruduct.Price * (order.CountOrder + 1);
                //        UnitOfWork.OrdersRepository.Update(order);
                //    }
                //}

                UnitOfWork.Save();



                return(RedirectToAction("ShowOrders"));
            }

            else
            {
                ViewBag.message = Models.Resources.Orders.CheckLogin;
                return(RedirectToAction("/Products/Index"));
            }
        }
Beispiel #19
0
        public virtual System.Web.Mvc.ActionResult DeleteConfirmed(System.Guid id)
        {
            Models.Order oOrder =
                UnitOfWork.OrdersRepository.Get()
                .Where(current => current.Id == id)
                .FirstOrDefault()
            ;

            UnitOfWork.OrdersRepository.Delete(oOrder);

            UnitOfWork.Save();

            return(RedirectToAction(MVC.Order.ShowOrders()));
        }
        int IOrder.DeleteOrder(Models.Order customerorder)
        {
            var   AddOrder = _context.Orders.OrderBy(x => x.Id).Last();
            Order neworder = new Order();

            neworder.CustomerId = customerorder.CustomerID;
            neworder.DatePlaced = (DateTime)customerorder.Date;
            neworder.StoreId    = customerorder.StoreID;

            _context.Remove(neworder);

            _context.SaveChanges();

            return(neworder.Id);
        }
        public void GetWhereTest()
        {
            //arrange

            String Where         = "Shevchenka, 1";
            String ExpectedWhere = "Shevchenka, 1";

            //act

            Models.Order obj = new Models.Order();
            obj.Where = Where;
            //assert

            Assert.AreEqual(ExpectedWhere, obj.Where);
        }
        public void GetDestinationTest()
        {
            //arrange

            String Destination         = "Shevchenka, 1";
            String ExpectedDestination = "Shevchenka, 1";

            //act

            Models.Order obj = new Models.Order();
            obj.Destination = Destination;
            //assert

            Assert.AreEqual(ExpectedDestination, obj.Destination);
        }
        public void GetCarNumberTest()
        {
            //arrange

            String CarNumber         = "BC5362AC";
            String ExpectedCarNumber = "BC5362AC";

            //act

            Models.Order obj = new Models.Order();
            obj.CarNumber = CarNumber;
            //assert

            Assert.AreEqual(ExpectedCarNumber, obj.CarNumber);
        }
        public void GetStatusTest()
        {
            //arrange

            Models.status Status = APPOINTED;

            Models.status ExpectedStatus = APPOINTED;
            //act

            Models.Order obj = new Models.Order();
            obj.Status = Status;
            //assert

            Assert.AreEqual(ExpectedStatus, obj.Status);
        }
Beispiel #25
0
        public virtual System.Web.Mvc.ActionResult Details(System.Guid id)
        {
            Models.Order oOrder =
                UnitOfWork.OrdersRepository.Get()
                .Where(current => current.Id == id)
                .FirstOrDefault()
            ;

            if (oOrder == null)
            {
                return(HttpNotFound());
            }

            return(View(oOrder));
        }
        public void GetPassengersAmountTest()
        {
            //arrange

            int PassengersAmount = 1;

            int ExpectedPassengersAmount = 1;

            //act

            Models.Order obj = new Models.Order();
            obj.PassengersAmount = PassengersAmount;
            //assert

            Assert.AreEqual(ExpectedPassengersAmount, obj.PassengersAmount);
        }
        public ActionResult Create(Order order, FormCollection collection)
        {
            try
            {
                var customer = customerRepository.FetchById(int.Parse(collection["Customer"]));
                order.Customer = customer;
                orderRepository.Add(order);
                orderRepository.Save();

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        public void Execute()
        {
            Console.Clear();
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Edit an Order");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("============================================\n");

            var orderNumber = UserPrompts.PromptUserForNumber();
            var orderDate = UserPrompts.PromptUserForDate();

            Order order;

            var ops = OperatorFactory.CreateOrderOperations();

            var response = ops.GetOrder(orderNumber, orderDate);

            if (response.Success)
            {
                order = response.Data;
            }
            else
            {
                Console.WriteLine(response.Message);
                Console.ReadKey();
                return;
            }

            var name = UserPrompts.PromptForCustomerName(order);
            var area = UserPrompts.PromptForArea(order);
            var state = UserPrompts.PromptForState(order);
            var product = UserPrompts.PromptForProductType(order);

            var newOrder = new Order { CustomerName = name, Area = area, State = state, ProductType = product };

            if (Confirm(newOrder))
            {
                newOrder.OrderNumber = order.OrderNumber;
                response = ops.EditOrder(newOrder,orderDate);

                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine(response.Message);
                Console.ForegroundColor = ConsoleColor.Yellow;

                UserPrompts.KeyToContinue();
            }
        }
        public Order CompleteOrder(Order order)
        {
            var taxOps = OperatorFactory.CreateTaxOperations();
            var prodOps = OperatorFactory.CreateProductOperations();

            order.CostPerSquareFoot = prodOps.GetMaterialPerSquareFoot(order.ProductType).Data;
            order.LaborCostPerSquareFoot = prodOps.GetLaborPerSquareFoot(order.ProductType).Data;

            order.MaterialCost = order.CostPerSquareFoot * order.Area;
            order.LaborCost = order.LaborCostPerSquareFoot * order.Area;

            order.TaxRate = taxOps.GetRate(order.State).Data;
            order.Tax = Math.Round((order.MaterialCost + order.LaborCost) * order.TaxRate / 100M, 2);
            order.Total = (order.MaterialCost + order.LaborCost) + order.Tax;

            return order;
        }
        public bool Confirm(Order order)
        {
            var ops = OperatorFactory.CreateOrderOperations();

            if (!ops.ValidTaxAndProduct(order))
            {
                return false;
            }

            order = ops.CompleteOrder(order);

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(OrderConversion.OrderConvert(order));
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Confirm this order?");
            return UserPrompts.PromptForYesNo();
        }
Beispiel #31
0
        public virtual System.Web.Mvc.ActionResult Create(Models.Order order)
        {
            if (ModelState.IsValid)
            {
                UnitOfWork.OrdersRepository.Insert(order);

                UnitOfWork.Save();

                return(RedirectToAction(MVC.Order.Index()));
            }

            ViewBag.ProductId =
                new System.Web.Mvc.SelectList
                    (UnitOfWork.ProductsRepository.Get(), "Id", "Title", order.ProductId);

            return(View(order));
        }
Beispiel #32
0
        public virtual System.Web.Mvc.ActionResult Edit(System.Guid id)
        {
            Models.Order oOrder =
                UnitOfWork.OrdersRepository.Get()
                .Where(current => current.Id == id)
                .FirstOrDefault()
            ;

            if (oOrder == null)
            {
                return(HttpNotFound());
            }

            ViewBag.ProductId =
                new System.Web.Mvc.SelectList
                    (UnitOfWork.ProductsRepository.Get(), "Id", "Title", oOrder.ProductId);

            return(View(oOrder));
        }
        public Order GetOrder(int orderNumber, DateTime orderDate)
        {
            var myOrder = new Order
            {
                Area = 100.00M,
                CostPerSquareFoot = 5.15M,
                CustomerName = "Wise",
                LaborCost = 475.00M,
                LaborCostPerSquareFoot = 4.75M,
                MaterialCost = 515M,
                OrderNumber = 1,
                ProductType = "Wood",
                State = "OH",
                Tax = 61.88M,
                Total = 1051.88M
            };

            return myOrder;
        }
Beispiel #34
0
        public virtual System.Web.Mvc.ActionResult Edit(Models.Order order)
        {
            order.UpdateDateTime = Infrastructure.Utility.Now;

            if (ModelState.IsValid)
            {
                UnitOfWork.OrdersRepository.Update(order);

                UnitOfWork.Save();

                return(RedirectToAction(MVC.Order.Index()));
            }

            ViewBag.ProductId =
                new System.Web.Mvc.SelectList
                    (UnitOfWork.ProductsRepository.Get(), "Id", "Title", order.ProductId);

            return(View(order));
        }
Beispiel #35
0
 public ActionResult CreateOrder(Order order)
 {
     try
     {
         if (ModelState.IsValid)
         {
             _service.ProcessOrder(order);
             var context = GlobalHost.ConnectionManager.GetHubContext<ExchangeHub>();
             context.Clients.All.refresh();
             return PartialView("CreateOrder", order);
         }
     }
     catch (Exception ex)
     {
         // log ex.ToString()
         ModelState.AddModelError(string.Empty, ex.ToString());
     }
     return PartialView("CreateOrder", order);
 }
        //
        // GET: /Order/Create
        public ActionResult Create()
        {
            var customers = customerRepository.Fetch().ToList();
            var order = new Order();
            var model = new OrderCustomer()
                            {
                                Customers =
                                    customers.Select(
                                        x =>
                                        new SelectListItem()
                                            {
                                                Text = x.FirstName,
                                                Value = x.ID.ToString()
                                            }),
                                Order = order
                            };

            return View("Create", model);
        }
Beispiel #37
0
        private async Task OnOptionSelected(IDialogContext context, IAwaitable <IMessageActivity> result)
        {
            var message = await result;

            if (message.Text == Resources.RootDialog_Welcome_Orders)
            {
                this.order = new Models.Order();
                var addressDialog = this.dialogFactory.Create <AddressDialog, string>(string.Format(CultureInfo.CurrentCulture, Resources.RootDialog_DeliveryAddress_Prompt, message.From.Name));
                context.Call(addressDialog, this.AfterDeliveryAddress);
            }
            else if (message.Text == Resources.RootDialog_Welcome_Support)
            {
                await this.StartOverAsync(context, Resources.RootDialog_Support_Message);
            }
            else
            {
                await this.StartOverAsync(context, Resources.RootDialog_Welcome_Error);
            }
        }
Beispiel #38
0
        public ActionResult CartToOrder()
        {
            //当前用户
            var customer = Session["user"] as Customer;

            //当前用户的购物车
            var cart = bse.Carts.Where(c => c.customerId == customer.id).FirstOrDefault();

            //为当前用户创建一个订单
            Models.Order order = new Models.Order()
            {
                num             = cart.num,
                price           = cart.price,
                customer        = cart.customerId,
                ordernum        = Guid.NewGuid().ToString(),
                status          = 0,
                receiverAddress = customer.address,
                receiverName    = customer.username,
                receiverPhone   = customer.telephone
            };
            order = bse.Orders.Add(order);

            //为订单添加明细
            foreach (var item in cart.CartItems)
            {
                var orderItem = new Models.OrdersItem()
                {
                    num      = item.num,
                    price    = item.price,
                    bookId   = item.bookId,
                    ordersId = order.id
                };
                order.OrdersItems.Add(orderItem);
            }

            //清空购物车
            bse.Carts.Remove(cart);

            bse.SaveChanges();

            return(Redirect("~/Home/OrderInfo?orderId=" + order.id));
        }
        List <Models.Order> IOrder.ReturnAllOrdersBasedOnCustomer(int id)
        {
            List <Models.Order> ListOfOrders = new List <Models.Order>();

            List <Order> query = _context.Orders.Where(p => p.CustomerId.Equals(id)).ToList();

            foreach (var i in query)
            {
                Models.Order order = new Models.Order();
                order.Id         = i.Id;
                order.Date       = i.DatePlaced;
                order.CustomerID = i.CustomerId;
                order.StoreID    = i.StoreId;


                ListOfOrders.Add(order);
            }



            return(ListOfOrders);
        }
Beispiel #40
0
        List <Models.Order> IStore.FindStoreOrderHistory(int store)
        {
            List <Models.Order> ListOfOrders = new List <Models.Order>();


            List <Order> query = _context.Orders.Where(x => x.StoreId.Equals(store)).ToList();

            foreach (var i in query)
            {
                Models.Order order = new Models.Order();
                order.Id         = i.Id;
                order.Date       = i.DatePlaced;
                order.CustomerID = i.CustomerId;
                order.StoreID    = i.StoreId;


                ListOfOrders.Add(order);
            }


            return(ListOfOrders);
        }
Beispiel #41
0
 public RedirectToRouteResult ConfirmOrder()
 {
     ShoppingCart cart = ShoppingCart.GetCart(this.HttpContext);
     Order order = new Order();
     Customer cus = db.Customers.SingleOrDefault(c => c.UserName == User.Identity.Name);
     MembershipUser msu = Membership.GetUser();
     if (cus != null)
     {
         order.Firstname = cus.Name;
         order.Lastname = cus.LastName;
         order.Phone = cus.Mobile;
         order.Email = msu.Email;
         order.Total = cart.GetTotal();
     }
     order.Username = User.Identity.Name;
     order.OrderStatus = OrderStatus.Pending;
     order.OrderDate = DateTime.Now;
     db.Orders.Add(order);
     db.SaveChanges();
     Session[OrderNumber] = cart.CreateOrder(order);
     return RedirectToAction("Payment");
 }
        public static string OrderConvert(Order order)
        {
            if (order.OrderNumber == 0)
            {
                return string.Format(
                    "\tCustomer: {0,34}\n" +
                    "\tArea: {1,38}\n" +
                    "\tState: {2,37}\n" +
                    "\tTax Rate: {3,34}\n" +
                    "\tProduct Type: {4,30}\n" +
                    "\tMaterial Cost Per Square Foot: {5,13}\n" +
                    "\tLabor Cost Per Square Foot: {6,16}\n" +
                    "\tTotal Material Cost: {7,23}\n" +
                    "\tTotal Labor Cost: {8,26}\n" +
                    "\tTax: {9,39}\n" +
                    "\tTotal: {10,37}\n",
                    order.CustomerName, order.Area, order.State, order.TaxRate, order.ProductType,
                    order.CostPerSquareFoot,
                    order.LaborCostPerSquareFoot, order.MaterialCost, order.LaborCost, order.Tax, order.Total);
            }

            return string.Format(
                "\nOrder Number: {0,31}\n" +
                "\tCustomer: {1,34}\n" +
                "\tArea: {2,38}\n" +
                "\tState: {3,37}\n" +
                "\tTax Rate: {4,34}\n" +
                "\tProduct Type: {5,30}\n" +
                "\tMaterial Cost Per Square Foot: {6,13}\n" +
                "\tLabor Cost Per Square Foot: {7,16}\n" +
                "\tTotal Material Cost: {8,23}\n" +
                "\tTotal Labor Cost: {9,26}\n" +
                "\tTax: {10,39}\n" +
                "\tTotal: {11,37}\n",
                order.OrderNumber, order.CustomerName, order.Area, order.State, order.TaxRate, order.ProductType,
                order.CostPerSquareFoot, order.LaborCostPerSquareFoot, order.MaterialCost, order.LaborCost, order.Tax,
                order.Total);
        }
Beispiel #43
0
        public int CreateOrder(Order order)
        {
            decimal orderTotal = 0;
            var cartItems = GetCartItems();
            foreach (var item in cartItems)
            {
                var orderDetail = new OrderDetail
                {
                    ProductId = item.ProductID,
                    OrderId = order.OrderID,
                    UnitPrice = item.Price,
                    Quantity = item.Quantity

                };
                orderTotal += (item.Quantity * item.Price);
                storeDB.OrderDetails.Add(orderDetail);
            }
            order.OrderStatus = OrderStatus.Pending;
            order.Total = orderTotal;
            storeDB.SaveChanges();
            EmptyCart();
            return order.OrderID;
        }
        public ActionResult CallBack(string authority, string status)
        {
            String            Status   = status;
            CallBackViewModel callBack = new CallBackViewModel();

            if (Status != "OK")
            {
                callBack.IsSuccess  = false;
                callBack.RefrenceId = "414";
                Order order = GetOrderByAuthority(authority);
                if (order != null)
                {
                    callBack.Order        = order;
                    callBack.OrderDetails = db.OrderDetails
                                            .Where(c => c.OrderId == order.Id && c.IsDeleted == false).Include(c => c.Product).ToList();
                }
            }

            else
            {
                try
                {
                    var zarinpal = ZarinPal.ZarinPal.Get();
                    zarinpal.EnableSandboxMode();
                    String Authority = authority;
                    long   Amount    = GetAmountByAuthority(Authority);

                    var verificationRequest  = new ZarinPal.PaymentVerification(MerchantId, Amount, Authority);
                    var verificationResponse = zarinpal.InvokePaymentVerification(verificationRequest);
                    if (verificationResponse.Status == 100 || verificationResponse.Status == 101)
                    {
                        Order order = GetOrderByAuthority(authority);
                        if (order != null)
                        {
                            order.IsPaid      = true;
                            order.PaymentDate = DateTime.Now;
                            order.RefId       = verificationResponse.RefID;

                            db.SaveChanges();
                            callBack.Order      = order;
                            callBack.IsSuccess  = true;
                            callBack.OrderCode  = order.Code.ToString();
                            callBack.RefrenceId = verificationResponse.RefID;

                            callBack.OrderDetails = db.OrderDetails
                                                    .Where(c => c.OrderId == order.Id && c.IsDeleted == false).Include(c => c.Product).ToList();
                            foreach (OrderDetail orderDetail in callBack.OrderDetails)
                            {
                                Product product = orderDetail.Product;
                                product.Quantity = orderDetail.Product.Quantity - 1;

                                if (product.Quantity == 0)
                                {
                                    product.IsAvailable = false;
                                }
                                db.SaveChanges();
                            }
                        }
                        else
                        {
                            callBack.IsSuccess  = false;
                            callBack.RefrenceId = "سفارش پیدا نشد";
                        }
                    }
                    else
                    {
                        callBack.IsSuccess  = false;
                        callBack.RefrenceId = verificationResponse.Status.ToString();
                    }
                }
                catch (Exception e)
                {
                    callBack.IsSuccess  = false;
                    callBack.RefrenceId = "خطا سیستمی. لطفا با پشتیبانی سایت تماس بگیرید";
                }
            }
            ViewBag.HeaderImage = db.Texts.Where(x => x.TextType.Name == "returnfrombank").FirstOrDefault().ImageUrl;

            return(View(callBack));
        }
Beispiel #45
0
        public void SellPriceMustBeLessOrEqualThenBuyPrice()
        {
            // 1) цена продажи не выше чем цена покупки

            var buy1 = new Order { OrderType = OrderType.Buy, TotalAmount = 5, Price = 10 };
            var buy2 = new Order { OrderType = OrderType.Buy, TotalAmount = 5, Price = 11 };
            var buy3 = new Order { OrderType = OrderType.Buy, TotalAmount = 5, Price = 12 };
            var sellOrder = new Order { OrderType = OrderType.Sell, TotalAmount = 5, Price = 15};

            _service.ProcessOrder(buy1);
            _service.ProcessOrder(buy2);
            _service.ProcessOrder(buy3);
            _service.ProcessOrder(sellOrder);

            var realTrades = _service.GetTradeHistory();

            Assert.AreEqual(realTrades.Count, 0);
        }
 /// <summary>
 /// Place an order for a pet
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='body'>
 /// order placed for purchasing the pet
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task<Order> PlaceOrderAsync(this ISwaggerPetstore operations, Order body = default(Order), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.PlaceOrderWithHttpMessagesAsync(body, null, cancellationToken).ConfigureAwait(false))
     {
         return _result.Body;
     }
 }
        public bool ProcessOrder(List<PartOrder> partOrders, string phoneNr, string address)
        {
            //Create the user to be inserted into the database.
            UserDB userDB = new UserDB();
            User user = userDB.GetUserByPhone(phoneNr);

            //if the user does not exist already, create one.
            if (user == null)
            {
                user = new User();
                user.PhoneNumber = phoneNr;
                user.RankID = 0;
                user.Create();
            }

            //Create the address to be inserted into the database.
            AddressDB addressDB = new AddressDB();
            Address userAddress = addressDB.GetByAddress(address);

            //if the address does not exist already, create one.
            if (userAddress == null)
            {
                userAddress = new Address();
                userAddress.UserAddress = address;
                userAddress.UserID = user.ID;
                userAddress.Create();

            }

            //Create the order to be inserted to the database
            Order order = new Order();
            order.AddressID = userAddress.ID;
            order.UserID = user.ID;
            order.StatusID = OrderStatus.WAITING;
            order.Create();

            //The partorders are inserted to the database
            PartOrderDB poDB = new PartOrderDB();

            //For debugging Part Orders when something happens.
            CustomHandlers.DatabaseLibrary.Response<PartOrder> r = poDB.CreateBatch(order.ID, partOrders);
            foreach (string s in r.Messages)
            {
                Console.WriteLine(s);
            }

            return r.Success;
        }
        public bool ValidTaxAndProduct(Order order)
        {
            var taxOps = OperatorFactory.CreateTaxOperations();
            var prodOps = OperatorFactory.CreateProductOperations();

            if (!prodOps.IsValidProduct(order.ProductType).Data)
            {
                Console.WriteLine("We do not carry that product type.");
                return false;
            }

            if (!taxOps.IsValidState(order.State).Data)
            {
                Console.WriteLine("We do not operate within that state.");
                return false;
            }

            return true;
        }
Beispiel #49
0
 public ActionResult CreateOrder(OrderType orderType)
 {
     var order = new Order { OrderType = orderType };
     return PartialView("CreateOrder", order);
 }
        public ActionResult Finalize(string notes, string email, string cellNumber, string activationCode, string city, string address, string postal)
        {
            try
            {
                cellNumber = cellNumber.Replace("۰", "0").Replace("۱", "1").Replace("۲", "2").Replace("۳", "3").Replace("۴", "4").Replace("۵", "5").Replace("۶", "6").Replace("v", "7").Replace("۸", "8").Replace("۹", "9");

                activationCode = activationCode.Replace("۰", "0").Replace("۱", "1").Replace("۲", "2").Replace("۳", "3").Replace("۴", "4").Replace("۵", "5").Replace("۶", "6").Replace("v", "7").Replace("۸", "8").Replace("۹", "9");

                User user = db.Users.Where(current => current.CellNum == cellNumber).FirstOrDefault();

                if (user != null)
                {
                    ActivationCode activation = IsValidActivationCode(user.Id, activationCode);

                    if (activation != null)
                    {
                        ActivateUser(user, activationCode);
                        UpdateActivationCode(activation, null, null, null, null);
                        db.SaveChanges();

                        List <ProductInCart> productInCarts = GetProductInBasketByCoockie();

                        Order order = ConvertCoockieToOrder(productInCarts, user.Id, notes, email, city, address, postal);

                        RemoveCookie();

                        string res = "";

                        if (order.TotalAmount == 0)
                        {
                            res = "freecallback?orderid=" + order.Id;
                        }

                        else
                        {
                            res = zp.ZarinPalRedirect(order, order.TotalAmount);
                        }

                        return(Json(res, JsonRequestBehavior.AllowGet));
                    }

                    if (user.IsActive && user.Password == activationCode)
                    {
                        List <ProductInCart> productInCarts = GetProductInBasketByCoockie();

                        Order order = ConvertCoockieToOrder(productInCarts, user.Id, notes, email, city, address, postal);

                        RemoveCookie();

                        string res = "";

                        if (order.TotalAmount == 0)
                        {
                            res = "freecallback?orderid=" + order.Id;
                        }

                        else
                        {
                            res = zp.ZarinPalRedirect(order, order.TotalAmount);
                        }

                        return(Json(res, JsonRequestBehavior.AllowGet));
                    }
                }
                return(Json("invalid", JsonRequestBehavior.AllowGet));
            }

            catch (Exception e)
            {
                return(Json("false", JsonRequestBehavior.AllowGet));
            }
        }
        public void TestBCanAddOrder()
        {
            var repo = new OrderRepository();

            var order = new Order
            {
                OrderNumber = 1,
                CustomerName = "Jerry",
                State = "OH",
                TaxRate = 6.25M,
                ProductType = "Wood",
                Area = 100,
                CostPerSquareFoot = 5.15M,
                LaborCostPerSquareFoot = 4.75M,
                MaterialCost = 515.00M,
                LaborCost = 475.00M,
                Tax = 61.88M,
                Total = 1051.88M

            };

            repo.AddOrder(order);

            var result = repo.GetOrder(1, DateTime.Today);

            Assert.AreEqual(1, result.OrderNumber);
            Assert.AreEqual("Jerry", result.CustomerName);
            Assert.AreEqual("OH", result.State);
            Assert.AreEqual(6.25, result.TaxRate);
            Assert.AreEqual("Wood", result.ProductType);
            Assert.AreEqual(100.00, result.Area);
            Assert.AreEqual(5.15, result.CostPerSquareFoot);
            Assert.AreEqual(4.75, result.LaborCostPerSquareFoot);
            Assert.AreEqual(515.00, result.MaterialCost);
            Assert.AreEqual(475.00, result.LaborCost);
            Assert.AreEqual(61.88, result.Tax);
            Assert.AreEqual(1051.88, result.Total);
        }
Beispiel #52
0
        public void BuyPriceMustBeMoreOrEqualThanSellPrice()
        {
            // 1) цена покупки не ниже чем цена продажи

            var sell1 = new Order { OrderType = OrderType.Sell, TotalAmount = 5, Price = 10 };
            var sell2 = new Order { OrderType = OrderType.Sell, TotalAmount = 5, Price = 11 };
            var sell3 = new Order { OrderType = OrderType.Sell, TotalAmount = 5, Price = 9 };
            var buyOrder = new Order { OrderType = OrderType.Buy, TotalAmount = 5, Price = 5 };

            _service.ProcessOrder(sell1);
            _service.ProcessOrder(sell2);
            _service.ProcessOrder(sell3);
            _service.ProcessOrder(buyOrder);

            var realTrades = _service.GetTradeHistory();

            Assert.AreEqual(realTrades.Count, 0);
        }
 /// <summary>
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='body'>
 /// order placed for purchasing the pet
 /// </param>
 public static Order PlaceOrder(this ISwaggerPetstoreV2 operations, Order body)
 {
     return Task.Factory.StartNew(s => ((ISwaggerPetstoreV2)s).PlaceOrderAsync(body), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
 }
        public Order ConvertCoockieToOrder(List <ProductInCart> products, Guid userid, string note, string email, string city, string address, string postal)
        {
            try
            {
                Order order = new Order();


                int  expiredNum = 0;
                Guid?cityId     = null;

                if (!string.IsNullOrEmpty(city) && city != "0")
                {
                    cityId = new Guid(city);
                }

                order.Id               = Guid.NewGuid();
                order.IsActive         = true;
                order.IsDeleted        = false;
                order.IsPaid           = false;
                order.CreationDate     = DateTime.Now;
                order.LastModifiedDate = DateTime.Now;
                order.Code             = FindeLastOrderCode() + 1;
                order.UserId           = userid;
                order.Description      = note;
                order.Email            = email;
                order.CityId           = cityId;
                order.Address          = address;
                order.PostalCode       = postal;

                decimal subtotal = GetSubtotal(products);

                order.Amount = subtotal;

                order.DiscountAmount = GetDiscount();

                order.TotalAmount = Convert.ToDecimal(subtotal - order.DiscountAmount);


                db.Orders.Add(order);
                db.SaveChanges();
                foreach (ProductInCart product in products)
                {
                    decimal amount = product.Product.Amount;
                    if (product.Product.IsInPromotion && product.Product.DiscountAmount != null)
                    {
                        amount = product.Product.DiscountAmount.Value;
                    }
                    OrderDetail orderDetail = new OrderDetail()
                    {
                        ProductId    = product.Product.Id,
                        Quantity     = product.Quantity,
                        RawAmount    = amount * product.Quantity,
                        IsDeleted    = false,
                        IsActive     = true,
                        CreationDate = DateTime.Now,
                        OrderId      = order.Id,
                        Amount       = product.Product.Amount,
                    };

                    db.OrderDetails.Add(orderDetail);
                    db.SaveChanges();
                }
                return(order);
            }
            catch (Exception e)
            {
                return(null);
            }
        }
 /// <summary>
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='body'>
 /// order placed for purchasing the pet
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task<Order> PlaceOrderAsync( this ISwaggerPetstoreV2 operations, Order body, CancellationToken cancellationToken = default(CancellationToken))
 {
     HttpOperationResponse<Order> result = await operations.PlaceOrderWithHttpMessagesAsync(body, null, cancellationToken).ConfigureAwait(false);
     return result.Body;
 }
        public Response<Order> NewOrder(Order orderToAdd)
        {
            var response = new Response<Order>();

            orderToAdd = CompleteOrder(orderToAdd);

            try
            {
                var orders = _myOrderRepository.GetAllOrders(DateTime.Today);

                if (orders.LongCount() > 0)
                    orderToAdd.OrderNumber = orders.Max(o => o.OrderNumber) + 1;
                else
                    orderToAdd.OrderNumber = 1;

                _myOrderRepository.AddOrder(orderToAdd);

                response.Data = orderToAdd;
                response.Success = true;
                response.Message = "Order "+ orderToAdd.OrderNumber + " added.";
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                try
                {
                    var repo = new LogRepository();
                    repo.WriteLog(ex.Message);
                }
                catch
                {
                    response.Message += "\nCould not write to log file.";
                }
            }

            return response;
        }