Пример #1
0
 public ActionResult CancelOrder(ManualOrderModel manualorder)
 {
     try
     {
         CancelOrderModel model = new CancelOrderModel {
             ErrorMessage = string.Empty, OrderStatus = string.Empty, TIABOrderID = manualorder.TIABOrderID, VerserOrderID = manualorder.VerserOrderID
         };
         var returnModel = Helper.Helper.CancelOrder(model);
         if (returnModel != null && returnModel.First().ErrorMessage != null)
         {
             TempData["ManualOrder"] = $"{manualorder.VerserOrderID} Order Successfully Cancelled !";
             TempData["TabOrder"]    = "CORDER";
             return(RedirectToAction("Index"));
         }
         else
         {
             TempData["OrderError"] = "Error has occurred while processing the request.";
             TempData["TabOrder"]   = "CORDER";
             return(RedirectToAction("Index"));
         }
     }
     catch (Exception)
     {
         TempData["TabOrder"] = "CORDER";
         return(RedirectToAction("index", "ManualOrder"));
     }
 }
Пример #2
0
 public ActionResult ApproveOnOrder(string VerserOrderID)
 {
     try
     {
         CancelOrderModel model = new CancelOrderModel {
             ErrorMessage = string.Empty, OrderStatus = string.Empty, TIABOrderID = string.Empty, VerserOrderID = VerserOrderID
         };
         var returnModel = Helper.Helper.UpdateOnOrder(model);
         if (returnModel != null && returnModel.First().ErrorMessage != null)
         {
             TempData["ManualOrder"] = $"{VerserOrderID} Order Status Successfully Approved";
             TempData["TabOrder"]    = "ONORDER";
             return(RedirectToAction("Index"));
         }
         else
         {
             TempData["OrderError"] = "Error has occurred while processing the request.";
             TempData["TabOrder"]   = "ONORDER";
             return(RedirectToAction("Index"));
         }
     }
     catch (Exception)
     {
         TempData["TabOrder"] = "ONORDER";
         return(RedirectToAction("index", "ManualOrder"));
     }
 }
        public async Task <ActionResult <ApiResponse <int> > > CancelOrder(CancelOrderModel form)
        {
            try
            {
                var cancel = await _context.Ecom_Orders.Where(x => x.Order_ID == form.Order_ID).FirstOrDefaultAsync();

                if (cancel != null)
                {
                    cancel.OrderStatus  = 6;
                    cancel.CancelReason = form.Reason;
                    _context.Update(cancel);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    _context.Ecom_Orders.Add(cancel);
                    await _context.SaveChangesAsync();
                }
                return(new ApiResponse <int> {
                    code = 1, data = cancel.Order_ID, message = "Success"
                });
            }
            catch (Exception ex)
            {
                return(new ApiResponse <int> {
                    code = 0, data = 0
                });
            }
        }
Пример #4
0
 /// <summary>
 /// 取消配送单接口
 /// </summary>
 /// <param name="accessTokenOrAppId">AccessToken或AppId(推荐使用AppId,需要先注册)</param>
 /// <param name="data">请求数据</param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static CancelOrderJsonResult CancelOrder(string accessTokenOrAppId, CancelOrderModel data, int timeOut = Config.TIME_OUT)
 {
     return(WxOpenApiHandlerWapper.TryCommonApi(accessToken =>
     {
         var urlFormat = Config.ApiMpHost + "/cgi-bin/express/local/business/order/cancel?access_token={0}";
         return CommonJsonSend.Send <CancelOrderJsonResult>(accessToken, urlFormat, data, timeOut: timeOut);
     }, accessTokenOrAppId));
 }
Пример #5
0
        public CancelOrderModel Transform()
        {
            var m = new CancelOrderModel();

            m.OrdersCanceled = CancelOrderInfo.Count;
            m.OrdersPending  = CancelOrderInfo.Pending;
            return(m);
        }
