Esempio n. 1
0
        public void Add_ShouldAddToStore()
        {
            var order = _fixture.Create <Order>();

            _sut.Add(order);

            var result = Assert.Single(_store.GetAll());

            Assert.Equal(order, result);
        }
Esempio n. 2
0
        public async void Add_Order_ShouldReturnOk()
        {
            //Arrange
            var fakeOrderService = A.Fake <IOrderService>();

            CreateOrderResponseDto expectedDto = new CreateOrderResponseDto();

            expectedDto.RawOrderResponse = "steak, potato(x2), cake";

            A.CallTo(() => fakeOrderService.Add(A <string> .Ignored))
            .Returns(Task.FromResult(expectedDto.RawOrderResponse));

            var orderController = new OrderController(fakeOrderService);

            CreateOrderDto createOrderDto = new CreateOrderDto();

            createOrderDto.RawOrder = "night, 1, 2, 2, 4";

            //Act
            var result = await orderController.Add(createOrderDto);

            var okObjectResult         = result.Result as OkObjectResult;
            var createOrderResponseDto = okObjectResult.Value as CreateOrderResponseDto;

            //Assert
            Assert.IsType <OkObjectResult>(okObjectResult);
            Assert.Equal(createOrderResponseDto.RawOrderResponse, expectedDto.RawOrderResponse);
        }
Esempio n. 3
0
        public async Task WhenExecuteAddIfModelIsNotValidThenBadRequestResult()
        {
            OrderDTO             order     = new OrderDTO();
            Mock <IOrderService> mockOrder = new Mock <IOrderService>();
            Mock <IUserService>  mockUser  = new Mock <IUserService>();
            Mock <ITourService>  mockTour  = new Mock <ITourService>();

            mockOrder.Setup(repo => repo.Add(order)).ReturnsAsync(order);
            mockTour.Setup(repo => repo.Get(It.IsAny <int>())).ReturnsAsync(new TourDTO());
            mockUser.Setup(repo => repo.GetUser(It.IsAny <string>())).ReturnsAsync(new CurrentUser());
            Mapper.Initialize(cfg =>
            {
                cfg.AddProfile(new AutoMapperProfile());
            });

            OrderController controller = new OrderController(mockOrder.Object, mockUser.Object, mockTour.Object, Mapper.Instance);

            controller.ModelState.AddModelError("", "");
            IActionResult result = await controller.Add(It.IsAny <int>());

            object modelState = (result as BadRequestObjectResult)?.Value;

            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            Assert.IsInstanceOfType(modelState, typeof(SerializableError));
            Assert.IsNotNull(modelState as SerializableError);
        }
        public void OrderControllerFailedInventoryInsert()
        {
            var OrderControls = new OrderController();
            var order         = new Order()
            {
                Qty        = 10000,
                ProductId  = 4,
                LocationId = 70,
                CustomerId = 231
            };

            OrderControls.Add(order);
        }
        public async Task Post()
        {
            IPizzaServices    _pizzaServices    = new PizzaServices(context, mapper);
            ICustomerServices _customerServices = new CustomerServices(context, mapper);
            IOrderServices    _orderServices    = new OrderServices(_customerServices, _pizzaServices, context, mapper);
            var orderController = new OrderController(_orderServices);

            var oderViewModel = new OrderViewModel()
            {
                Date          = DateTime.Now,
                OrderDelivery = new OrderDeliveryViewModel()
                {
                    ZipCode  = "13334-170",
                    Address1 = "Avenida Presidente Kennedy",
                    Number   = "1500",
                    District = "Cidade Nova",
                    City     = "Indaiatuba",
                    State    = "São Paulo",
                    Country  = "Brasil"
                },
                OrderItems = new List <OrderItemViewModel>()
                {
                    new OrderItemViewModel()
                    {
                        Quantity        = 1,
                        SplitPie        = false,
                        OrderItemSplits = new List <OrderItemSplitViewModel>()
                        {
                            new OrderItemSplitViewModel()
                            {
                                Pizza = new PizzaViewModel()
                                {
                                    Id = 1
                                }
                            }
                        }
                    }
                }
            };

            var actionResult = await orderController.Add(oderViewModel);

            Assert.IsInstanceOfType(actionResult, typeof(OkObjectResult));
            var okObjectResult = (OkObjectResult)actionResult;

            Assert.AreEqual((int)HttpStatusCode.OK, okObjectResult.StatusCode);
            Assert.IsNotNull(okObjectResult.Value);
        }
