Esempio n. 1
0
        public virtual ActionResult GetQuickReturnLabelCost(string orderNumber)
        {
            LogI("GetQuickReturnLabelCost, orderNumber=" + orderNumber);

            var messages = MailViewModel.ValidateQuickReturnLabel(Db, orderNumber);

            ShippingMethodViewModel quickRate = null;

            if (!messages.Any())
            {
                quickRate = MailViewModel.GetQuickPrintLabelRate(Db,
                                                                 DbFactory,
                                                                 ServiceFactory,
                                                                 ShippingService,
                                                                 AccessManager.Company,
                                                                 LogService,
                                                                 Time,
                                                                 WeightService,
                                                                 orderNumber);

                if (quickRate == null)
                {
                    messages.Add(MessageString.Warning("System hasn\'t received any rates"));
                }
            }

            LogI("ChipestRate: " + (quickRate != null ? quickRate.Id.ToString() + ", cost=" + quickRate.Rate : ""));

            return(JsonGet(new ValueMessageResult <ShippingMethodViewModel>()
            {
                IsSuccess = quickRate != null,
                Data = quickRate,
                Messages = messages,
            }));
        }
        public static IList <MessageString> ValidateQuickReturnLabel(IUnitOfWork db,
                                                                     string orderNumber)
        {
            var messages = new List <MessageString>();
            var order    = db.Orders.GetAll().FirstOrDefault(o => o.AmazonIdentifier == orderNumber);

            if (ShippingUtils.IsInternational(order.ShippingCountry))
            {
                messages.Add(MessageString.Warning("The International return label cannot be generated automatically"));
            }
            var existReturnLabel = db.MailLabelInfos.GetAllAsDto()
                                   .Where(m => m.OrderId == order.Id &&
                                          m.MailReasonId == (int)MailLabelReasonCodes.ReturnLabelReasonCode).ToList();

            if (existReturnLabel.Any())
            {
                messages.Add(MessageString.Warning("Order already has return label"));
            }
            return(messages);
        }
 public MessagesResult Warning(string message)
 {
     Messages.Add(MessageString.Warning(message));
     return(this);
 }