コード例 #1
0
        public IActionResult GetInvoice(int id)
        {
            var order   = OrdersRepo.Get(id);
            var invoice = InvoiceGenerator.GenerateInvoice(order, FeeRepository.Get());

            return(new FileContentResult(Encoding.UTF8.GetBytes(invoice), InvoiceGenerator.MediaType));
        }
コード例 #2
0
        private async Task <OrderEntity> GetOrderForBuyerToPayOrThrow(CreateCheckoutRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                throw new KnownException("Invalid request model!");
            }

            EnsureBuyerProfile();
            OrdersRepo.ChainQueryable(q => q.Include(o => o.Buyer));
            var order = await OrdersRepo.GetOne(model.OrderId);

            if (order == null)
            {
                throw new KnownException("Comanda nu a fost găsită!");
            }

            if (order.Buyer != CurrentBuyerProfile)
            {
                throw new KnownException("Nu poți plăti această comandă deoarece nu îți aparține!");
            }

            if (order.State == OrderState.Paid || order.State == OrderState.WaitingProcessing)
            {
                throw new KnownException("Această comandă este deja plătită!");
            }

            return(order);
        }
コード例 #3
0
        public void DeleteOrder_Valid()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);

            #endregion

            #region ACT

            var taskReturn = testController.DeleteOrder(1);
            taskReturn.Wait();
            var result = taskReturn.Result.Value;

            var testData = testRepo.SelectById(1).Result;

            #endregion

            #region ASSERT

            Assert.AreEqual(result.Id, 1);
            Assert.AreEqual(result.CustomerId, 1);
            Assert.AreEqual(result.NetPrice, 29.99M);
            Assert.IsTrue(result.isCompleted);

            Assert.IsNull(testData);

            #endregion
        }
コード例 #4
0
        public void DeleteOrder_Invalid()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);

            #endregion

            #region ACT

            var taskReturn = testController.DeleteOrder(0);
            taskReturn.Wait();
            var result = taskReturn.Result.Result;

            var testData = testRepo.SelectById(1).Result;

            #endregion

            #region ASSERT

            Assert.IsTrue(result is NotFoundResult);
            Assert.AreEqual((result as NotFoundResult).StatusCode, 404);

            Assert.IsNotNull(testData);
            Assert.AreEqual(testData.Id, 1);
            Assert.AreEqual(testData.CustomerId, 1);
            Assert.AreEqual(testData.NetPrice, 29.99M);
            Assert.IsTrue(testData.isCompleted);

            #endregion
        }
コード例 #5
0
        public void GetOrderByID_Valid()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);

            #endregion

            #region ACT

            var taskReturn = testController.GetOrders(1);
            taskReturn.Wait();
            var result = taskReturn.Result.Value;

            #endregion

            #region ASSERT

            Assert.AreEqual(result.Id, 1);
            Assert.AreEqual(result.CustomerId, 1);
            Assert.AreEqual(result.NetPrice, 29.99M);
            Assert.IsTrue(result.isCompleted);

            #endregion
        }
コード例 #6
0
        public async Task <IActionResult> PlaceOrder([FromBody] IList <CartItemViewModel> cart)
        {
            EnsureBuyerProfile();

            var order = await TransposeCartToOrder(cart);

            order = await OrdersRepo.Add(order);

            return(Ok(Mapper.Map <OrderViewModel>(order)));
        }
コード例 #7
0
 public override void OnActionExecuting(ActionExecutingContext context)
 {
     base.OnActionExecuting(context);
     ProductsRepo.ChainQueryable(q => q.Include(p => p.Seller));
     OrdersRepo.ChainQueryable(q => q
                               .Include(o => o.Buyer)
                               .Include(o => o.Products)
                               .ThenInclude(p => p.Product.Seller.Address)
                               .Include(o => o.Products)
                               .ThenInclude(p => p.Product.Categories)
                               .ThenInclude(c => c.Category.Parent)
                               );
 }
