public ActionResult <OrderRequestDTO> RespondOrder(OrderAcceptanceResponse orderAcceptance) { var response = new OrderRequestDTO(); var dbOrder = Orders.Where(o => o.Id == orderAcceptance.OrderId).FirstOrDefault(); if (dbOrder != null) { if (orderAcceptance.AcceptOrder) { dbOrder.Status = OrderStatus.Requested; dbOrder.Links.AddRange(orderAcceptance.Links); //chamar api lojista com status novo var processor = new OrdersProcessor(); processor.Notify(dbOrder); } else { dbOrder.Status = OrderStatus.Rejected; } return(Ok()); } else { return(NotFound()); } }
public async Task <IActionResult> CreateOrder(OrderRequestDTO dto) { //OrderRequestDTO dto = new OrderRequestDTO(); //string DiscountCode = Request.Form["discountCode"].ToString(); //if (DiscountCode != "") //{ // dto.DiscountCode = DiscountCode; //} //dto.Price = double.Parse(Request.Form["Price"]); //string discount = Request.Form["Discount"].ToString(); //if (discount != "") //{ // dto.Discount = double.Parse(discount); //} //dto.Notes = Request.Form["notes"]; var userSession = (UserSession)HttpContext.Items["usersession"]; if (userSession.User.RoleId != 3) { return(Unauthorized()); } var response = await _orderService.Create(userSession.UserId, dto); if (response.HasError && response.Status == 406) { return(Error(response, System.Net.HttpStatusCode.NotAcceptable)); } return(Ok(response)); }
public void RequestOrder() { // Arrange var controller = new OrdersController(); var request = new OrderRequestDTO { Orders = new System.Collections.Generic.List <Order>() { new Order { Code = 2, Quantity = 12, Notes = "qaad ads asd" } } }; OrdersController.Orders = new System.Collections.Generic.List <OrderResponseDTO>(); // Act var response = controller.RequestOrder(request).Value as OrderResponseDTO; var expected = OrderStatus.Created; // Assert Assert.NotNull(response); Assert.Equal(expected, response.Status); }
private ProductInfo GetProductInfoFromDto(OrderRequestDTO requestProduct) { return(Context.ProductBalances .Include(pb => pb.Medicament) .Where(pb => pb.Id == requestProduct.ProductBalanceId) .Select(pb => new ProductInfo(pb)) .First()); }
public ActionResult <OrderResponseDTO> RequestOrder(OrderRequestDTO orderRequest) { var response = new OrderResponseDTO(); if (orderRequest.Orders.Count > 0) { var id = Orders.Count + 1; var orderResponse = new OrderResponseDTO { Id = id, DeliveryDate = DateTime.Now.AddDays(rnd.Next(2, 15)), Status = OrderStatus.Created, OrderValue = rnd.Next(10, 50) * 1.3m, Orders = orderRequest.Orders, Links = new List <BaseDTOLink>() { new BaseDTOLink { Rel = "self", Href = $"http://localhost:50000/api/v1/Orders/{id}" }, new BaseDTOLink { Rel = "status", Href = $"http://localhost:50000/api/v1/Orders/{id}/status" }, new BaseDTOLink { Rel = "acceptance", Href = "http://localhost:50000/api/v1/Orders" } } }; Orders.Add(orderResponse); response = orderResponse; } else { return(BadRequest()); } return(response); }
public async Task <Response <Order> > Create(int UserId, OrderRequestDTO dto) { var response = new Response <Order>(); double discountamount = 0; double rate = 0; try { Order order = new Order(); order.UserId = UserId; order.Description = dto.Notes; if (dto.DiscountCode != "") { if (dto.DiscountType == DiscountType.Price) { discountamount = dto.DiscountAmount; } else if (dto.DiscountType == DiscountType.Percentage) { discountamount = dto.Price * dto.DiscountAmount / 100; } if (discountamount != dto.Discount) { response.AddValidationError("", " discount does not match with request parameters values."); return(response); } order.DiscountCode = dto.DiscountCode; order.Discount = discountamount; order.DiscountType = dto.DiscountType; } order.Price = dto.Price; order.Fee = ((order.Price - discountamount) * rate / 100); order.Net = ((order.Price - discountamount) - order.Fee); // Charges for influencer double amt = order.Net + order.Fee; double centamt = amt * 100; double Commission = (centamt * rate / 100); // give payout to influence commision rate = 15% double fees = centamt - Commission; // payable amount = (service price - (commision rate % of service price)) double charge = (fees * 2.9 / 100); // 2.9 % of service price double fixchargeincent = 0.30 * 100; // 0.30 Fixed Charge double totalCharg = charge + fixchargeincent; double finalAmount = (fees - totalCharg); double cent50 = (1 * 100) / 2; if (finalAmount < cent50) { response.AddValidationError("", " Can not create order."); return(response); } order.Charge = totalCharg / 100; order.Status = OrderStatus.RequestPending; order.DateCreated = DateTime.UtcNow.ToString(); _orderRepository.Insert(order); response.Success = true; response.Data = order; } catch (Exception ex) { HandleException(response, ex); } return(response); }