/// <summary>
        /// Initializes a new instance of the <see cref="DriversAndCarsTabItemViewModel"/> class.
        /// </summary>
        /// <param name="modalDialogProvider">The modal dialog service.</param>
        /// <param name="serviceFactory">The service factory.</param>
        public DriversAndCarsTabItemViewModel(IMainViewModel mainViewModel, IModalDialogProvider modalDialogProvider, IServiceFactory serviceFactory)
            : base(mainViewModel, modalDialogProvider, serviceFactory)
        {
            CarDetailsViewModel = new CarDetailsViewModel(MainViewModel, ModalDialogProvider, ServiceFactory);
              CarListViewModel = new CarListViewModel(MainViewModel, CarDetailsViewModel, ModalDialogProvider, ServiceFactory);
              DriverDetailsViewModel = new DriverDetailsViewModel(MainViewModel, ModalDialogProvider, ServiceFactory);
              DriverListViewModel = new DriverListViewModel(MainViewModel, DriverDetailsViewModel, ModalDialogProvider, ServiceFactory);

              ViewModelProvider.RegisterChildViewModel(CarDetailsViewModel, ViewModelProviderAction.IsReadOnlyChanged |  ViewModelProviderAction.SaveInvoked);
              ViewModelProvider.RegisterChildViewModel(DriverDetailsViewModel, ViewModelProviderAction.IsReadOnlyChanged | ViewModelProviderAction.SaveInvoked);

              ViewModelProvider.RegisterChildViewModel(CarListViewModel, ViewModelProviderAction.DeleteInvoked);
              ViewModelProvider.RegisterChildViewModel(DriverListViewModel, ViewModelProviderAction.DeleteInvoked);

              ViewModelProvider.ChildrenViewModelDeleteInvoked += new System.EventHandler<ViewModelProviderActionEventArgs>(ViewModelProvider_ChildrenViewModelDeleteInvoked);
              ViewModelProvider.ChildrenViewModelSaveInvoked += new System.EventHandler<ViewModelProviderActionEventArgs>(ViewModelProvider_ChildrenViewModelSaveInvoked);
        }
Example #2
0
        public void Delete_WithValidCarObject_ReturnsCar()
        {
            var car = new Car()
            {
                Id           = 1,
                CarModel     = "testModel",
                ImageUrl     = "testUrl",
                Make         = "testMake",
                Owner        = new School(),
                OwnerId      = 1,
                Transmission = Transmission.Authomatic,
                VIN          = "df33434",
                InUse        = true
            };

            var returnValue = new List <Car>()
            {
                car
            };

            this.repository.Setup(r => r.All()).Returns(returnValue.AsQueryable);
            this.repository.Setup(r => r.Delete(car)).Callback(() => new Car()
            {
                Id           = 1,
                CarModel     = "testModel",
                ImageUrl     = "testUrl",
                Make         = "testMake",
                Owner        = new School(),
                OwnerId      = 1,
                Transmission = Transmission.Authomatic,
                VIN          = "df33434",
                InUse        = true
            });

            var model = new CarDetailsViewModel()
            {
                Id = 1
            };

            var result = this.carService.Delete(model).GetAwaiter().GetResult();

            Assert.That(result.CarModel, Is.EqualTo("testModel"));
        }
        public async Task <IActionResult> ReturnCar(CarDetailsViewModel carReturnViewModel)
        {
            if (!this.ModelState.IsValid)
            {
                var parkings = await this.parkingsService.GetAllAsync <ParkingsServiceDropDownModel>();

                carReturnViewModel.Parkings = parkings.Select(p => p.To <ParkingsDropDownViewModel>()).ToList();

                return(this.View(carReturnViewModel));
            }

            var carServiceModel = carReturnViewModel.To <CarServiceDetailsModel>();

            carServiceModel.HireStatus        = HireStatus.Available;
            carServiceModel.ReservationStatus = ReservationStatus.Free;

            await this.carsService.EditAsync(carServiceModel);

            return(this.Redirect("/Trips/MyTrips"));
        }
Example #4
0
        //TEMP

        //private static byte[] ResizeImage(byte[] array, float resizePercentage,bool OnlyWhenGreaterThan800kB = false)
        //{
        //    if (OnlyWhenGreaterThan800kB)
        //    {
        //        if (array.Length < 800000)
        //        {
        //            Debug.WriteLine("Afbeelding is reeds kleiner dan 800 kB");
        //            return array;
        //        }
        //    }
        //    Bitmap image;
        //    using (var ms = new System.IO.MemoryStream(array))
        //    {
        //        image = new Bitmap(ms);
        //    }
        //    int currentWidth = image.Width;
        //    int currentHeight = image.Height;
        //    int width = (int)((float)currentWidth * resizePercentage);
        //    int height = (int)((float)currentHeight * resizePercentage);
        //    Bitmap resizedImage = new Bitmap(width, height);
        //    using (Graphics gfx = Graphics.FromImage(resizedImage))
        //    {
        //        gfx.DrawImage(image, new Rectangle(0, 0, width, height),
        //            new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
        //    }
        //    ImageConverter converter = new ImageConverter();
        //    return (byte[])converter.ConvertTo(resizedImage, typeof(byte[]));

        //}

        //END TEMP
        public ActionResult CarDetails(int carID)
        {
            CarDetailsViewModel vm      = new CarDetailsViewModel();
            tblCarsService      service = new tblCarsService();

            if (service.isSold(service.getCar(carID)))
            {
                return(HttpNotFound());
            }
            else
            {
                tblBrandsService bservice = new tblBrandsService();
                vm.car              = service.getCar(carID);
                vm.images           = service.GetImagesByCar(vm.car);
                vm.car.CarEquipment = Regex.Replace(vm.car.CarEquipment, @"\r\n?|\n", ",");
                vm.carbrand         = bservice.getBrand(vm.car.BrandID).BrandName;
                vm.carmodel         = vm.car.CarModel;
                return(View(vm));
            }
        }