コード例 #8
0
        public void GetOrderDetails()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);

            #endregion

            #region ACT

            var taskReturn = testController.GetOrders();
            taskReturn.Wait();
            var result = taskReturn.Result.Value;

            List <Orders> testList = new List <Orders>(result);

            #endregion

            #region ASSERT

            Assert.AreEqual(testList.Count, 5);

            Assert.AreEqual(testList[0].Id, 1);
            Assert.AreEqual(testList[0].CustomerId, 1);
            Assert.AreEqual(testList[0].NetPrice, 29.99M);
            Assert.IsTrue(testList[0].isCompleted);

            Assert.AreEqual(testList[1].Id, 2);
            Assert.AreEqual(testList[1].CustomerId, 1);
            Assert.AreEqual(testList[1].NetPrice, 49.99M);
            Assert.IsFalse(testList[1].isCompleted);

            Assert.AreEqual(testList[2].Id, 3);
            Assert.AreEqual(testList[2].CustomerId, 2);
            Assert.AreEqual(testList[2].NetPrice, 9.99M);
            Assert.IsTrue(testList[2].isCompleted);

            Assert.AreEqual(testList[3].Id, 4);
            Assert.AreEqual(testList[3].CustomerId, 3);
            Assert.AreEqual(testList[3].NetPrice, 19.99M);
            Assert.IsFalse(testList[3].isCompleted);

            Assert.AreEqual(testList[4].Id, 5);
            Assert.AreEqual(testList[4].CustomerId, 3);
            Assert.AreEqual(testList[4].NetPrice, 39.99M);
            Assert.IsFalse(testList[4].isCompleted);

            #endregion
        }
コード例 #9
0
ファイル: Tests.cs プロジェクト: brews022/Classproject
        public void LoadAllTests()
        {
            OrdersRepo myOrder = new OrdersRepo();
            DateTime   myDate  = new DateTime(2013, 06, 01);
            var        orders  = myOrder.LoadAll(myDate);

            Assert.AreEqual(2, orders.Count);
            Assert.AreEqual("Wise", orders[0].CustomerName);
            Assert.AreEqual(2, orders[1].OrderNum);
            Assert.AreEqual("MN", orders[1].State.StateAbbreviation);
            Assert.AreEqual("Wood", orders[0].Product.ProductType);
            Assert.AreEqual(20, orders[1].Area);
            Assert.AreEqual(1051.88, orders[0].TotalCost);
        }
コード例 #10
0
        public void PostOrder_Valid()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);
            Orders testData = new Orders()
            {
                Id              = 6,
                CustomerId      = 5,
                DeliveryAddress = "221 Baker Street",
                isCompleted     = true,
                NetPrice        = 99.99M,
                TimePlaced      = DateTime.Now,
            };

            #endregion

            #region ACT

            var taskReturn = testController.PostOrder(testData);
            taskReturn.Wait();
            var result = taskReturn.Result.Result;

            Orders checkData = testRepo.SelectById(6).Result;

            #endregion

            #region ASSERT

            Assert.IsTrue(result is CreatedAtActionResult);
            Assert.AreEqual((result as CreatedAtActionResult).StatusCode, 201);
            Assert.AreEqual((result as CreatedAtActionResult).RouteValues["id"], 6);

            var testReturn = ((result as CreatedAtActionResult).Value as Orders);

            Assert.AreEqual(testReturn.Id, 6);
            Assert.AreEqual(testReturn.CustomerId, 5);
            Assert.AreEqual(testReturn.NetPrice, 99.99M);
            Assert.IsTrue(testReturn.isCompleted);

            Assert.AreEqual(checkData.Id, 6);
            Assert.AreEqual(checkData.CustomerId, 5);
            Assert.AreEqual(checkData.NetPrice, 99.99M);
            Assert.IsTrue(checkData.isCompleted);

            #endregion
        }
コード例 #11
0
        public async Task <IActionResult> GetOne([FromRoute][Required] string id)
        {
            if (await UserManager.IsInRoleAsync(CurrentUser, "Buyer"))
            {
                EnsureBuyerProfile();
                OrdersRepo.ChainQueryable(q => q.Where(o => o.Buyer == CurrentBuyerProfile));
                var order = await OrdersRepo.GetOne(id);

                if (order == null)
                {
                    return(NotFound());
                }

                return(Ok(Mapper.Map <OrderViewModel>(order)));
            }

            return(NotFound());
        }
コード例 #12
0
        public async Task <IActionResult> GetOwn()
        {
            if (await UserManager.IsInRoleAsync(CurrentUser, "Buyer"))
            {
                EnsureBuyerProfile();
                OrdersRepo.ChainQueryable(q => q.Where(o => o.Buyer == CurrentBuyerProfile));
            }

            if (await UserManager.IsInRoleAsync(CurrentUser, "Seller"))
            {
                EnsureSellerProfile();
                throw new KnownException("Can't filter orders for a seller yet.");
            }

            var orders = await OrdersRepo.GetAll();

            return(Ok(Mapper.Map <IEnumerable <OrderViewModel> >(orders)));
        }
