public MainViewModel(APIService model)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            _carservice = new CarserviceDTO();
            _carservice.AirConCharging       = false;
            _carservice.PunctureRepair       = false;
            _carservice.SuspensionAdjustment = false;
            _carservice.TireReplacement      = false;

            _serviceNames = new List <string>();
            _serviceNames.Add(nameof(CarserviceDTO.AirConCharging));
            _serviceNames.Add(nameof(CarserviceDTO.PunctureRepair));
            _serviceNames.Add(nameof(CarserviceDTO.SuspensionAdjustment));
            _serviceNames.Add(nameof(CarserviceDTO.TireReplacement));

            _model = model;

            LogoutCommand                  = new DelegateCommand(param => LogoutAsync());
            WorkshopDetailsCommand         = new DelegateCommand(param => WorkshopDetails());
            LoadCommand                    = new DelegateCommand(param => LoadAsync());
            DeleteReservationCommand       = new DelegateCommand(param => DeleteReservation());
            OpenBuildWorkshopWindowCommand = new DelegateCommand(param => LoadBuildWorkshopWindow());
            CancelBuildWindowCommand       = new DelegateCommand(param => CancelBuildWindow());
            SaveBuildWindowCommand         = new DelegateCommand(param => SaveBuildWindow());
        }
        private async void WorkshopDetails()
        {
            try
            {
                if (SelectedWorkshop == null || SelectedServiceName == null)
                {
                    return;
                }

                _carservice = new CarserviceDTO();

                if (SelectedServiceName == nameof(CarserviceDTO.AirConCharging))
                {
                    _carservice.AirConCharging = true;
                }
                else if (SelectedServiceName == nameof(CarserviceDTO.PunctureRepair))
                {
                    _carservice.PunctureRepair = true;
                }
                else if (SelectedServiceName == nameof(CarserviceDTO.SuspensionAdjustment))
                {
                    _carservice.SuspensionAdjustment = true;
                }
                else if (SelectedServiceName == nameof(CarserviceDTO.TireReplacement))
                {
                    _carservice.TireReplacement = true;
                }

                await _model.LoadReservationByIDAsync(SelectedWorkshop.ID, _carservice);

                Reservations = new ObservableCollection <ReservationDTO>(_model.Reservations);

                OnWorkshopDetailsLoaded();
            }
            catch (Exception)
            {
                OnMessageApplication("Something went wrong");
            }
        }
예제 #3
0
        public async Task LoadReservationByIDAsync(Int32 id, CarserviceDTO serviceType)
        {
            try
            {
                HttpResponseMessage response = await _client.GetAsync("api/workshops/" + id);

                if (response.IsSuccessStatusCode)
                {
                    IEnumerable <ReservationDTO> reservations = await response.Content.ReadAsAsync <IEnumerable <ReservationDTO> >();

                    if (serviceType.AirConCharging)
                    {
                        _reservations = reservations.Where(res => res.ProvidedService.AirConCharging).ToList();
                    }
                    else if (serviceType.PunctureRepair)
                    {
                        _reservations = reservations.Where(res => res.ProvidedService.PunctureRepair).ToList();
                    }
                    else if (serviceType.SuspensionAdjustment)
                    {
                        _reservations = reservations.Where(res => res.ProvidedService.SuspensionAdjustment).ToList();
                    }
                    else if (serviceType.TireReplacement)
                    {
                        _reservations = reservations.Where(res => res.ProvidedService.TireReplacement).ToList();
                    }
                }
                else
                {
                    throw new NetworkException("Service returned response: " + response.StatusCode);
                }
            }
            catch (Exception ex)
            {
                throw new NetworkException("NetworkException: " + ex);
            }
        }