public NegotiatedContentResult <ConfirmTeleOrderResponse> PostConfirmTeleOrder([FromBody] ConfirmTeleOrderRequest request) { ConfirmTeleOrderResponse resp = _teleorderServices.ConfirmTeleOrder(request); return(Content(HttpStatusCode.OK, resp)); }
public ConfirmTeleOrderResponse ConfirmTeleOrder(ConfirmTeleOrderRequest request) { ConfirmTeleOrderResponse response = new ConfirmTeleOrderResponse(); try { if (!AgentAdminServices.CheckAdmin(request.user_id, request.auth_token, response)) { return(response); } using (TeleOrderDao dao = new TeleOrderDao()) { TeleOrder order = dao.FindById(request.order_id, true); if (order == null) { MakeNoTeleOrderFoundResponse(response); return(response); } order.StatusId = OrdersServices.ID_ORDER_ACCEPTED;//2; order.DrvrID = request.driver_id; //Driver drv = order.Driver; //int agId = drv.AgenID; Driver drv = null; using (DriverDao ddao = new DriverDao()) { drv = ddao.FindById(request.driver_id); if (drv == null) { DriverServices.MakeNoDriverResponse(response); return(response); } TeleOrderDelivery odel = new TeleOrderDelivery(); odel.DrvrID = drv.DrvrID; odel.AgadmID = request.user_id; odel.CreatedDate = DateTime.Now; odel.DeliveryDate = order.DeliveryDate; odel.AcceptedDate = DateTime.Now; odel.StatusId = OrdersServices.DELIVERY_STATUS_ASSIGNED;//1; odel.TeleOrder = order; order.TeleOrderDeliveries.Add(odel); } lock (InvoiceService.monitor) { string invNo = InvoiceService.GenerateInvoiceNumber(drv.AgenID); order.InvoiceNumber = invNo; dao.Update(order); } TeleOrderHelper.CopyFromEntity(response, order); using (ConsumerReviewDao conReviewDao = new ConsumerReviewDao()) { List <ConsumerReview> conReview = new List <ConsumerReview>(); conReview = conReviewDao.GetReviewByDriver(request.driver_id); response.orders.driver.driver_rating = conReview.Count > 0 ? Convert.ToDecimal(conReview.Average(x => x.Rating)) : 0; } if (order.DeliveryDate.HasValue && order.DeliveryDate.Value.ToShortDateString() == DateTime.Now.ToShortDateString()) { int orderCount = dao.GetAssignedOrderCount(request.driver_id, OrdersServices.ID_ORDER_ACCEPTED); using (OrderDao ordDao = new OrderDao()) { orderCount += ordDao.GetAssignedOrderCount(request.driver_id, OrdersServices.ID_ORDER_ACCEPTED); } _orderService.ReadAndSendPushNotification(OrdersServices.APPSETTING_MSG_TO_ASSIGNED_DRIVER, OrdersServices.APPSETTING_TITLE_FOR_ASSIGNED_DRIVER, drv.AppToken, request.order_id, request.driver_id, orderCount, PushMessagingService.APPSETTING_APPLICATION_ID_DRIVER, PushMessagingService.APPSETTING_SENDER_ID_DRIVER, (int)PushMessagingService.PushType.TypeOne); } response.code = 0; response.has_resource = 1; response.message = MessagesSource.GetMessage("cnfrm.tele.order"); } } catch (Exception ex) { response.MakeExceptionResponse(ex); } return(response); }
public static void CopyFromEntity(ConfirmTeleOrderResponse response, TeleOrder order) { TeleOrderFullDetailsDto dto = new TeleOrderFullDetailsDto(); response.orders = dto; dto.order_id = order.TeleOrdID; dto.order_date = Common.ToDateFormat(order.OrderDate); dto.order_time = order.OrderTime; dto.delivery_date = Common.ToDateFormat(order.DeliveryDate ?? DateTime.MinValue); dto.delivery_time_slot = order.MDeliverySlot.SlotName; dto.invoice_number = order.InvoiceNumber; dto.order_status = order.StatusId; if (order.TeleCustomers.Count > 0) { TeleCustomer cust = order.TeleCustomers.First(); dto.consumer_name = cust.CustomerName; dto.consumer_mobile = cust.MobileNumber; dto.consumer_address = cust.Address; dto.consumer_location = null; } dto.driver = new DriverDetailsDto(); if (order.Driver != null) { dto.driver = new DriverDetailsDto(); CopyDriverFromEntity(dto.driver, order.Driver); } List <ProductsDto> pdtos = new List <ProductsDto>(); foreach (TeleOrderDetail det in order.TeleOrderDetails) { ProductsDto pdt = new ProductsDto(); pdt.product_id = det.Product.ProdID; pdt.product_name = det.Product.ProductName; pdt.product_promo = det.PromoProduct ?? 0.0M; pdt.quantity = det.Quantity; pdt.shipping_cost = det.ShippingCharge ?? 0.0M; pdt.shipping_promo = det.PromoShipping ?? 0.0M; pdt.refill_price = det.RefillPrice; pdt.refill_promo = det.PromoRefill; pdt.refill_quantity = det.RefillQuantity; pdt.sub_total = det.SubTotal; pdt.unit_price = det.UnitPrice; pdt.grand_total = det.TotalAmount; pdtos.Add(pdt); } dto.grand_total = order.GrantTotal; dto.products = pdtos.ToArray(); dto.has_exchange = (order.TeleOrderPrdocuctExchanges.Count > 0 ? 1 : 0); if (dto.has_exchange == 1) { if (dto.exchange == null) { dto.exchange = new List <ExchangeDto>(); } foreach (var item in order.TeleOrderPrdocuctExchanges) { ExchangeDto exDto = new ExchangeDto(); CopyFromEntity(exDto, item); dto.exchange.Add(exDto); } } }