Esempio n. 6
0
        private void btnLease_Click(object sender, EventArgs e)
        {
            book = new BookDTO();
            foreach (DataGridViewRow row in dgvBooks.SelectedRows)
            {
                book.BookName       = row.Cells[0].Value.ToString();
                book.AuthorName     = row.Cells[1].Value.ToString();
                book.PublisherName  = row.Cells[2].Value.ToString();
                book.PublishingYear = (int)row.Cells[3].Value;
                book.PageCount      = (int)row.Cells[4].Value;
                book.Summary        = row.Cells[5].Value.ToString();
                book.Price          = (decimal)row.Cells[6].Value;
                book.IsAvailable    = (bool)row.Cells[7].Value;
            }
            if (book.IsAvailable)
            {
                leasedBooks.Add(book);
                try
                {
                    bool result = _orderController.Add(user.UserID);
                    _orderID = _orderController.GetOrderOfUser(user.UserID);

                    _bookID = _bookController.GetBookIDByName(book.BookName, book.AuthorName);
                    _bookController.UpdateIsAvailable(_bookID);
                    orderDetail           = new OrderDetailDTO();
                    orderDetail.OrderID   = _orderID;
                    orderDetail.BookID    = _bookID;
                    orderDetail.PaymentID = 1;  ///////////////////       !!!!!!!!!!!!!!!!!!!!!
                    _orderController.AddOrderDetail(orderDetail);
                    if (result)
                    {
                        MessageBox.Show("Keyifli okumalar :)");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Bu kitap zaten kirada");
            }
            books = _bookController.GetBooks();
            FillListBox(books);
        }
        public List <JObject> Parse(string action)
        {
            Function fn;
            var      ReturnObject = new List <JObject>();

            if (Actions.TryGetValue(action, out fn))
            {
                if (fn.QueryFields.Length > 0)
                {
                    Console.Write(fn.Verb + " " + fn.Domain + ":");
                    this._prompt = action;
                    Console.WriteLine("Query Builder:");
                    var QueryObjects = new List <JObject>();

                    while (true)
                    {
                        //Create a new Jobject and assign query fields
                        var Jobject = new JObject();
                        foreach (string s in fn.QueryFields)
                        {
                            Console.Write(s);
                            Console.Write(':');
                            var value = Console.ReadLine();
                            if (s.Contains("Id"))
                            {
                                int i = Int32.Parse(value);
                            }
                            Jobject[s] = value;
                        }
                        QueryObjects.Add(Jobject);
                        if (fn.MultiQuery == true)
                        {
                            Console.WriteLine("Add Another?: Y/N");
                            if (Console.ReadLine() == "N")
                            {
                                break;
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    //Return a JOBJect list to calling function
                    if (fn.Verb == "Add")
                    {
                        if (fn.Domain == "Customer")
                        {
                            var controller = new CustomerController();
                            foreach (JObject j in QueryObjects)
                            {
                                Customer c = controller.Format(j);
                                var      x = controller.Add(c);
                                ReturnObject.Add(JObject.FromObject(x));
                            }

                            Console.WriteLine("Successfully Added Customer");
                        }
                        if (fn.Domain == "Order")
                        {
                            var controller = new OrderController();
                            int id         = 0;
                            foreach (JObject j in QueryObjects)
                            {
                                Order c = controller.Format(j);
                                c.Date = DateTime.Now;
                                if (c.OrderId == 0 && id == 0)
                                {
                                    id        = controller.max() + 1;
                                    c.OrderId = id;
                                }
                                if (c.OrderId == 0 && id != 0)
                                {
                                    c.OrderId = id;
                                }
                                controller.Add(c);
                            }
                            if (id != 0)
                            {
                                var j = new JObject();
                                j["New Order Id"] = id;
                                ReturnObject.Add(j);
                            }
                        }
                    }
                    if (fn.Verb == "Show")
                    {
                        if (fn.Domain == "Customer")
                        {
                            var qobject    = QueryObjects[0];
                            var controller = new OrderController();
                            var o          = controller
                                             .Where($"x=> x.CustomerId==\"{qobject["CustomerId"]}\"")
                                             .Include(x => x.Location)
                                             .Include(x => x.Product).ToList();
                            foreach (Order O in o)
                            {
                                var J = new JObject();
                                J["Location"] = O.Location.Name;
                                J["Product"]  = O.Product.Name;
                                J["Qty"]      = O.Qty;
                                J["Date"]     = O.Date;
                                ReturnObject.Add(J);
                            }
                        }
                        if (fn.Domain == "Order")
                        {
                            var          qobject    = QueryObjects[0];
                            var          controller = new OrderController();
                            List <Order> o          = controller.Where($"OrderId=\"{qobject["Id"]}\"")
                                                      .Include(x => x.Customer)
                                                      .Include(x => x.Product)
                                                      .Include(x => x.Location)
                                                      .ToList();
                            foreach (Order O in o)
                            {
                                var J = new JObject();
                                J["Location"] = O.Location.Name;
                                J["Product"]  = O.Product.Name;
                                J["Customer"] = O.Customer.FirstName + " " + O.Customer.LastName;
                                J["Qty"]      = O.Qty;
                                J["Date"]     = O.Date;
                                ReturnObject.Add(J);
                            }
                        }
                        if (fn.Domain == "Location")
                        {
                            var          qobject    = QueryObjects[0];
                            var          controller = new OrderController();
                            List <Order> o          = controller.Where($"x=>x.LocationId=\"{qobject["Id"]}\"")
                                                      .Include(x => x.Location)
                                                      .Include(x => x.Product)
                                                      .Include(x => x.Customer).ToList()
                            ;
                            foreach (Order O in o)
                            {
                                var J = new JObject();
                                J["Location"] = O.Location.Name;
                                J["Product"]  = O.Product.Name;
                                J["Customer"] = O.Customer.FirstName + " " + O.Customer.LastName;
                                J["Qty"]      = O.Qty;
                                J["Date"]     = O.Date;
                                ReturnObject.Add(J);
                            }
                        }
                    }
                    if (fn.Verb == "Search")
                    {
                        if (fn.Domain == "Customer")
                        {
                            var qobject    = QueryObjects[0];
                            var controller = new CustomerController();

                            string condition = $"FirstName=\"{qobject["FirstName"]}\" && LastName=\"{qobject["LastName"]}\"";
                            var    found     = controller.Where(condition);
                            foreach (Customer C in found)
                            {
                                var J = JObject.FromObject(C);
                                ReturnObject.Add(J);
                            }
                        }/*
                          * if (fn.Domain == "Order")
                          * {
                          * var qobject = QueryObjects[0];
                          * var controller = new OrderController();
                          * var found = controller.Where($"x.Customer.FirstName=={qobject["FirstName"]} && x.Customer.LastName=={qobject["LastName"]}");
                          * foreach (Customer C in found)
                          * {
                          *     var J = JObject.FromObject(C);
                          *     ReturnObject.Add(J);
                          * }
                          * }
                          */
                    }
                }
                return(ReturnObject);
            }

            else
            {
                throw new ArgumentException($"Command Not Found Please Try Again");
            }
        }
        static void MakeOrder(OrderController orderController, Storage storage)
        {
            bool finished = false;

            while (!finished)
            {
                Console.Clear();
                PrintBasket(orderController.CurrentBasket);
                Console.WriteLine($"1) Add more items.");
                Console.WriteLine($"2) Send order.");
                Console.WriteLine($"3) Exit from basket.");
                ChooseLimits(1, 3, "Your choose: ", out int choose);
                Console.WriteLine();
                try
                {
                    switch (choose)
                    {
                    case (1):
                        bool chosen = false;
                        while (!chosen)
                        {
                            try
                            {
                                var quantity = Enum.GetNames(typeof(Items)).Length;
                                Console.Clear();
                                Console.WriteLine("What type of product you want?");
                                if (orderController.CurrentOrder.CurrentUser.Age > 18)
                                {
                                    foreach (var item in (Items[])Enum.GetValues(typeof(Items)))
                                    {
                                        Console.WriteLine((int)item + ") " + item);
                                    }
                                }
                                else
                                {
                                    foreach (var item in (Items[])Enum.GetValues(typeof(Items)))
                                    {
                                        if (item != Items.Wine)
                                        {
                                            Console.WriteLine(((int)item - 1) + ") " + item);
                                        }
                                    }
                                }
                                ChooseLimits(1, quantity, "Your chosen item: ", out int good);
                                if (orderController.CurrentOrder.CurrentUser.Age < 18)
                                {
                                    good++;
                                }
                                PrintBrands(GoodsController.GetBrands((Items)good));
                                ChooseLimits(1, GoodsController.GetAmount((Items)good), "Choose what you want: ", out int brand);
                                ChooseLimits(1, 100, "Type amount (less than 100): ", out int amount);
                                orderController.Add(GoodsController.CreateItem((Items)good, GetBrand((Items)good, brand)), amount);
                                chosen = true;
                            }
                            catch (TypeInitializationException ex)
                            {
                                Console.WriteLine(ex.InnerException);
                            }
                            catch (Exception ex)
                            {
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine(ex.Message);
                                Console.ResetColor();
                                Console.Write("Type any key to continue...");
                                Console.ReadKey();
                            }
                        }
                        break;

                    case (2):
                        orderController.FinishOrder();
                        if (storage.MakeOrder(orderController.CurrentOrder))
                        {
                            Console.WriteLine("Your order is completed!");
                        }
                        else
                        {
                            Console.WriteLine("You was added to the queue. Come back next day.");
                            Console.WriteLine($"You are on {storage.GetQueuePosition(orderController.CurrentOrder.CurrentUser)} position in queue.");
                        }
                        orderController.CheckCurrentOrder();

                        finished = true;
                        break;

                    default:
                        finished = true;
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(ex.Message);
                    Console.ResetColor();
                }
            }
        }