コード例 #13
0
        public async Task <IActionResult> CheckoutRedirect([FromQuery][Required] string checkout_id)
        {
            Console.WriteLine(Request.GetEncodedUrl());
            if (string.IsNullOrEmpty(checkout_id))
            {
                throw new KnownException("Invalid checkout_id");
            }

            var order = await OrdersRepo.FindOne(o => o.WePayCheckoutId == checkout_id);

            if (order == null)
            {
                throw new KnownException("Nu am găsit o comandă asociată");
            }

            var wePayRequestBody     = new { checkout_id };
            var wePayRequestBodyJson = new StringContent(JsonConvert.SerializeObject(wePayRequestBody), Encoding.UTF8,
                                                         "application/json");
            var response =
                await WePayHttpClient.PostAsync("https://stage.wepayapi.com/v2/checkout", wePayRequestBodyJson);

            var responseText = await response.Content.ReadAsStringAsync();

            try
            {
                response.EnsureSuccessStatusCode();
                var responseJson = JsonConvert.DeserializeObject <Dictionary <string, object> >(responseText);
                var state        = responseJson["state"].ToString();
                if (state == "released" || state == "authorized")
                {
                    order.State = OrderState.Paid;
                    await DataLayer.SaveChangesAsync();
                    await ProcessOrder();
                }

                return(Ok(state));
            }
            catch
            {
                throw;
            }

            return(Ok());
        }
コード例 #14
0
        public void PutOrder_InvalidID()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);
            Orders testData = new Orders()
            {
                Id          = 1,
                CustomerId  = 1,
                isCompleted = false,
                NetPrice    = 69.99M,
            };

            #endregion

            #region ACT

            var taskReturn = testController.PutOrder(2, testData);
            taskReturn.Wait();
            var result = taskReturn.Result;

            testData = null;
            testData = testRepo.SelectById(1).Result;

            #endregion

            #region ASSERT

            Assert.IsTrue(result is BadRequestResult);
            Assert.AreEqual((result as BadRequestResult).StatusCode, 400);

            Assert.AreEqual(testData.Id, 1);
            Assert.AreEqual(testData.CustomerId, 1);
            Assert.AreEqual(testData.NetPrice, 29.99M);
            Assert.IsTrue(testData.isCompleted);

            #endregion
        }
コード例 #15
0
        public void GetCheckMultipleOpenOrders_MultipleOpenOrders()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);

            #endregion

            #region ACT

            var taskReturn = testController.CheckMultOpenOrders(3);
            taskReturn.Wait();
            var result = taskReturn.Result.Value;

            #endregion

            #region ASSERT

            Assert.AreEqual(result, 2);

            #endregion
        }
コード例 #16
0
        public void GetOrderByID_NonExistingID()
        {
            #region ASSIGN

            OrdersRepo          testRepo       = new OrdersRepo();
            OrdersApiController testController = new OrdersApiController(testRepo);

            #endregion

            #region ACT

            var taskReturn = testController.GetOrders(0);
            taskReturn.Wait();
            var result = taskReturn.Result.Result;

            #endregion

            #region ASSERT

            Assert.IsTrue(result is NotFoundResult);
            Assert.AreEqual((result as NotFoundResult).StatusCode, 404);

            #endregion
        }
コード例 #17
0
 public IEnumerable <OrderDto> Get()
 {
     return(OrdersRepo.Get(CustomersRepository.GetCurrentCustomer()).Select(o => o.ToOrderDto(FeeRepository.Get())));
 }
コード例 #18
0
ファイル: frmOrders.cs プロジェクト: SPG-Emad/Invoice
 public frmOrders()
 {
     InitializeComponent();
     _objOrders = new OrdersRepo();
 }
コード例 #19
0
 public OrdersController(OrdersRepo repository, UserRepo usersRepository, RubbishRepo rubbishRepository)
 {
     _ordersRepository  = repository;
     _usersRepository   = usersRepository;
     _rubbishRepository = rubbishRepository;
 }
コード例 #20
0
 public OrderController(OrdersRepo orderRepo)
 {
     _orderRepo = orderRepo;
 }
コード例 #21
0
 public OrdersController()
 {
     dBContext        = new MongoConnect();
     ordersCollection = dBContext.database.GetCollection <OrdersMod>("orders");
     ordersRepo       = new OrdersRepo();
 }