Ejemplo n.º 1
0
        /// <summary>
        /// Method to call the service
        /// </summary>
        private void CallWebservice()
        {
            string apiUrl = RxConstants.sendOrder;

            SendOrderRequest objInputParam = new SendOrderRequest
            {
                pharmacyid = App.LoginPharId.ToUpper(),
                mail       = App.LoginEmailId,

                pin              = App.HashPIN,
                prescriptions    = App.prescriptionCollection.ToList(),
                system_version   = "android",
                app_version      = "1.6",
                branding_version = "MLP",
                drugs_hash       = ((!string.IsNullOrWhiteSpace(App.DrugDBHash)) && (!string.IsNullOrEmpty(App.DrugDBHash))) ? App.DrugDBHash : string.Empty
            };

            WebClient sendOrderWebserviceCall = new WebClient();
            var       uri  = new Uri(apiUrl, UriKind.RelativeOrAbsolute);
            var       json = JsonHelper.Serialize(objInputParam);

            sendOrderWebserviceCall.Headers["Content-type"] = "application/json";
            sendOrderWebserviceCall.UploadStringCompleted  += SendOrderwebservicecall_UploadStringCompleted;
            sendOrderWebserviceCall.UploadStringAsync(uri, "POST", json);
        }
Ejemplo n.º 2
0
        public async Task <SendOrderResponse> SendExpress(SendOrderInfo info)
        {
            Logger.InfoFormat("正在向顺丰发起寄件,订单号:{0},收件人:{1},收货人联系手机:{2},收货地址:{3},寄件人:{4},寄件地址:{5}"
                              , info.OrderId, info.DContact, info.DMobile, info.DAddress, info.JContact, info.JAddress);

            SendOrderRequest request = new SendOrderRequest();

            request.OrderBody.Order = info;
            request.Head            = await _settingManager.GetSettingValueAsync(Settings.ShunFeng.ClientCode);

            request.OrderBody.Order.CustId = await _settingManager.GetSettingValueAsync(Settings.ShunFeng.CustId);

            request.ServiceName = "OrderService";
            request.Lang        = "zh-CN";
            var url = await _settingManager.GetSettingValueAsync(Settings.ShunFeng.Url);

            var checkword = await _settingManager.GetSettingValueAsync(Settings.ShunFeng.CheckWord);

            var result = await DoPostAsync(
                url,
                request.ToXml(), GetVerifyCode(request.ToXml(), checkword));

            var response = SendOrderResponse.Parse(result);

            if (response.Head == "OK")
            {
                Logger.InfoFormat("订单号:{0}发起寄件成功!运单号:{1}。", response.Body.OrderResponse.OrderId, response.Body.OrderResponse.MailNo);
            }
            else
            {
                Logger.ErrorFormat("订单号:{0}发起寄件失败,失败原因:{1}", info.OrderId, response.Error);
            }

            return(response);
        }
 public override async Task <SendOrderReply> SendOrder(SendOrderRequest request, ServerCallContext context)
 {
     _logger.LogInformation($"Product: {request.ProductId}, Quantity: {request.Quantity}");
     return(new SendOrderReply
     {
     });
 }
Ejemplo n.º 4
0
        private static ICollection <SendOrderRequest> LoadMockData()
        {
            var mockFile = File.ReadAllText("products-mock.json");

            var products = JsonConvert.DeserializeObject <List <ProductsMock> >(mockFile);

            ConcurrentBag <SendOrderRequest> requestBag = new ConcurrentBag <SendOrderRequest>();

            products.AsParallel().ForAll((product) =>
            {
                var request = new SendOrderRequest();

                request.Products.AddRange(product.Products.Select(p => p.ConvertToGrpc()).ToList());

                requestBag.Add(request);
            });

            return(requestBag.ToList());
        }
        public SendOrderReply SaveOrder(SendOrderRequest request)
        {
            SendOrderReply response = new SendOrderReply();

            try
            {
                var mapper = OrderDomainMapper.Instance.Mapper.CreateMapper();

                var order = mapper.Map <Order>(request);

                order.Ref     = Guid.NewGuid().ToString().ToUpper();
                order.Created = order.Updated = DateTime.Now;
                var products = new List <Context.OrderProduct>();

                request.Products.ToList().ForEach(product =>
                {
                    var productValue  = Decimal.Parse(product.Value);
                    order.TotalValue += productValue;
                    products.Add(new Context.OrderProduct {
                        OrderRef = order.Ref, Ref = Guid.NewGuid().ToString().ToUpper(), ProductName = product.ProductName, Value = productValue
                    });
                });

                var orderDal = new OrderDomainDAL(Program.Services);

                orderDal.SaveOrder(order, products);

                response.Message = $"Message {order.Ref} has been processed!";
                response.Status  = SendOrderStatus.Created;
            }catch (Exception ex)
            {
                response.Message = $"Error {ex.Message}!";
                response.Status  = SendOrderStatus.InternalServerError;
            }

            return(response);
        }
Ejemplo n.º 6
0
 public override Task <SendOrderReply> SendOrder(SendOrderRequest request, ServerCallContext context)
 {
     this._logger.LogInformation($"Received order with productId={request.ProductId}, quantity={request.Quantity}, address={request.Address}");
     return(Task.FromResult(new SendOrderReply()));
 }
Ejemplo n.º 7
0
 public async Task <SendOrderResponse> SendOrder(SendOrderRequest request) =>
 await Client.Post <SendOrderRequest, SendOrderResponse>($"transactions/sendOrder", request);