private void OnResultSearchOk(IStale <ResponseMessageData <TrackOrderDto> > obj)
        {
            if (obj.IsStale || obj.Data == null)
            {
                OnResultSearchError(Resources.Network.ResNetwork.ERROR_NETWORK_DOWN);
                return;
            }

            var data = obj.Data;

            if (data.IsSuccess == false)
            {
                OnResultSearchError(data.Message);
                return;
            }


            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                LstItems.Clear();
                foreach (var dto in data.LstData)
                {
                    LstItems.Add(dto);
                }

                Pager.SetPager(data.Pager);
            });

            OnStatusChanged(SettingsData.Constants.TrackConst.SEARCH_ORDERLIST_OK, String.Empty);
        }
        private void OnClose(string msg)
        {
            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                if (IsOpen)
                {
                    IsOpen = false;
                }

                LstItems.Clear();
                LstLastOrdersButtons.Clear();
            });
        }
        private void OnPosCheckError(Exception ex)
        {
            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                IsGettingSelectedOrder = false;
                PropagateOrder         = null;
                LstItems.Clear();
            });

            MessageBus.Current.SendMessage(new MessageBoxSettings
            {
                Message = "Existe el siguiente problema al obtener el pedido: " + ex.Message,
                Title   = "Error al obtener el pedido",
            }, SharedMessageConstants.MSG_SHOW_ERRQST);
        }
        private void OnLastNthOrdersReady(IStale <ResponseMessageData <LastOrderInfoModel> > obj)
        {
            RxApp.MainThreadScheduler.Schedule(_ => { IsOpen = false; });

            if (obj.IsStale || obj.Data.IsSuccess == false || obj.Data.LstData == null || !obj.Data.LstData.Any())
            {
                return;
            }

            try
            {
                RxApp.MainThreadScheduler.Schedule(_ =>
                {
                    PropagateOrder = null;
                    LstItems.Clear();
                    LstLastOrdersButtons.Clear();

                    foreach (var order in obj.Data.LstData)
                    {
                        LstLastOrdersButtons.Add(new StackButtonModel(order));
                    }

                    var firstOrderToStoreId = LstLastOrdersButtons[0].OrderToStoreId;
                    OnPosOrderIdSelected(firstOrderToStoreId);
                    SingleSelectButton(firstOrderToStoreId);
                    IsOpen = true;
                });
            }
            catch (Exception ex)
            {
                SharedLogger.LogError(ex);
                MessageBus.Current.SendMessage(new MessageBoxSettings
                {
                    Message = "Existe el siguiente problema al obtener los últimos pedidos: " + ex.Message,
                    Title   = "Error al obtener los últimos pedidos",
                }, SharedMessageConstants.MSG_SHOW_ERRQST);
            }
        }
        private void OnPosCheckReady(IStale <ResponseMessageData <PropagateOrderModel> > obj)
        {
            try
            {
                if (obj.IsStale || obj.Data.IsSuccess == false || obj.Data.Data == null ||
                    obj.Data.Data.PosCheck == null || obj.Data.Data.PosCheck.LstItems.Count == 0)
                {
                    OnPosCheckError(new Exception("No hay datos que mostrar. Información no válida"));
                    return;
                }

                RxApp.MainThreadScheduler.Schedule(_ =>
                {
                    IsGettingSelectedOrder = false;
                    LstItems.Clear();
                    PropagateOrder = obj.Data.Data;
                    try
                    {
                        if (PropagateOrder != null && PropagateOrder.PosCheck != null)
                        {
                            PropagateOrder.PosCheck.FixItemParents();
                        }
                    }
                    catch (Exception ex)
                    {
                        SharedLogger.LogError(ex);
                        MessageBus.Current.SendMessage(new MessageBoxSettings
                        {
                            Message = "Existe el siguiente problema al jerarquizar el pedido: " + ex.Message,
                            Title   = "Error al obtener el pedido",
                        }, SharedMessageConstants.MSG_SHOW_ERRQST);
                        return;
                    }

                    var lstNewItems = PropagateOrder.PosCheck.LstItems.Select(e => new QtItemModel
                    {
                        ItemId   = e.ItemId,
                        Name     = e.Name,
                        Quantity = 1
                    }).ToList();

                    foreach (var item in lstNewItems)
                    {
                        LstItems.Add(item);
                    }

                    LastOrderDateTx = PropagateOrder.PosCheck.OrderDateTime.ToString(" dd/MM/yyyy |  HH:mm:ss");
                    TitleLastOrder  = String.Format("Pedido del {0}", PropagateOrder.Order.Phone);
                    FranchiseName   = String.Format("Franquicia: {0}", PropagateOrder.Franchise.Name);
                    IsOpen          = true;
                });
            }
            catch (Exception ex)
            {
                SharedLogger.LogError(ex);
                MessageBus.Current.SendMessage(new MessageBoxSettings
                {
                    Message = "Existe el siguiente problema al obtener la información del pedido: " + ex.Message,
                    Title   = "Error al obtener el pedido",
                }, SharedMessageConstants.MSG_SHOW_ERRQST);
            }
        }