private void LoadEngineVolumeList()
        {
            _engineVolumeRow.SetLoadingState();

            Task.Run(async() => _engineVolumeList = _engineVolumeList ?? await CarDataProvider.GetEngineVolumeList())
            .ContinueWith(_ => EnableControl(_engineVolumeRow, _engineVolumeList, true, nameof(_vehicle.EngineVolume)));
        }
        private void LoadMarkList()
        {
            _marksRow.SetLoadingState();

            Task.Run(async() => _markList = _markList ?? await CarDataProvider.GetMarkList())
            .ContinueWith(_ => EnableControl(_marksRow, _markList));
        }
        private void LoadModelList(string markId)
        {
            _modelsRow.SetLoadingState();

            Task.Run(async() => _modelList = _modelList ?? await CarDataProvider.GetModelList(markId))
            .ContinueWith(_ => EnableControl(_modelsRow, _modelList));
        }
        public void When_ServerReturn_Success_Empty()
        {
            var client = TestBase.MockHttpClient(HttpStatusCode.OK, "[]");

            ICarDataProvider provider = new CarDataProvider(client, TestBase.MockAppSettings());
            var data = provider.GetAsync().Result;

            Assert.AreEqual(data.Count, 0);
        }
        public void When_ServerReturn_Error()
        {
            var client = TestBase.MockHttpClient(HttpStatusCode.InternalServerError, string.Empty);

            ICarDataProvider provider = new CarDataProvider(client, TestBase.MockAppSettings());
            var data = provider.GetAsync().Result;

            Assert.IsNull(data);
        }
        public void When_ServerReturn_Success_InvalidJson()
        {
            string json   = "[{\"id\":\"10001\"}]";
            var    client = TestBase.MockHttpClient(HttpStatusCode.OK, json);

            ICarDataProvider provider = new CarDataProvider(client, TestBase.MockAppSettings());
            var data = provider.GetAsync().Result;

            Assert.IsNull(data[0].Name);
        }
        public void When_ServerReturn_Success_Data()
        {
            string json   = "[{\"name\":\"Bradley\",\"cars\":[{\"brand\":\"MG\",\"colour\":\"Blue\"}]}]";
            var    client = TestBase.MockHttpClient(HttpStatusCode.OK, json);

            ICarDataProvider provider = new CarDataProvider(client, TestBase.MockAppSettings());
            var data = provider.GetAsync().Result;

            Assert.AreEqual(1, data.Count);
        }
        private async void Calculate(object sender, EventArgs e)
        {
            var calculateBtn = (Button)sender;

            calculateBtn.SetSate(false);

            var dialog = this.ShowProgress();

            var data = await CarDataProvider.Average(_vehicle);

            dialog.Dismiss();

            if (data != null)
            {
                if (data.ArithmeticMean != decimal.Zero)
                {
                    var carName        = $"{_marksRow.FindViewById<TextView>(Resource.Id.txtMark).Text} {_modelsRow.FindViewById<TextView>(Resource.Id.txtModel).Text}";
                    var customsCleared = _customsClearedRow.FindViewById <ToggleButton>(Resource.Id.btnCustomsCleared).Checked
                                         ? Resource.String.no
                                         : Resource.String.yes;

                    var message = string.Format(LocalizationProvider.Translate(Resource.String.result_template),
                                                carName, _yearsRow.FindViewById <TextView>(Resource.Id.txtYear).Text,
                                                _engineVolumeRow.FindViewById <TextView>(Resource.Id.txtEngineVolume).Text,
                                                _gearBoxRow.FindViewById <TextView>(Resource.Id.txtGearBox).Text,
                                                _fuelTypeRow.FindViewById <TextView>(Resource.Id.txtFuelType).Text,
                                                LocalizationProvider.Translate(customsCleared),
                                                data.Total, (int)data.ArithmeticMean);

                    StatisticDataProvider.SendAsync(Projects.Auto, message);

                    this.ShowDialog(LocalizationProvider.Translate(Resource.String.result_title), message);
                }
                else
                {
                    this.ShowError(LocalizationProvider.Translate(Resource.String.result_not_found));
                }
            }
            else
            {
                this.ShowError(LocalizationProvider.Translate(Resource.String.result_error));
            }

            calculateBtn.SetSate(true);
        }
        private void LoadFuelTypeList()
        {
            _fuelTypeRow.SetLoadingState();

            Task.Run(async() => {
                if (_fuelTypeList == null)
                {
                    var result    = await CarDataProvider.GetFuelTypeList();
                    _fuelTypeList = result.Select(x =>
                                                  new NameValueItem
                    {
                        Name = LocalizationProvider.Translate(x.Name.ToLower()
                                                              .Replace(new char[] { '/', '-', ' ' }, Constants.SeparatorUnderscore)),
                        Value = x.Value
                    }).ToList();
                }
            })
            .ContinueWith(_ => EnableControl(_fuelTypeRow, _fuelTypeList, true, nameof(_vehicle.FuelId)));
        }
Example #10
0
        private static async Task Loop()
        {
            Console.WriteLine("Entering loop...");

            while (true)
            {
                Console.WriteLine("Reading car RPM");

                var carStatus = CarDataProvider.GetCarStatus();
                switch (carStatus)
                {
                case CarSatus.On:
                    Console.WriteLine("Car is on");
                    await SendMessageToCloud(CarSatus.On);

                    await Task.Delay(120000);

                    break;

                case CarSatus.Off:
                    Console.WriteLine("Car is off");
                    Console.WriteLine("Getting presence");
                    var presence = PresenceProvider.GetPresence();
                    if (presence)
                    {
                        await Task.Delay(120000);

                        Console.WriteLine("Verifying presence still there");
                        presence = PresenceProvider.GetPresence();
                        if (presence)
                        {
                            await SendMessageToCloud(CarSatus.Off, presence : true);

                            return;
                        }
                    }

                    await SendMessageToCloud(CarSatus.Off, presence : false);

                    return;
                }
            }
        }
        private void LoadGearBoxList()
        {
            _gearBoxRow.SetLoadingState();

            Task.Run(async() => {
                if (_gearBoxList == null)
                {
                    var result   = await CarDataProvider.GetGearBoxList();
                    _gearBoxList = result.Select(x =>
                                                 new NameValueItem
                    {
                        Name = LocalizationProvider.Translate(x.Name
                                                              .ToLower().Replace(Constants.SeparatorForwardWithSpaces,
                                                                                 Constants.SeparatorUnderscore)),
                        Value = x.Value
                    }).ToList();
                }
            })
            .ContinueWith(_ => EnableControl(_gearBoxRow, _gearBoxList, true, nameof(_vehicle.GearId)));
        }