public async Task <ActionResult> DeleteAsync(string id, string pk)
        {
            pk = pk.ToUpper();

            if (id == null || pk == null)
            {
                return(BadRequest());
            }

            var item = await _cosmosDbService.GetItemAsync <Vehicle>(id, pk);

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

            var vm = new VehicleDetailsViewModel
            {
                Vehicle = item,
                Trips   = await _cosmosDbService.GetItemsAsync <Trip>(x => x.entityType == WellKnown.EntityTypes.Trip,
                                                                      partitionKey : pk)
            };

            return(View(vm));
        }
        public ActionResult Details(int id)
        {
            var vehicles = Using <GetVehicleListForUser>()
                           .Execute(this.CurrentUserId);

            var selected = vehicles
                           .Single(x => x.VehicleId == id);

            // we are limiting this to 3 reminders
            // after we retrieve the full set from the server
            var overdue = Using <GetOverdueRemindersForVehicle>()
                          .Execute(id, DateTime.UtcNow, selected.Odometer ?? 0)
                          .Take(3);

            var vm = new VehicleDetailsViewModel
            {
                VehicleList = new VehicleListViewModel(vehicles, id)
                {
                    IsCollapsed = true
                },
                Vehicle          = selected,
                OverdueReminders = overdue,
                UserId           = CurrentUserId
            };

            vm.VehicleList.IsCollapsed = true;

            return(View(vm));
        }
Exemplo n.º 3
0
 public VehicleDetailsPage(Vehicle vehicle)
 {
     InitializeComponent();
     BindingContext = model = new VehicleDetailsViewModel()
     {
         Vehicle = vehicle
     };
 }
Exemplo n.º 4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="vehicle">Vehicle to show details of</param>
        public VehicleDetailsView(Vehicle vehicle)
        {
            InitializeComponent();
            VehicleDetailsViewModel ViewModel = new VehicleDetailsViewModel(vehicle);

            ViewModel.RequestClose += (s, e) => this.Close();
            this.DataContext        = ViewModel;
        }
