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); }