Пример #6
0
        public CancelOrderModel Transform()
        {
            var m = new CancelOrderModel();

            m.OrdersCanceled = 1;
            m.OrderId        = this.Id;
            return(m);
        }
        public async Task <BaseResponse <object> > CancelOrder(CancelOrderModel model)
        {
            var request = new RestRequest("cancelOrder", Method.POST);

            request.AddJsonBody(model);

            return(await base.Execute <BaseResponse <object> >(request));
        }
        internal static CancelOrderModel ConvertToCancelOrderModel(CancelOrderBtceResponseModel cancelOrderBtceResponseModel)
        {
            if (!cancelOrderBtceResponseModel.Success)
            {
                return(new CancelOrderModel()
                {
                    Success = false,
                    ErrorMessage = cancelOrderBtceResponseModel.Error
                });
            }
            var cancelOrderModel = new CancelOrderModel()
            {
                Success  = true,
                OrderId  = cancelOrderBtceResponseModel.Return.Order_id,
                FundInfo = cancelOrderBtceResponseModel.Return.Funds
            };

            return(cancelOrderModel);
        }
Пример #9
0
        public static void Run([ServiceBusTrigger("ChargeAmount", "chargeamountsubscription",
                                                  Connection = "ServiceBusConnection")] Message message, ILogger log)
        {
            var order           = JsonConvert.DeserializeObject <OrderModel>(Encoding.UTF8.GetString(message.Body));
            var customerAccount = PaymentRepository.customerAccountModels.FirstOrDefault(c => c.CustomerId == order.CustomerId);
            var orderValue      = order.Price * order.Quantity;

            if (orderValue <= customerAccount.MaximumOrderLimit)
            {
                log.LogInformation("Payment successful");
            }
            else
            {
                var messageBody = new CancelOrderModel();
                messageBody.TrackingId = order.TrackingId;
                messageBody.Message    = "Order cannot be process as it exceeded the maximum order set for customer";
                var cancelOrderMessage = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(messageBody)));
                // Send the message to the topic and assume it will be successfull - eventual consistency
                cancelOrderTopicClient.SendAsync(cancelOrderMessage).GetAwaiter().GetResult();
            }
        }
Пример #10
0
        public static void Run([ServiceBusTrigger("CreateOrder",
                                                  "CreateOrderSubscription",
                                                  Connection = "ServiceBusConnection")] Message message,
                               ILogger log)
        {
            var checkOutProcessModel = JsonConvert.DeserializeObject <CheckOutProcessModel>(Encoding.UTF8.GetString(message.Body));
            var order = new OrderModel()
            {
                TrackingId = checkOutProcessModel.TrackingId,
                CustomerId = checkOutProcessModel.CustomerId,
                Price      = checkOutProcessModel.Price,
                Quantity   = checkOutProcessModel.Quantity,
                ProductId  = checkOutProcessModel.ProductId
            };

            OrdersRepository.Orders.Add(order);

            // Order service allows orders only with quantity less than 10
            if (checkOutProcessModel.Quantity < 10)
            {
                log.LogInformation($"Order Processed");
                order.OrderId = Guid.NewGuid();
                OrdersRepository.ConfirmedOrders.Add(order);
                chargeAmountTopicClient.SendAsync(new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(order))))
                .GetAwaiter().GetResult();
            }
            else
            {
                log.LogInformation($"Order cannot be processed");

                var messageBody = new CancelOrderModel();
                messageBody.TrackingId = checkOutProcessModel.TrackingId;
                messageBody.Message    = "Order cannot be process as it exceeded maximum quantity of 10";
                var cancelOrderMessage = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(messageBody)));
                // Send the message to the topic and assume it will be successfull - eventual consistency
                cancelOrderTopicClient.SendAsync(cancelOrderMessage).GetAwaiter().GetResult();
            }
        }
 public ActionResult CancelOrder(CancelOrderModel model)
 {
     if (ModelState.IsValid)
     {
         string    sql     = "Exec [SP_UPDATE_STATUS_HUY_PHIEU_DAT] '" + model.maPhieuDat + "','" + model.maHuy + "'";
         DataTable lstroom = DataUtil.ExecSqlDataTable(sql, DataUtil.connstr);
         var       a       = lstroom.Rows[0][0];
         if (a.ToString() == "0")
         {
             TempData["HomeIndexError"] = HomeIndexError.CancelRoomIsFail;
             return(View());
         }
         else
         {
             TempData["HomeIndexError"] = HomeIndexError.CancelRoomIsOk;
             return(RedirectToAction("Index"));
         }
     }
     else
     {
         return(View());
     }
 }