Exemplo n.º 5
0
        public VehicleDetailPage(Data.Model.Vehicle item)
        {
            InitializeComponent();
            NavigationPage.SetHasBackButton(this, true);

            BindingContext = model = new VehicleDetailsViewModel
            {
                vehicle = item
            };
        }
        public async Task <ActionResult> DetailsAsync(string id, string pk)
        {
            pk = pk.ToUpper();
            var vm = new VehicleDetailsViewModel
            {
                Vehicle = await _cosmosDbService.GetItemAsync <Vehicle>(id, pk),
                Trips   = await _cosmosDbService.GetItemsAsync <Trip>(x => x.entityType == WellKnown.EntityTypes.Trip,
                                                                      partitionKey : pk)
            };

            return(View(vm));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> Comment(VehicleDetailsViewModel input)
        {
            var commentDetails = input.Comment;
            var user           = await this.userManager.GetUserAsync(this.User);

            var userID = user.Id;

            await this.commentService.Comment(userID, commentDetails);


            //redirect to the same vehicle and list the comment
            return(this.Redirect($"/Vehicle/VehicleDetails/{input.Comment.VehicleID}"));
        }
Exemplo n.º 8
0
        public VehicleDetailsViewModel GetById(string id)
        {
            var vehicle = this.vehicleRepository
                          .AllAsNoTracking()
                          .Where(x => x.Id == id)
                          .FirstOrDefault();

            var vehicleImages = this.vehicleRepository.AllAsNoTracking()
                                .Where(x => x.Id == id)
                                .Select(x => x.Pictures.ToList())
                                .FirstOrDefault();

            var imagesList = new List <CarImagesViewModel>();

            foreach (var pic in vehicleImages)
            {
                var converted = new CarImagesViewModel
                {
                    Id  = pic.Id,
                    URL = pic.URL,
                };

                imagesList.Add(converted);
            }

            var mapped = new VehicleDetailsViewModel
            {
                Id        = vehicle.Id,
                Brand     = vehicle.Brand,
                Model     = vehicle.Model,
                CoupeType = vehicle.CoupeType,
                Seats     = vehicle.Seats,
                RequiredLicenseCategory = vehicle.RequiredLicenseCategory,
                FuelType            = vehicle.FuelType,
                Gearbox             = vehicle.Gearbox,
                Doors               = vehicle.Doors,
                YearOfManufacturing = vehicle.YearOfManufacturing,
                FuelTankVolume      = vehicle.FuelTankVolume,
                FuelConsumption     = vehicle.FuelConsumption,
                TrunkVolume         = vehicle.TrunkVolume,
                Horsepower          = vehicle.Horsepower,
                EngineVolume        = vehicle.EngineVolume,
                PricePerDay         = vehicle.PricePerDay,
                IsBooked            = vehicle.IsBooked,
                Images              = imagesList,
            };

            return(mapped);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Add series of new numbers to a subclass.
        /// </summary>
        private void AddNewNumberSeries()
        {
            NewNumberViewModel dialogViewModel =
                new NewNumberViewModel(
                    this.SubClassNumbers,
                    true);

            DialogService service = new DialogService();

            service.ShowDialog(
                new NewNumberSeriesDialog()
            {
                DataContext = dialogViewModel
            });

            if (dialogViewModel.Result == MessageBoxResult.OK)
            {
                for (int number = dialogViewModel.Number; number <= dialogViewModel.UpperNumber; ++number)
                {
                    if (this.classFileConfiguration.Subclasses[dialogViewModel.SubClassIndex].Numbers.Find(n => n.CurrentNumber == number) != null)
                    {
                        return;
                    }

                    Number newNumber =
                        new Number()
                    {
                        CurrentNumber = number,
                        Historical    = new List <OldNumber>()
                    };
                    this.classFileConfiguration.Subclasses[dialogViewModel.SubClassIndex].Numbers.Add(newNumber);

                    VehicleDetailsViewModel newVehicle =
                        new VehicleDetailsViewModel(
                            number.ToString());

                    if (!IndividualUnitIOController.WriteIndividualUnitFile(newVehicle, classId))
                    {
                        Logger l = Logger.Instance;
                        l.WriteLog("TRACE: Class Config Form - Save Failed - Failed to write " + newVehicle.UnitNumber.ToString() + ".txt");
                    }
                }

                this.SaveModel();
                this.SelectNewSubClass();
            }
        }
        public async Task <ActionResult> DetailsByVINAsync(string vin)
        {
            vin = vin.ToUpper();

            // Since we only have the VIN and not the vehicle ID, we need to conduct a search.
            // There should only be one result where the partition key is VIN and the entity typ is 'Vehicle'.
            // We will grab the first result anyway for the view model.
            var vehicles = await _cosmosDbService.GetItemsAsync <Vehicle>(x =>
                                                                          x.entityType == WellKnown.EntityTypes.Vehicle &&
                                                                          x.vin == vin, partitionKey : vin);

            var vm = new VehicleDetailsViewModel
            {
                Vehicle = vehicles.FirstOrDefault(),
                Trips   = await _cosmosDbService.GetItemsAsync <Trip>(x => x.entityType == WellKnown.EntityTypes.Trip,
                                                                      partitionKey : vin)
            };

            return(View("Details", vm));
        }
Exemplo n.º 11
0
        public async Task <VehicleDetailsViewModel> ToVehicleDetailsViewModelAsync(Vehicle vehicle)
        {
            var brand = await _brandRepository.GetByIdAsync(vehicle.BrandId);

            var modelType = await _brandRepository.GetModelByIdAsync(vehicle.ModelId);

            var fuel = await _fuelRepository.GetByIdAsync(vehicle.FuelId);

            var color = await _colorRepository.GetByIdAsync(vehicle.ColorId);

            var model = new VehicleDetailsViewModel
            {
                Id             = vehicle.Id,
                LicencePlate   = vehicle.LicencePlate,
                BrandName      = brand.BrandName,
                ModelName      = modelType.ModelName,
                EngineCapacity = vehicle.EngineCapacity,
                Fueltype       = fuel.FuelType,
                ColorName      = color.ColorName,
            };

            return(model);
        }
Exemplo n.º 12
0
        public ActionResult Details(int id)
        {
            var getVehicle = new GetVehicle()
            {
                Id = id
            };
            var vehicleResult = mediator.Send(getVehicle).Result;

            var vehicle = new Vehicle()
            {
                Id            = vehicleResult.Id,
                Brand         = vehicleResult?.Brand,
                LicenseNumber = vehicleResult?.LicenseNumber,
                Type          = vehicleResult?.Type,
                OwnerId       = vehicleResult.OwnerId
            };

            var getCustomer = new GetCustomer()
            {
                Id = vehicle.OwnerId
            };
            var ownerResult = mediator.Send(getCustomer).Result;
            var owner       = new Customer()
            {
                Id      = ownerResult.Id,
                Name    = ownerResult.Name,
                Surname = ownerResult.Surname,
            };

            var view = new VehicleDetailsViewModel()
            {
                Vehicle  = vehicle,
                Customer = owner
            };

            return(View(view));
        }
Exemplo n.º 13
0
        public ActionResult Details(int vehicleId)
        {
            var vehicles = Using <GetVehicleListForUser>()
                           .Execute(CurrentUserId);

            var selected = vehicles
                           .FirstOrDefault(x => x.VehicleId == vehicleId);

            if (selected == null)
            {
                throw new HttpException((int)HttpStatusCode.NotFound,
                                        Messages.VehicleController_VehicleNotFound);
            }

            // We are limiting this to 3 reminders
            // after we retrieve the full set from the server.
            var overdue = Using <GetOverdueRemindersForVehicle>()
                          .Execute(vehicleId, DateTime.UtcNow, selected.Odometer ?? 0)
                          .Take(3);

            var vm = new VehicleDetailsViewModel
            {
                VehicleId   = vehicleId,
                VehicleList = new VehicleListViewModel(vehicles, vehicleId)
                {
                    IsCollapsed = true
                },
                Vehicle          = selected,
                OverdueReminders = overdue,
                UserId           = CurrentUserId,
                DateTimeTicks    = DateTime.Now.Ticks
            };

            vm.VehicleList.IsCollapsed = true;

            return(new ContentTypeAwareResult(vm));
        }
Exemplo n.º 14
0
        public ActionResult VehicleDetails(string q)
        {
            const string assetsPrefix = "carsforsale.vehicledetails";

            // If no query on querystring, redirect to /cars-for-sale/ landing page.
            q = q ?? String.Empty;
            var parts = q.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

            if (parts.Length < 2)
            {
                return(RedirectToRoute("CarsForSale_Index"));
            }

            var dealerId    = Int32.Parse(parts[0]);
            var inventoryId = Int32.Parse(parts[1]);

            var carForSale = CarsForSaleService.GetCarForSaleByDealerIdByInventoryId(dealerId, inventoryId);

            // If inventory_id no longer exists, redirect to /cars-for-sale/results/ page.
            if (carForSale == null)
            {
                return(RedirectToRoute("CarsForSale_Results", new { q = String.Join("|", parts.Skip(2)) }));
            }

            List <int>         autonationDealers     = LeadService.GetLeadAutonationUsedCarDealers();
            List <DealerHours> autonationDealerHours = LeadService.GetLeadAutonationUsedCarDealerHours(dealerId) as List <DealerHours>;
            DealerHours        hours = autonationDealerHours.FirstOrDefault();

            const string na = "NA";
            string       salesMonOpen = na, salesMonClose = na, salesTueOpen = na, salesTueClose = na, salesWedOpen = na,
                         salesWedClose = na, salesThrOpen = na, salesThrClose = na, salesFriOpen = na, salesFriClose = na,
                         salesSatOpen = na, salesSatClose = na, salesSunOpen = na, salesSunClose = na;

            if (autonationDealerHours != null && autonationDealerHours.Any())
            {
                salesMonOpen  = hours.SalesMonOpen.Length > 1 ? hours.SalesMonOpen : na;
                salesMonClose = hours.SalesMonClose.Length > 1 ? hours.SalesMonClose : na;
                salesTueOpen  = hours.SalesTueOpen.Length > 1 ? hours.SalesTueOpen : na;
                salesTueClose = hours.SalesTueClose.Length > 1 ? hours.SalesTueClose : na;
                salesWedOpen  = hours.SalesWedOpen.Length > 1 ? hours.SalesWedOpen : na;
                salesWedClose = hours.SalesWedClose.Length > 1 ? hours.SalesWedClose : na;
                salesThrOpen  = hours.SalesThrOpen.Length > 1 ? hours.SalesThrOpen : na;
                salesThrClose = hours.SalesThrClose.Length > 1 ? hours.SalesThrClose : na;
                salesFriOpen  = hours.SalesFriOpen.Length > 1 ? hours.SalesFriOpen : na;
                salesFriClose = hours.SalesFriClose.Length > 1 ? hours.SalesFriClose : na;
                salesSatOpen  = hours.SalesSatOpen.Length > 1 ? hours.SalesSatOpen : na;
                salesSatClose = hours.SalesSatClose.Length > 1 ? hours.SalesSatClose : na;
                salesSunOpen  = hours.SalesSunOpen != null && hours.SalesSunOpen.Length > 1 ? hours.SalesSunOpen : na;
                salesSunClose = hours.SalesSunClose != null && hours.SalesSunClose.Length > 1 ? hours.SalesSunClose : na;
            }

            var metadata = MetadataService.GetMetadataForPage(HttpContext);
            var viewModel = new VehicleDetailsViewModel(assetsPrefix, metadata)
            {
                InlineHeadScript = AssetService.GetInlineHeadScript(),
                InlineHeadStyles = AssetService.GetInlineHeadStyles(assetsPrefix),
                TrackMeta        = new TrackMeta(metadata)
                {
                    Make       = carForSale.Make,
                    SuperModel = carForSale.Model,
                    Year       = carForSale.Year.ToString(CultureInfo.InvariantCulture)
                },
                AdvertMeta = new AdvertMeta(new
                {
                    make     = carForSale.Make,
                    model    = carForSale.Model,
                    year     = carForSale.Year,
                    category = carForSale.Category
                }),
                OfferMeta = new OfferMeta(new
                {
                    make  = carForSale.Make,
                    model = carForSale.Model
                }),
                CarForSale = new VehicleDetailsViewModel.Dto.CarForSale
                {
                    InventoryId       = carForSale.Id,
                    MakeId            = carForSale.MakeId,
                    Make              = carForSale.Make,
                    Model             = carForSale.Model,
                    Year              = carForSale.Year,
                    Trim              = carForSale.Trim,
                    Category          = carForSale.Category,
                    Mileage           = carForSale.Mileage,
                    HasMissingMileage = carForSale.Mileage <= 0,
                    AskingPrice       = carForSale.AskingPrice,
                    HasMissingPrice   = carForSale.AskingPrice <= 0,
                    ExteriorColor     = carForSale.ExteriorColor,
                    InteriorColor     = carForSale.InteriorColor,
                    Cylinders         = carForSale.Cylinders.ToString(CultureInfo.InvariantCulture),
                    NumOfDoors        = carForSale.NumOfDoors,
                    TransmissionType  = carForSale.TransmissionType,
                    ImageUrls         = carForSale.ImageUrls,
                    Vin            = carForSale.Vin,
                    CityMpg        = carForSale.CityMpg,
                    HighwayMpg     = carForSale.HighwayMpg,
                    VehicleDetails = carForSale.VehicleDetails,
                    SellerNotes    = carForSale.SellerNotes,

                    Dealer = new VehicleDetailsViewModel.Dto.Dealer
                    {
                        Name             = carForSale.Dealer.Name,
                        Phone            = carForSale.Dealer.Phone,
                        City             = carForSale.Dealer.City,
                        State            = carForSale.Dealer.State,
                        IsTrusted        = carForSale.Dealer.IsPremiumPlacement,
                        Message          = carForSale.Dealer.Message,
                        Latitude         = carForSale.Dealer.Latitude,
                        Longitude        = carForSale.Dealer.Longitude,
                        AutonationDealer = autonationDealers.Contains(carForSale.Dealer.Id)
                    },

                    DealerHours = new VehicleDetailsViewModel.Dto.DealerHours()
                    {
                        SalesMonOpen  = salesMonOpen,
                        SalesMonClose = salesMonClose,
                        SalesTueOpen  = salesTueOpen,
                        SalesTueClose = salesTueClose,
                        SalesWedOpen  = salesWedOpen,
                        SalesWedClose = salesWedClose,
                        SalesThrOpen  = salesThrOpen,
                        SalesThrClose = salesThrClose,
                        SalesFriOpen  = salesFriOpen,
                        SalesFriClose = salesFriClose,
                        SalesSatOpen  = salesSatOpen,
                        SalesSatClose = salesSatClose,
                        SalesSunOpen  = salesSunOpen,
                        SalesSunClose = salesSunClose
                    }
                }
            };

            var primaryImage = viewModel.CarForSale.ImageUrls.FirstOrDefault();

            var inventoryJsonStr = JsonConvert.SerializeObject(new
            {
                id = inventoryId,
                dealerId,
                city             = viewModel.CarForSale.Dealer.City,
                state            = viewModel.CarForSale.Dealer.State,
                vin              = viewModel.CarForSale.Vin,
                price            = viewModel.CarForSale.AskingPrice,
                mileage          = viewModel.CarForSale.Mileage,
                hasAutocheck     = carForSale.Dealer.HasAutoCheckId,
                year             = viewModel.CarForSale.Year,
                dealerPhone      = viewModel.CarForSale.Dealer.Phone,
                hasValidPhoneNum = viewModel.CarForSale.Dealer.HasValidPhoneNumber,
                makeId           = viewModel.CarForSale.MakeId,
                make             = viewModel.CarForSale.Make,
                model            = viewModel.CarForSale.Model,
                primaryImage     = primaryImage ?? String.Empty
            });

            viewModel.RegisterPageJson(inventoryJsonStr, "ABT.pageJson.inventory");

            if (autonationDealers.Contains(carForSale.Dealer.Id))
            {
                return(View("VehicleDetailsBranded", viewModel));
            }

            return(View("VehicleDetails", viewModel));
        }