Exemple #1
0
        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));
                }
            }
        }
Exemple #2
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));
                }
            }
        }
Exemple #3
0
 public Wiadomosc(int KlientId, int HurtowaniaId, EnWiadomosc en, List <Towar> tow, double sum)
 {
     IdKlienta  = KlientId;
     idHurtowni = HurtowaniaId;
     wiadomosc  = en;
     t          = tow;
     suma       = sum;
 }
Exemple #4
0
        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);
                }
            }
        }
Exemple #5
0
 public Wiadomosc(EnWiadomosc en, Hurtownia hurtownia)
 {
     wiadomosc = en;
     hurt      = hurtownia;
 }
Exemple #6
0
 public Wiadomosc(EnWiadomosc en, Klient klient)
 {
     wiadomosc = en;
     kli       = klient;
 }