Пример #12
0
        public static List <CancelOrderModel> UpdateOnOrder(CancelOrderModel order)
        {
            var response = string.Empty;
            List <CancelOrderModel> theList = new List <CancelOrderModel>();

            theList.Add(order);
            string CancelOrderURi = System.Configuration.ConfigurationManager.AppSettings["rooturi"] + System.Configuration.ConfigurationManager.AppSettings["UpdateToOnOrder"];
            string token          = System.Web.HttpContext.Current.Session["BearerToken"].ToString();

            try
            {
                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                    var resp = client.PostAsJsonAsync(CancelOrderURi, theList);
                    resp.Wait(TimeSpan.FromSeconds(10));
                    if (resp.IsCompleted)
                    {
                        if (resp.Result.StatusCode == HttpStatusCode.Unauthorized)
                        {
                            Console.WriteLine("Authorization failed. Token expired or invalid.");
                        }
                        else
                        {
                            response = resp.Result.Content.ReadAsStringAsync().Result;
                            theList  = JsonConvert.DeserializeObject <List <CancelOrderModel> >(response);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                response = ex.Message;
            }
            return(theList);
        }
Пример #13
0
 /// <summary>
 /// 取消配送单接口
 /// </summary>
 /// <param name="accessTokenOrAppId">AccessToken或AppId(推荐使用AppId,需要先注册)</param>
 /// <param name="data">请求数据</param>
 /// <param name="timeOut">代理请求超时时间(毫秒)</param>
 /// <returns></returns>
 public static async Task <CancelOrderJsonResult> CancelOrderAsync(string accessTokenOrAppId, CancelOrderModel data, int timeOut = Config.TIME_OUT)
 {
     return(await WxOpenApiHandlerWapper.TryCommonApiAsync(async accessToken =>
     {
         var urlFormat = Config.ApiMpHost + "/cgi-bin/express/local/business/order/cancel?access_token={0}";
         return await CommonJsonSend.SendAsync <CancelOrderJsonResult>(accessToken, urlFormat, data, timeOut: timeOut);
     }, accessTokenOrAppId).ConfigureAwait(false));
 }
Пример #14
0
        public async Task <ActionResult> CancelOrders(CancelOrderModel model)
        {
            using (var transaction = await context.Database.BeginTransactionAsync(System.Data.IsolationLevel.Serializable))
            {
                var orders = await context.Orders
                             .Include(x => x.ProductPositions)
                             .Include(x => x.BathPlacePositions)
                             .Where(x => model.OrderIds.Contains(x.Id))
                             .ToListAsync();

                var newOrders = new List <Order>();

                orders.ForEach(x => {
                    x.Canceled    = true;
                    x.Commentary += model.Reason + $" (заказ №{x.Id})";

                    var notFree = x.BathPlacePositions
                                  .Where(pos => !model.BathIds.Any(bathId => bathId == pos.BathPlaceId)).ToList();

                    if (notFree.Count > 0 || x.ProductPositions.Count() > 0)
                    {
                        newOrders.Add(new Order
                        {
                            Commentary       = $"новая копия заказа {x.Id} ",
                            Room             = x.Room,
                            Type             = x.Type,
                            TotalCost        = notFree.Sum(pos => pos.Cost) + x.ProductPositions.Sum(pos => pos.TotalPrice),
                            ProductPositions = x.ProductPositions
                                               .Select(pos => new ProductPosition
                            {
                                Count        = pos.Count,
                                ProductId    = pos.ProductId,
                                ProductPrice = pos.ProductPrice,
                                TotalPrice   = pos.TotalPrice,
                            }).ToList(),
                            BathPlacePositions = notFree
                                                 .Select(pos => new BathPlacePosition
                            {
                                Price         = pos.Price,
                                DiscountName  = pos.DiscountName,
                                DiscountValue = pos.DiscountValue,
                                Status        = pos.Status,
                                BathPlaceId   = pos.BathPlaceId,
                                Begin         = pos.Begin,
                                Duration      = pos.Duration,
                                End           = pos.End,
                                Cost          = pos.Cost,
                            }).ToList(),
                            Modified = x.Modified
                        });
                    }

                    foreach (var p in x.BathPlacePositions)
                    {
                        p.Status = BathPlaceStatus.Free;
                        context.Entry(p).State = EntityState.Modified;
                    }

                    context.Entry(x).State = EntityState.Modified;
                });

                await context.Orders.AddRangeAsync(newOrders);

                await context.SaveChangesAsync();

                transaction.Commit();

                await NotrifyAll(model.Room == RoomType.Men? "men" : "women");

                return(Ok());
            }
        }