A wiec idac za rada Cerrato, napisze tutaj kod ktorego nie rozumiem.
A wiec mam klase Samochod:
public class Samochod
{
public int ID { get; set; }
public string Marka { get; set; }
public string Model { get; set; }
public int RokProdukcji { get; set; }
public string Przebieg { get; set; }
public string Pojemnosc { get; set; }
public string RodzajPaliwa { get; set; }
public string Moc { get; set; }
public string Opis { get; set; }
public decimal Cena { get; set; }
public string ZdjecieUrl { get; set; }
public string MiniaturkaUrl { get; set; }
public bool JestSamochodemTygodnia { get; set; }
}
Intersejs:
interface ISamochodRepository
{
IEnumerable<Samochod> PobierzWszystkieSamochody();
Samochod PobierzSamochodOID(int samochodID);
}
oraz klase MockSamochodRepository, ktora dziedziczy po interfejsie:
public class MockSamochodRepository : ISamochodRepository
{
List<Samochod> samochody;
public MockSamochodRepository()
{
if (samochody == null)
{
ZaladujSamochody();
}
}
private void ZaladujSamochody()
{
samochody = new List<Samochod>
{
new Samochod { ID=1, Marka="Ford", Model="Mustang", RokProdukcji = 2016, Przebieg = "34 000 km", Pojemnosc = "4 900 cm3", RodzajPaliwa= "benzyna", Moc = "421 KM", Opis="Mam do sprzedania Mustanga 5.0 GT V8 421KM. Kupiony w Polskim SALONIE FORDA w Opolu jako NOWY w kwietniu 2016", Cena = 160000M, ZdjecieUrl="/images/fordMustang.jpg", MiniaturkaUrl="/images/fordMustang.jpg", JestSamochodemTygodnia = true},
new Samochod { ID=2, Marka="Audi", Model="S5", RokProdukcji = 2013, Przebieg = "112 000 km", Pojemnosc = "3 000 cm3", RodzajPaliwa= "benzyna", Moc = "280 KM", Opis="Do sprzedania Audi S5 z 2013 roku. Jestem właścicielem tego samochodu od ponad dwóch lat.", Cena = 115000M, ZdjecieUrl="/images/audiS5.jpg", MiniaturkaUrl="/images/audiS5.jpg", JestSamochodemTygodnia = true},
new Samochod { ID=3, Marka="BMV", Model="X4", RokProdukcji = 2017, Przebieg = "4 300 km", Pojemnosc = "1 995 cm3", RodzajPaliwa= "benzyna", Moc = "190 KM", Opis="BMV X4 20d xDrive. Samochód krajowy. Samochód serwisowany. Wystawiamy fakturę VAT 23%. Samochód bezwypadkowy. I właściciel.", Cena = 194000M, ZdjecieUrl="/images/bmvx4.jpg", MiniaturkaUrl="/images/bmvx4.jpg", JestSamochodemTygodnia = true},
new Samochod { ID=4, Marka="Chevrolet", Model="Corvette", RokProdukcji = 1972, Przebieg = "28 000 km", Pojemnosc = "5 700 cm3", RodzajPaliwa= "benzyna", Moc = "300 KM", Opis="Corvetta jest w świetnym stanie wizualnym i mechanicznym. Oczywiście jest ZAREJESTROWANA i ubezpieczona w PL.", Cena = 90000M, ZdjecieUrl="/images/chevroletCorvete.jpg", MiniaturkaUrl="/images/chevroletCorvete.jpg", JestSamochodemTygodnia = true},
new Samochod { ID=5, Marka="Nissan", Model="Skyline", RokProdukcji = 1995, Przebieg = "144 000 km", Pojemnosc = "2 500 cm3", RodzajPaliwa= "benzyna", Moc = "410 KM", Opis="Na sprzedaż trafia moja perełka Nissan Skyline R33.Auto z Japonii sprowadzone do Szwecji, gdzie było przez wiele lat modyfikowane, uczestniczyło w zlotach, zdobywało nagrody, samochód sponsorowany latami przez Sonax Sweden.", Cena = 120000M, ZdjecieUrl="/images/nissan.jpg", MiniaturkaUrl="/images/nissan.jpg", JestSamochodemTygodnia = true},
new Samochod { ID=6, Marka="Jaguar", Model="ZX", RokProdukcji = 2006, Przebieg = "78000 km", Pojemnosc = "5 000 cm3", RodzajPaliwa= "benzyna", Moc = "510 KM", Opis="Przedstawiam Państwu wyjątkowe auto jakim jest Jaguar XKR, a zwłaszcza ten egzemplarz. Jaguar XKR to ikona światowej i brytyjskiem motoryzacji, a przede wszystkim kontynuator legendarnego już Jaguara E-typa, przez wielu uważany za najpiękniejsze auto w historii motoryzacji.", Cena = 200000M, ZdjecieUrl="/images/jaguar.jpg", MiniaturkaUrl="/images/jaguar.jpg", JestSamochodemTygodnia = true}
}
}
public Samochod PobierzSamochodOID(int samochodID)
{
return samochody.FirstOrDefault(s => s.ID == samochodID);
}
public IEnumerable<Samochod> PobierzWszystkieSamochody()
{
return samochody;
}
teraz pytania:
-
jak dzialaja interfejsy i Enumeratory?
-
Co robi metoda PobierzSamochodOID w tym miejscu : (s => s.ID == samochodID) - skad to s i czemu s.ID, jak dziala ten operator =>
-
Co robie metoda typu enumerable<samochod>PobierzWszystkieSamochody i skad te <> nawiasy, jak to dziala i czemu typu samochod
-
Czemu klasa samochod zawiera same akcesory a nie posiada pol do ktorych by sie odwolywaly?
-
Co to jest ten Mock
zwracam uwage ze kod moze byc nie pelny gdy jestem w trakcie przerabiania kursu i na razie go zatrzymalem dopoki dopoty nie zrozumiem co zostalo napisane