public ViewResult HandoverEnd(Guid id)
        {
            Rent             rent     = _rentsRepository.GetRent(id);
            HandoverDocument document = _handoverDocumentsRepository.GetHandoverByRent(rent.Id);
            Client           client   = _clientsRepository.GetClient(rent.ClientId);
            Car car = _carsRepository.GetCar(rent.CarId);
            List <CarDamage> carDamages = _carDamagesRepository.GetCarDamages(car.Id).ToList();

            Guid[] guids = new Guid[50];
            for (int i = 0; i < guids.Length - 1; i++)
            {
                guids[i] = Guid.NewGuid();
            }
            RentHandoverEndViewModel model = new RentHandoverEndViewModel
            {
                Id             = document.Id,
                CarId          = car.Id,
                RentId         = rent.Id,
                ClientId       = client.Id,
                CarDamages     = carDamages,
                CarReg         = car.RegistrationNumber,
                ClientName     = client.Name,
                Guids          = guids,
                StartDate      = rent.StartDate,
                StartFireEx    = document.StartFireEx,
                StartFuel      = document.StartFuel,
                StartManual    = document.StartManual,
                StartMilage    = document.StartMilage,
                StartNotes     = document.StartNotes,
                StartRepairSet = document.StartRepairSet,
                StartService   = document.StartService,
                StartSpare     = document.StartSpare,
                StartTriangle  = document.StartTriangle,
            };

            return(View(model));
        }
        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));
        }