Example #5
0
        public IActionResult GetById(int id)
        {
            // Se o carro não existir, retornar notfound, senão ok
            var car = _dbContext.Cars.SingleOrDefault(c => c.Id == id);

            if (car == null)
            {
                return(NotFound());
            }

            var carDetailsViewModel = new CarDetailsViewModel(
                car.Id,
                car.Brand,
                car.Model,
                car.VinCode,
                car.Color,
                car.Year,
                car.Price,
                car.ProductionDate);

            return(Ok(carDetailsViewModel));
        }
        public IActionResult GetById(int id)
        {
            var car = _dbContext.Cars.SingleOrDefault(car => car.Id == id);

            if (car == null)
            {
                return(NotFound());
            }

            var carDetailViewModel = new CarDetailsViewModel(
                car.Id,
                car.Brand,
                car.Model,
                car.VinCode,
                car.Year,
                car.Price,
                car.Color,
                car.ProductionDate
                );

            return(Ok(carDetailViewModel));
        }
Example #7
0
        public IActionResult GetById(int id)
        {
            //SE CARRO DE IDENTIFICADOR ID NAO EXISTIR, RETORNA NOTFOUND
            //SENAO RETORN OK
            var car = _dbContext.Cars.SingleOrDefault(c => c.Id == id);

            if (car == null)
            {
                return(NotFound());
            }

            var carDetailsViewModel = new CarDetailsViewModel(
                car.Id,
                car.Brand,
                car.Model,
                car.VinCode,
                car.Year,
                car.Price,
                car.ProductionDate
                );

            return(Ok(carDetailsViewModel));
        }
Example #8
0
        public IActionResult GetById(int id)
        {
            var car = _dbContext.Cars.SingleOrDefault(c => c.Id == id);

            if (car == null)
            {
                return(NotFound());
            }

            var carDetailsViewModel = new CarDetailsViewModel(
                car.Id,
                car.Brand,
                car.Model,
                car.VinCode,
                car.Year,
                car.Price,
                car.Color,
                car.ProductionDate
                );

            return(Ok(carDetailsViewModel));
            // IF the id's car don't exists, return NOTFOUND
            // ELSE, OK
        }
Example #9
0
        public ActionResult Details(Guid id)
        {
            var carModelById = this.service
                               .GetCarById(id);
            var viewModel = new CarDetailsViewModel()
            {
                Id                      = carModelById.Id,
                Manufacturer            = carModelById.Manufacturer,
                Model                   = carModelById.Model,
                TypeOfEngine            = carModelById.TypeOfEngine,
                RegistrationNumber      = carModelById.RegistrationNumber,
                VINNumber               = carModelById.VINNumber,
                CountOfTyres            = carModelById.CountOfTyres,
                CountOfDoors            = carModelById.CountOfDoors,
                TypeOfCar               = carModelById.TypeOfCar,
                YearOfManufactoring     = carModelById.YearOfManufacturing,
                ValidUntilAnnualCheckUp = carModelById.ValidUntilAnnualCheckUp,
                ValidUntilVignette      = carModelById.ValidUntilVignette,
                ValidUntilInsurance     = carModelById.ValidUntilInsurance,
                CarOwnerId              = carModelById.UserId
            };

            return(View(viewModel));
        }
