public StatisticsViewModel(List <Vehicle> vehicles) { Garage2_0Context db = new Garage2_0Context(); NumberOfMembers = db.Members.Count(); NumberOfVehicles = vehicles.Count(); NumberOfWheels = vehicles.Sum(v => v.NumOfTires); NumberOfVehiclesPerColor = new Dictionary <Enum, int>(); foreach (Colors color in Enum.GetValues(typeof(Colors))) { NumberOfVehiclesPerColor.Add(color, vehicles.Where(v => v.Color == color).Count()); } NumberOfVehiclesPerType = new Dictionary <string, int>(); foreach (var item in db.VehicleTypes) { NumberOfVehiclesPerType.Add(item.Type, vehicles.Where(v => v.VehicleType.Type == item.Type).Count()); } EarliestCheckInTime = vehicles.OrderBy(v => v.CheckInTime).FirstOrDefault()?.CheckInTime; LatestCheckInTime = vehicles.OrderByDescending(v => v.CheckInTime).FirstOrDefault()?.CheckInTime; foreach (Vehicle vehicle in vehicles) { if (vehicle.TypeId != 3) { TotalPrice += VehicleHelpers.CalculateParkingPrice(vehicle.CheckInTime, DateTime.Now); } else { TotalPrice += 2 * VehicleHelpers.CalculateParkingPrice(vehicle.CheckInTime, DateTime.Now); } } }
public ReceiptViewModel(Vehicle vehicle) { MembershipNr = vehicle.Member.MembershipNr; Name = vehicle.Member.Name; VehicleType = vehicle.VehicleType.Type; RegNum = vehicle.RegNum; Color = vehicle.Color; NumOfTires = vehicle.NumOfTires; Model = vehicle.Model; CheckInTime = vehicle.CheckInTime; CheckOutTime = DateTime.Now; TimeParked = CheckOutTime - CheckInTime; if (VehicleType == "Truck") { Price = 2 * VehicleHelpers.CalculateParkingPrice(TimeParked); } else { Price = VehicleHelpers.CalculateParkingPrice(TimeParked); } }