public List <Orders> SearchOrder(SearchOrderViewModel model, int page, int pageSize)
        {
            List <Orders> returnData      = new List <Orders>();
            bool          modelValidation = false;

            if (model.CompletionDte != null)
            {
                if (model.MSA > 0 && model.Status > 0)
                {
                    modelValidation = true;
                }
                else if (model.OrderId > 0)
                {
                    modelValidation = true;
                }
            }

            if (modelValidation)
            {
                var data = GetJsondata();
                if (data?.Any() ?? false)
                {
                    returnData = data
                                 .Where(x => (x.OrderId == model.OrderId || (x.MSA == model.MSA && x.Status == model.Status)) && x.CompletionDte.Date == model.CompletionDte.Date)?
                                 .Skip(page * pageSize).Take(pageSize).ToList();
                }
            }
            return(returnData);
        }
Ejemplo n.º 2
0
        public static void Main(string[] args)
        {
            OrderSearchServiceSoapClient service = new OrderSearchServiceSoapClient();
            SearchOrderViewModel         model   = new SearchOrderViewModel();

            Console.Write("Enter OrderId:");
            int orderId; int msa; int status;

            if (int.TryParse(Console.ReadLine(), out orderId))
            {
                model.OrderId = orderId;
            }
            Console.Write("Enter MSA:");
            if (int.TryParse(Console.ReadLine(), out msa))
            {
                model.MSA = msa;
            }
            Console.Write("Enter Status:");
            if (int.TryParse(Console.ReadLine(), out status))
            {
                model.Status = status;
            }

            Console.Write("Enter Completion Date(YYYY-MM-DD):");
            DateTime dt = new DateTime();

            if (DateTime.TryParse(Console.ReadLine().ToString(), out dt))
            {
                model.CompletionDte = dt;
            }
            int page     = 0;
            int pageSize = 25;

            if (IsValidCriteria(model))
            {
                var data = service.SearchOrder(model, page, pageSize);
                if (data?.Any() ?? false)
                {
                    Console.WriteLine("Your Orders: ");
                    data.ToList().ForEach(x =>
                    {
                        Console.WriteLine("OrderID: {0},ShipperID: {1},DriverID: {2},CompletionDte: {3},Status: {4},Code: {5},MSA: {6},Duration: {7},OfferType: {8}",
                                          x.OrderId, x.ShipperId, x.DriverId, x.CompletionDte, x.Status, x.Code, x.MSA, x.Duration, x.OfferType);
                    });
                }
                else
                {
                    Console.WriteLine("No data ");
                }
            }
            else
            {
                Console.WriteLine("Please provide valid criteria");
            }
            Console.ReadKey();
        }
