public void znajdz(EnWiadomosc wiad) { lock (this) { if (wiad == EnWiadomosc.ZamowPriorytet) { Console.Write("Klinet: " + id + " chce naprawić priorytetowo części: "); } else { Console.Write("Klinet: " + id + " chce naprawić normalnie części: "); } for (int i = 0; i < towary.Count(); i++) { Console.Write(towary[i].nazwa + ", "); } Console.Write("\n"); if (wiad == EnWiadomosc.ZamowPriorytet) { Broker.wiadomosci.Enqueue(new Wiadomosc(id, 0, EnWiadomosc.ZnajdzPriorytetowo, towary, 0)); } else { Broker.wiadomosci.Enqueue(new Wiadomosc(id, 0, EnWiadomosc.ZnajdzNormalnie, towary, 0)); } } }
public void znajdz(List <Towar> tow, int idklient, EnWiadomosc wiad) { foreach (Hurtownia h in Hurtownie) { if (wiad == EnWiadomosc.ZnajdzPriorytetowo) { h.wiadomosci.Enqueue(new Wiadomosc(idklient, h.id, EnWiadomosc.ZnajdzPriorytetowo, tow, 0)); } else if (wiad == EnWiadomosc.ZnajdzNormalnie) { h.wiadomosci.Enqueue(new Wiadomosc(idklient, h.id, EnWiadomosc.ZnajdzNormalnie, tow, 0)); } } Thread.Sleep(200); int ile = wiadomosci.Count; int niezn = 0; int idhurt = -1; double suma = -1; for (int i = 0; i < ile; i++) { Wiadomosc w = wiadomosci.Dequeue(); if (w.wiadomosc == EnWiadomosc.Znalazlem && w.IdKlienta == idklient) { if (suma == -1) { suma = w.suma; idhurt = w.idHurtowni; } else if (suma > w.suma) { suma = w.suma; idhurt = w.idHurtowni; } } else if (w.wiadomosc == EnWiadomosc.NieZnalazlem && w.IdKlienta == idklient) { } else { wiadomosci.Enqueue(w); niezn++; } if (niezn == ile) { Console.WriteLine("Hurtownie nie znalazły części dla klienta " + idklient); } } foreach (Hurtownia h in Hurtownie) { if (h.id == idhurt) { h.wiadomosci.Enqueue(new Wiadomosc(idklient, h.id, EnWiadomosc.Sprzedaj, tow, suma)); } } }
public Wiadomosc(int KlientId, int HurtowaniaId, EnWiadomosc en, List <Towar> tow, double sum) { IdKlienta = KlientId; idHurtowni = HurtowaniaId; wiadomosc = en; t = tow; suma = sum; }
public double znajdzListeTowarow(List <Towar> Ltowar, EnWiadomosc wiad) { lock (tow) { double suma = 0; int ile = 0; foreach (Towar lt in Ltowar) { int nzn = 0; foreach (KeyValuePair <Towar, TowarInfor> t in tow) { if (t.Key.nazwa.Equals(lt.nazwa)) { //Console.WriteLine("Hurtowanie " + id + " " + lt.nazwa + " " + t.cena); suma += t.Value.cena; ile++; break; } else { nzn++; } } if (wiad == EnWiadomosc.ZnajdzPriorytetowo) { if (nzn == tow.Count()) { double prior = Program.rand.Next(1, 100) * 0.3; Console.WriteLine("Hurtownia: " + id + " może zamówić część " + lt.nazwa + " za " + prior); suma += prior; ile++; } } } if (ile != Ltowar.Count()) { return(0); } else { suma *= robocizna; return(suma); } } }
public Wiadomosc(EnWiadomosc en, Hurtownia hurtownia) { wiadomosc = en; hurt = hurtownia; }
public Wiadomosc(EnWiadomosc en, Klient klient) { wiadomosc = en; kli = klient; }