Ejemplo n.º 1
0
        async void GetPersonnelVacantAsync()
        {
            var token = cancellationTokenSource.Token;

            try
            {
                await Task.Factory.StartNew(async() =>
                {
                    while (true)
                    {
                        try
                        {
                            personnel = rivERWebService.GetPersonnelReadRequest(Helpers.Settings.PersonnelID).Result;

                            foreach (var request in personnel.Requests)
                            {
                                if (!Requests.Any(r => r.RequestID == request.RequestID))
                                {
                                    Requests.Add(request);
                                }
                                else
                                {
                                    var alarmRequest = Requests.FirstOrDefault(r => r.RequestID == request.RequestID);

                                    alarmRequest.Alarm = request.Alarm;
                                }
                            }

                            foreach (var request in Requests)
                            {
                                if (!personnel.Requests.Any(r => r.RequestID == request.RequestID))
                                {
                                    Requests.Remove(request);
                                }
                            }

                            await Task.Delay(3000);
                        }
                        catch (Exception e)
                        {
                            System.Diagnostics.Debug.WriteLine("Trying to read personnel: {0}", e.Message);
                            await Task.Delay(7000);
                        }
                    }
                }, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
            }
            catch (OperationCanceledException e)
            {
                System.Diagnostics.Debug.WriteLine("Cancel GetPersonnelVacantAsync ex {0}", e.Message);
            }
        }
Ejemplo n.º 2
0
        public RoomsViewModel(INavigation navigation) : base(navigation)
        {
            rivERWebService      = new RivERWebService();
            beaconRangingService = DependencyService.Get <IBeaconRangingService>();
            currentRoom          = new Room();

            personnel = new Personnel();
            requests  = new ObservableCollection <Request>();

            Commands.Add("AcknowledgeCommand", new Command <Request>(OnAcknowledgeCommand));

            beaconRangingService.DidRangeBeacons += Beacon_DidRangeBeacons;

            beaconRangingService.StartMonitoring("B9407F30-F5F8-466E-AFF9-25556B57FE6D", "ER-Rooms");
            //beaconRangingService.StartMonitoring("487C659C-1FE2-4D2A-A289-130BBD7E534F", "ER-Rooms");

            GetPersonnelVacantAsync();
        }
Ejemplo n.º 3
0
        async void GetPersonnelVacantAsync()
        {
            var token = cancellationTokenSource.Token;

            try
            {
                await Task.Factory.StartNew(async() =>
                {
                    while (true)
                    {
                        personnel = rivERWebService.GetPersonnelReadRequest(Helpers.Settings.PersonnelID).Result;

                        foreach (var request in personnel.Requests)
                        {
                            if (!Requests.Any(r => r.RequestID == request.RequestID))
                            {
                                Requests.Add(request);
                            }
                            Requests.Where(r => r.RequestID == request.RequestID)
                            .Select(r => { r.Alarm = request.Alarm; return(r); });
                        }

                        await Task.Delay(3000);

                        if (token.IsCancellationRequested)
                        {
                            break;
                        }
                    }
                }, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
            }
            catch (OperationCanceledException e)
            {
                System.Diagnostics.Debug.WriteLine("Cancel GetPersonnelVacantAsync ex {0}", e.Message);
            }
        }