public ActionResult Index(SearchTransportPage currentPage)
        {
            var siteUser = _usersManagementService.GetSiteUser(HttpContext);

            if (siteUser == null)
            {
                return(Redirect("/"));
            }

            var searchPage = new SearchTransportPageView(currentPage)
            {
                SearchInfo = new SearchTransportInfo
                {
                    SearchText = string.Empty,
                    FromDate   = string.Empty,
                    ToDate     = string.Empty,
                    Category   = SettingPage.IsInternal ? SearchCategories.CustomerNumber : SearchCategories.Ordernummer
                }
            };

            if (!SettingPage.IsInternal)
            {
                var keyValuePair = searchPage.ListCategory.Find(
                    pair => pair.Key == SearchCategories.CustomerNumber && pair.Value == SearchCategories.CustomerNumber);
                searchPage.ListCategory.Remove(keyValuePair);
                searchPage.IsInternal = false;
            }

            return(View("~/Views/SearchTransport/Index.cshtml", searchPage));
        }
        public ActionResult Index(SearchTransportPage currentPage, SearchTransportInfo searchModel)
        {
            var isInternal = SettingPage.IsInternal;
            var supplier   = _usersManagementService.GetActiveCustomer(HttpContext);
            var siteUser   = _usersManagementService.GetSiteUser(HttpContext);

            if (siteUser == null || supplier == null)
            {
                return(Redirect("/"));
            }

            var customerNo   = supplier.CustomerNo;
            var listShipment = new List <ShipmentResponse>();
            var listOder     = new List <OrderRowResponse>();

            switch (searchModel.Category)
            {
            case SearchCategories.CustomerNumber:
                if (isInternal)
                {
                    listOder = SearchByCustomerNr(searchModel);
                }
                break;

            case SearchCategories.Ordernummer:
                listOder = SearchByOrderNr(searchModel, customerNo);
                if (listOder?.Count > 0)
                {
                    listShipment = GetShipmentsByOrderNr(searchModel, customerNo);
                }
                break;

            case SearchCategories.ShipmentId:
                listShipment = SearchByShipmentId(searchModel, customerNo);
                if (listShipment?.Count > 0)
                {
                    listOder = GetOrderRowByShipmentId(searchModel.SearchText, customerNo);
                }
                break;

            case SearchCategories.CustomerOrderNumber:
                listOder = SearchByCustomerOrderNr(searchModel, customerNo);
                if (listOder?.Count > 0)
                {
                    listShipment = GetShipmentsByCustomerOrderNr(searchModel, customerNo);
                }
                break;

            case SearchCategories.Carrier:
                listShipment = SearchByCarrier(searchModel, customerNo);
                break;

            case SearchCategories.WayBill:
                listShipment = SearchByWaybillNr(searchModel, customerNo);
                if (listShipment?.Count > 0)
                {
                    listOder = GetOrderRowByShipmentId(listShipment.First().ShipmentIdMX.ToString(), customerNo);
                }
                break;
            }

            var totalOrderedQty   = 0;
            var totalDeliveredQty = 0;

            if (listOder != null && listOder.Count > 0)
            {
                totalOrderedQty   += listOder.Sum(order => order.OrderedQty);
                totalDeliveredQty += listOder.Sum(order => order.DeliveredQty);
            }

            if (listShipment == null || listOder == null || (listOder.Count == 0 && listShipment.Count == 0))
            {
                ModelState.AddModelError("", "Inga träffar");
            }


            var searchPage = new SearchTransportPageView(currentPage)
            {
                SearchInfo     = searchModel,
                ListTransport  = listShipment,
                ListOrder      = listOder,
                TotalBestKvant = totalOrderedQty,
                TotalLevKvant  = totalDeliveredQty
            };

            if (!SettingPage.IsInternal)
            {
                var keyValuePair = searchPage.ListCategory.Find(
                    pair => pair.Key == SearchCategories.CustomerNumber && pair.Value == SearchCategories.CustomerNumber);
                searchPage.ListCategory.Remove(keyValuePair);
                searchPage.IsInternal = false;
            }

            return(View("~/Views/SearchTransport/Index.cshtml", searchPage));
        }