Ejemplo n.º 3
0
        public SearchOrder()
        {
            InitializeComponent();
            if (viewModel == null)
            {
                viewModel = new SearchOrderViewModel(this);
            }

            BindingContext = viewModel;
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Search(SearchOrderParams searchParams)
        {
            var searchSpecification = new OrderSpecification();
            var isPrimaryKeyUsed    = false;

            if (searchParams.OrderId is not null)
            {
                searchSpecification.WhereId(searchParams.OrderId.Value);
                isPrimaryKeyUsed = true;
            }

            if (!isPrimaryKeyUsed)
            {
                if (searchParams.Name is not null)
                {
                    searchSpecification.WhereName(searchParams.Name);
                }
                if (searchParams.LastName is not null)
                {
                    searchSpecification.WhereLastName(searchParams.LastName);
                }
                if (searchParams.Email is not null)
                {
                    searchSpecification.WhereEmail(searchParams.Email);
                }

                if (searchParams.PhoneNumber is not null)
                {
                    searchSpecification.WherePhone(searchParams.PhoneNumber);
                }
            }

            if (searchParams.IsSortByDateRequired)
            {
                searchSpecification.SortByDate();
            }

            searchSpecification.WhereActive(searchParams.IsOrderActive).WithoutTracking();
            var viewModel = new SearchOrderViewModel()
            {
                Orders       = await _orderRepository.GetAll(searchSpecification),
                SearchParams = searchParams
            };

            ViewBag.Title = "Поиск по товарам";

            return(View(viewModel));
        }
Ejemplo n.º 5
0
        private static bool IsValidCriteria(SearchOrderViewModel model)
        {
            bool bValid = false;

            if (model.CompletionDte != null)
            {
                if (model.OrderId > 0)
                {
                    bValid = true;
                }
                else if (model.MSA > 0 && model.Status > 0)
                {
                    bValid = true;
                }
            }
            return(bValid);
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> ViewOrders()
        {
            ViewBag.Title = "Вывод заказов";

            var orders = await _orderRepository.GetAll(
                new OrderSpecification()
                .IncludeDetails()
                .SortByTotalPrice()
                .WithoutTracking()
                );

            var viewModel = new SearchOrderViewModel()
            {
                Orders       = orders,
                SearchParams = new SearchOrderParams(),
            };

            return(View(viewModel));
        }
Ejemplo n.º 7
0
        // GET: SearchOrderController
        public async Task <IActionResult> Index()
        {
            string selectedOrderId   = null;
            string selectedChannel   = "";
            int    selectedChannelId = 0;
            string selectedDate      = DateTime.Today.AddDays(-5).ToString("yyyy-MM-dd");

            // get params or set defaults
            if (Request.Method == "POST")
            {
                selectedOrderId = Request.Form["tbClOrderId"];
                selectedDate    = Request.Form["tbDate"];
                selectedChannel = Request.Form["ddlChannels"];
                //The value of the enumeration is returned and not the display text
                if (selectedChannel != "")
                {
                    selectedChannelId = Convert.ToInt32(selectedChannel);
                }
            }

            // convert string date to DateTime
            if (!DateTime.TryParse(selectedDate, out DateTime messDate))
            {
                selectedDate = DateTime.Today.ToString("yyyy-MM-dd");
                messDate     = DateTime.Today.Date;
            }
            ViewData["tbDate"]      = selectedDate;
            ViewData["tbClOrderId"] = selectedOrderId;
            ViewData["clOrderId"]   = selectedOrderId;

            IEnumerable <domain.Models.Channel> servicechannels = await _searchFixMessageService.GetChannels();

            var channels = servicechannels.Select(x =>
            {
                return(new SelectListItem {
                    Value = x.Id.ToString(), Text = x.Description
                });
            });

            ViewData["Channels"] = channels;

            SearchOrderViewModel data = new SearchOrderViewModel
            {
                FixMessage = await _searchFixMessageService.SearchOrderAsync(messDate, selectedOrderId, selectedChannelId)
            };

            // get commandId and tag values
            // replace SOH characters with carriage returns
            //TODO: Can one clordid have multiple commandids?
            var registId = "";

            foreach (var message in data.FixMessage)
            {
                var buffer = message.Raw.Split(Constants.SOH + Constants.TAG513);
                if (buffer.Length > 1)
                {
                    registId = buffer[1].Split(Constants.SOH)[0];
                }
            }

            ViewData["registId"] = registId;

            data.FixMessage = await _searchFixMessageService.SearchOrderAndRegistIdAsync(messDate, selectedOrderId, registId, selectedChannelId);

            var commandId = new List <long>();

            foreach (var message in data.FixMessage)
            {
                commandId.Add(message.Commandid);
                message.Raw = message.Raw.Replace(Constants.SOH, Constants.NEWLINE);
            }

            // populate apiRequest
            data.ApiRequest = await _apiRequestRepository.SearchOrderAsync(commandId);

            foreach (var message in data.ApiRequest)
            {
                message.Raw = JSONIndented(message.Raw);
            }

            // populate apiResponse
            data.ApiResponse = await _apiResponseRepository.SearchOrderAsync(commandId);

            foreach (var message in data.ApiResponse)
            {
                message.Raw = JSONIndented(message.Raw);
            }

            return(View(data));

            // pretty print json
            string JSONIndented(string json)
            {
                try
                {
                    dynamic parsedJson = JsonConvert.DeserializeObject(json);
                    return(JsonConvert.SerializeObject(parsedJson, Formatting.Indented));
                }
                catch
                {
                    return(json);
                }
            }
        }