private void WakeUp()
        {
            try
            {
                var wakeMessage = new WakeDeviceMessage();

                Device.BeginInvokeOnMainThread(() =>
                {
                    MessagingCenter.Send(wakeMessage, "WakeDeviceMessage");
                });
            }
            catch {; }
        }
        public async Task RunCounter(CancellationToken token)
        {
            await Task.Run(async() => {
                //var count = 0;
                var wakeMessage         = new WakeDeviceMessage();
                int timeDelay           = 1000;
                var timeLimitCallWakeUp = System.DateTime.Now;

                while (true)
                {
                    token.ThrowIfCancellationRequested();

                    try
                    {
                        timeLimitCallWakeUp = System.DateTime.Now;
                        if (DetectNetwork())
                        {
                            MainPageViewModel.SendLocationSync();
                        }
                        else
                        {
                            Device.BeginInvokeOnMainThread(() =>
                            {
                                MessagingCenter.Send(wakeMessage, "WakeDeviceMessage");
                            });
                        }

                        var diffTime = (timeLimitCallWakeUp - System.DateTime.Now).TotalSeconds;

                        if (diffTime > 30)
                        {
                            Device.BeginInvokeOnMainThread(() =>
                            {
                                MessagingCenter.Send(wakeMessage, "WakeDeviceMessage");
                            });
                        }

                        await Task.Delay(timeDelay);

                        await MainPageViewModel.GetDataLocationSync();
                    }
                    catch {; }
                }
            }, token);
        }