Example #1
0
        public ActionResult TrackByContract(TrackByItemRequest request)
        {
            //
            if (ModelState.IsValid)
            {
                try {
                    //
                    Session["TrackBy"] = request.TrackBy;

                    //Validate
                    string input = request.TrackingNumbers;
                    if (input.Length == 0)
                    {
                        ModelState.AddModelError("", "Please enter a valid tracking number."); return(View(request));
                    }

                    //Get tracking details for all items and retain in Session state
                    TrackingItems items = new TrackingItems();
                    switch (request.TrackBy)
                    {
                    case SEARCHBY_PO: items = new EnterpriseGateway().TrackCartonsForPO(request.Client, request.TrackingNumbers); break;

                    case SEARCHBY_PRO: items = new EnterpriseGateway().TrackCartonsForPRO(request.Client, request.TrackingNumbers); break;
                    }
                    Session["TrackData"] = items;

                    //Redirect to appropriate UI
                    if (items.Count == 0)
                    {
                        ModelState.AddModelError("", "Carton(s) not found. Please verify the tracking number and retry.");
                        return(View(request));
                    }
                    //else if (items.Count == 1)
                    //    return RedirectToAction("ItemDetail","Tracking",new { itemNumber = items[0].ItemNumber.Trim() });
                    else if (items.Count > 0)
                    {
                        return(RedirectToAction("ItemSummary", "Tracking"));
                    }
                    else
                    {
                        return(View(request));
                    }
                }
                catch (Exception ex) { ModelState.AddModelError("", ex); return(View(request)); }
            }
            else
            {
                return(View(request));
            }
        }
Example #2
0
        public ActionResult TrackByItem(TrackByItemRequest request)
        {
            //
            if (ModelState.IsValid)
            {
                try {
                    //
                    Session["TrackBy"] = request.TrackBy;

                    //Validate
                    string input = encodeInput(request.TrackingNumbers);
                    if (input.Length == 0)
                    {
                        ModelState.AddModelError("", "Please enter valid tracking numbers."); return(View(request));
                    }
                    string[] numbers = input.Split(Convert.ToChar(13));
                    if (numbers.Length > 10)
                    {
                        ModelState.AddModelError("", "Please limit your search to 10 items."); return(View(request));
                    }

                    //Get tracking details for all items and retain in Session state
                    string      clientNumber = null, vendorNumber = null;
                    ProfileBase profile = System.Web.HttpContext.Current.Profile;
                    if (profile["ClientVendorID"].ToString() != "000" && profile["Type"].ToString().ToLower() == "client")
                    {
                        clientNumber = profile["ClientVendorID"].ToString();
                    }
                    else if (profile["ClientVendorID"].ToString() != "000" && profile["Type"].ToString().ToLower() == "vendor")
                    {
                        vendorNumber = profile["ClientVendorID"].ToString();
                    }

                    TrackingItems items = new TrackingItems();
                    switch (request.TrackBy)
                    {
                    case SEARCHBY_LABEL: items = new EnterpriseGateway().TrackItemsByLabelNumber(numbers, clientNumber, vendorNumber); break;

                    case SEARCHBY_PLATE: items = new EnterpriseGateway().TrackItemsByPlateNumber(numbers, clientNumber, vendorNumber); break;

                    default: items = new EnterpriseGateway().TrackItemsByCartonNumber(numbers, clientNumber, vendorNumber); break;
                    }
                    Session["TrackData"] = items;

                    //Redirect to appropriate UI
                    if (items.Count == 0)
                    {
                        ModelState.AddModelError("", "Carton(s) not found. Please verify the tracking number(s) and retry.");
                        return(View(request));
                    }
                    //else if (items.Count == 1)
                    //    return RedirectToAction("ItemDetail","Tracking",new { itemNumber = items[0].ItemNumber.Trim() });
                    else if (items.Count > 0)
                    {
                        return(RedirectToAction("ItemSummary", "Tracking"));
                    }
                    else
                    {
                        return(View(request));
                    }
                }
                catch (Exception ex) { ModelState.AddModelError("", ex); return(View(request)); }
            }
            else
            {
                return(View(request));
            }
        }