Example #10
0
        public CarDetailsViewModel GetCarById(int id)
        {
            var selectedCar = _dbContext.Cars
                              .SingleOrDefault(c => c.Id == id);

            if (selectedCar == null)
            {
                return(null);
            }

            var response = new CarDetailsViewModel()
            {
                Id             = selectedCar.Id,
                Brand          = selectedCar.Brand,
                Model          = selectedCar.Model,
                VinCode        = selectedCar.VinCode,
                Year           = selectedCar.Year,
                Price          = selectedCar.Price,
                ProductionDate = selectedCar.ProductioDate,
                Color          = selectedCar.Color
            };

            return(response);
        }
        public ViewResult Details(Guid id)
        {
            //Task<IActionResult> task = Task.Run(async () => await PDFAsync());

            Car car = _carsrepository.GetCar(id);
            //FileDescription file1 = new FileDescription
            //{
            //    Id = Guid.NewGuid(),
            //    Ext = ".jpg",
            //    Description = "test1",
            //    Enabled = true
            //};
            //FileDescription file2 = new FileDescription
            //{
            //    Id = Guid.NewGuid(),
            //    Ext = ".jpg",
            //    Description = "test2",
            //    Enabled = true
            //};
            //var file1car1 = new CarFile();
            //var file2car1 = new CarFile();
            //file1car1.Car = car;
            //file1car1.CarId = car.Id;
            //file1car1.FileDescription = file1;
            //file1car1.FileDescriptionId = file1.Id;

            //file2car1.Car = car;
            //file2car1.CarId = car.Id;
            //file2car1.FileDescription = file2;
            //file2car1.FileDescriptionId = file2.Id;
            //_fileDescriptionsRepository.Create(file1);
            //_fileDescriptionsRepository.Create(file2);
            //_carFilesRepository.Add(file1car1);
            //_carFilesRepository.Add(file2car1);


            //dane dla skończonych wynajmów - id klienta,nazwa klienta, użytkownik,tel,mail, od, do, przebieg start, przebieg koniec, id wynajmu
            List <Rent> rents         = _rentsRepository.GetAllRentsByCar(id).ToList();
            Rent        currentRent   = null;
            var         finishedRents = new List <Tuple <Guid, string, string, string, string, DateTime, DateTime, Tuple <int, int, Guid> > >();
            string      clientName    = "";

            if (rents != null)
            {
                foreach (var rent in rents)
                {
                    if (rent.IsFinished)
                    {
                        HandoverDocument document = _handoverDocumentsRepository.GetHandoverByRent(rent.Id);
                        var milage       = Tuple.Create(document.StartMilage, document.EndMilage, rent.Id);
                        var finishedrent = new Tuple <Guid, string, string, string, string, DateTime, DateTime, Tuple <int, int, Guid> >
                                               (rent.ClientId, _clientsRepository.GetClient(rent.ClientId).Name, rent.UserName, rent.UserPhone, rent.UserMail, rent.StartDate, rent.EndDate, milage);
                        finishedRents.Add(finishedrent);
                    }
                    else
                    {
                        if (rent.IsActive)
                        {
                            currentRent = rent;
                            clientName  = _clientsRepository.GetClient(rent.ClientId).Name;
                        }
                    }
                }
            }
            Service lastService            = null;
            IEnumerable <Service> services = _sevicesRepository.GetAllbyCar(car.Id);

            if (services.Count() > 0)
            {
                lastService = services.First();
                foreach (var item in services)
                {
                    item.Client = _clientsRepository.GetClient(item.ClientId);
                    if (item.Date > lastService.Date)
                    {
                        lastService = item;
                    }
                }
            }
            DateTime nextServiceDate   = car.RegistrationDate.AddYears(car.YearsServiceInterval);
            int      daysToNextService = (nextServiceDate - DateTime.Now.Date).Days;

            if (lastService != null)
            {
                nextServiceDate   = lastService.Date.AddYears(car.YearsServiceInterval);
                daysToNextService = (DateTime.Now.Date - nextServiceDate).Days;
            }
            int milageToNextService = car.NextServiceMilage - car.Milage;

            IEnumerable <TyreInfo> tyres = _tyreInfosRepository.GetAllByCar(car.Id);

            foreach (var item in tyres)
            {
                if (item.TyreShopId != Guid.Empty)
                {
                    item.TyreShop = _tyreShopsRepository.GetTyreShop(item.TyreShopId);
                }
                else
                {
                    item.TyreShop = null;
                }
            }
            FinancialInfo financial                     = _financialInfosRepository.GetCarFinancialInfo(car.Id);
            IEnumerable <MilageRecord> records          = _milageRecordsRepository.GetMilageRecordsByCar(car.Id);
            InsurancePolicy            policy           = _insurancePoliciesRepository.GetActiveCarPolicy(car.Id);
            List <InsurancePolicy>     previousPolicies = new List <InsurancePolicy>();

            foreach (var item in _insurancePoliciesRepository.GetAllCarPolicies(car.Id))
            {
                if (!item.IsActive)
                {
                    previousPolicies.Add(item);
                }
            }
            CarDetailsViewModel carDetailsViewModel = new CarDetailsViewModel()
            {
                DaysToNextService   = daysToNextService,
                NextServiceDate     = nextServiceDate,
                MilageToNextService = milageToNextService,
                FinancialInfo       = financial,
                Car                       = car,
                Services                  = services,
                TyreInfos                 = tyres,
                MilageHistory             = records,
                PageTitle                 = "Szczegóły " + car.RegistrationNumber,
                IsCurrentlyRented         = !car.IsAvailable,
                PreviousRents             = finishedRents,
                CurrentRent               = currentRent,
                CurrentRentClientName     = clientName,
                InsurancePolicy           = policy,
                PreviousInsurancePolicies = previousPolicies
            };

            return(View(carDetailsViewModel));
        }
Example #12
0
        public async Task <IActionResult> Delete(int id, CarDetailsViewModel model)
        {
            await this.carService.Delete(id);

            return(RedirectToAction("All", "Car"));
        }