public SingleVisit SaveSingleVisit(string licencePlate) { SingleVisit visit = SingleVisits.SingleOrDefault(x => x.ExitDate == null && x.Vehicle.NumberPlate == licencePlate); Vehicle vehicle = Vehicles.SingleOrDefault(x => x.NumberPlate == licencePlate); if (vehicle == null) //nie ma abo i pierwszy raz wjeżdża { vehicle = new Vehicle { NumberPlate = licencePlate }; Vehicles.Add(vehicle); } if (visit == null) //entry { visit = new SingleVisit { EntryDate = DateTime.Now, Vehicle = vehicle }; SingleVisits.Add(visit); } else //exit { visit.ExitDate = DateTime.Now; if (visit.Vehicle.Owner == null) //nie ma abonamentu { TimeSpan visitTime = (DateTime)visit.ExitDate - visit.EntryDate; visit.Price = CalculationHelpers.CauntThePrice(visitTime, Prices.ToList()); visit.Vehicle.TotalPay += (double)visit.Price; } } SaveChanges(); return(visit); }