Exemple #1
0
        public void ObradaZahteva()
        {
            bool kraj = false;

            try
            {
                while (!kraj)
                {
                    Zahtev zahtev = (Zahtev)formatter.Deserialize(stream);
                    Debug.WriteLine($">>> Server primio: {zahtev.Operacija} at {DateTime.Now.TimeOfDay.ToString()}");
                    Odgovor odgovor = GenerisiOdgovor(zahtev);
                    if (odgovor == null)
                    {
                        continue;
                    }
                    Debug.WriteLine($">>> Server poslao: {odgovor.Poruka} at {DateTime.Now.TimeOfDay.ToString()}");
                    formatter.Serialize(stream, odgovor);
                }
            }
            catch (IOException)
            {
                Debug.WriteLine(">>> Klijent diskonektovan.");
                Kontroler.Instance.korisnici.Remove(this);
                Kontroler.Instance.OnPrijavljen();
            }
            catch (SerializationException)
            {
                Debug.WriteLine(">>> Klijent diskonektovan.");
                Kontroler.Instance.korisnici.Remove(this);
                Kontroler.Instance.OnPrijavljen();
            }
        }
        public Odgovor KreirajZahtev(Operacija operacija, object objekat)
        {
            Zahtev zahtev = new Zahtev(operacija, objekat);

            try
            {
                formatter.Serialize(tok, zahtev);
                return(ObradiOdgovor());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);

                if (e is IOException)
                {
                    e = new Exception("Server je prestao sa radom.");
                }

                if (e is SocketException)
                {
                    e = new Exception("Socket exception.");
                }

                throw e;
            }
        }
Exemple #3
0
        // zavrseno
        internal List <Lokacija> VratiLokacije()
        {
            try
            {
                Zahtev zahtev = new Zahtev {
                    Objekat = new Object(), Operacija = Operacija.VratiLokacije
                };
                formatter.Serialize(stream, zahtev);
                Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);
                switch (odgovor.Signal)
                {
                case Signal.Ok:
                    return((List <Lokacija>)odgovor.Objekat);

                case Signal.Error:
                    return(new List <Lokacija>());
                }
                return(null);
            }
            catch (IOException e)
            {
                Debug.WriteLine(">>> " + e.Message);
                klijent.Close();
                throw new ExceptionServer("Server je zaustavljen!");
            }
        }
Exemple #4
0
        //
        internal bool PonistiRazmenuRobe(RazmenaRobe razmenaRobe)
        {
            try
            {
                Zahtev zahtev = new Zahtev {
                    Objekat = razmenaRobe, Operacija = Operacija.PonistiRazmenuRobe
                };
                formatter.Serialize(stream, zahtev);
                Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);
                switch (odgovor.Signal)
                {
                case Signal.Ok:
                    return(true);

                case Signal.Error:
                    return(false);
                }
                return(false);
            }
            catch (IOException e)
            {
                Debug.WriteLine(">>> " + e.Message);
                klijent.Close();
                throw new ExceptionServer("Server je zaustavljen!");
            }
        }
Exemple #5
0
        internal bool DodajRecenziju(Recenzija recenzija)
        {
            try
            {
                Zahtev zahtev = new Zahtev {
                    Objekat = recenzija, Operacija = Operacija.DodajRecenziju
                };
                formater.Serialize(tok, zahtev);
                Odgovor odgovor = (Odgovor)formater.Deserialize(tok);
                switch (odgovor.Signal)
                {
                case Signal.Ok:
                    return((bool)odgovor.Objekat);

                case Signal.Krajserver:
                    Zavrsi();
                    throw new Exception("Server je prekinuo rad");

                case Signal.Error:
                    throw new Exception("Server nije dodao kurs");
                }
                return(false);
            }
            catch (Exception)
            {
                Zavrsi();
                throw new Exception("Nije moguca komunikacija sa serverom");
            }
        }
Exemple #6
0
        internal bool ObrisiKurs(Kurs kurs)
        {
            try
            {
                Zahtev zahtev = new Zahtev {
                    Objekat = kurs, Operacija = Operacija.ObrisiKurs
                };
                formater.Serialize(tok, zahtev);
                Odgovor odg = (Odgovor)formater.Deserialize(tok);
                switch (odg.Signal)
                {
                case Signal.Ok:
                    return((bool)odg.Objekat);

                case Signal.Krajserver:
                    Zavrsi();
                    throw new Exception("Server je prekinuo rad");

                case Signal.Error:
                    throw new Exception("Server nije obrisao kurs");
                }
                return(false);
            }
            catch (Exception)
            {
                Zavrsi();
                throw new Exception("Nije moguca komunikacija sa serverom");
            }
        }
Exemple #7
0
        internal object VratiUloge(Kurs kurs)
        {
            try
            {
                Zahtev zahtev = new Zahtev {
                    Objekat = kurs, Operacija = Operacija.VratiUloge
                };
                formater.Serialize(tok, zahtev);
                Odgovor odg = (Odgovor)formater.Deserialize(tok);
                switch (odg.Signal)
                {
                case Signal.Ok:
                    return((List <Uloga>)odg.Objekat);

                case Signal.Krajserver:
                    Zavrsi();
                    throw new Exception("Server je prekinuo rad");

                case Signal.Error:
                    throw new Exception("Server nije pronasao Glumce");
                }
                return(null);
            }
            catch (Exception)
            {
                Zavrsi();
                throw new Exception("Nije moguca komunikacija sa serverom");
            }
        }
Exemple #8
0
        internal bool IzmeniTehnologiju(Tehnologija tehnologija)
        {
            try
            {
                Zahtev zahtev = new Zahtev {
                    Objekat = tehnologija, Operacija = Operacija.IzmeniTehnologiju
                };
                formater.Serialize(tok, zahtev);
                Odgovor odg = (Odgovor)formater.Deserialize(tok);
                switch (odg.Signal)
                {
                case Signal.Ok:
                    return((bool)odg.Objekat);

                case Signal.Krajserver:
                    Zavrsi();
                    throw new Exception("Server je prekinuo rad");

                case Signal.Error:
                    throw new Exception("Server nije izmenio tehnologiju");
                }
                return(false);
            }
            catch (Exception)
            {
                Zavrsi();
                throw new Exception("Nije moguca komunikacija sa serverom");
            }
        }
Exemple #9
0
        private Odgovor KreirajOdgovor(Zahtev zahtev)
        {
            switch (zahtev.Operacija)
            {
            case Operacija.EvidencijaRezultata: return(EvidencijaRezultata(zahtev.Objekat));

            case Operacija.Izmeni: return(Izmeni(zahtev.Objekat));

            case Operacija.KreirajPlivaca: return(KreirajPlivaca(zahtev.Objekat));

            case Operacija.KreirajTakmicenje: return(KreirajTakmicenje(zahtev.Objekat));

            case Operacija.Login: return(Login(zahtev.Objekat));

            case Operacija.Obrisi: return(Obrisi(zahtev.Objekat));

            case Operacija.Pretraga: return(Pretraga(zahtev.Objekat));

            case Operacija.SacuvajNovePrijave: return(SacuvajNovePrijave(zahtev.Objekat));

            case Operacija.UcitajListuPlivaca: return(UcitajListuPlivaca(zahtev.Objekat));

            case Operacija.UcitajListuPrijava: return(UcitajListuPrijava(zahtev.Objekat));

            case Operacija.UcitajListuTakmicenja: return(UcitajListuTakmicenja(zahtev.Objekat));

            case Operacija.VratiListu: return(VratiListu(zahtev.Objekat));

            default:
                Odgovor o = new Odgovor();
                o.Poruka = "Nepostojeca operacija zahteva!";
                o.Status = false;
                return(o);
            }
        }
        public object VratiZahteve()
        {
            SqlCommand command = connection.CreateCommand();

            command.CommandText = $"select * from zahtev where Status='neobradjen'";

            SqlDataReader reader  = command.ExecuteReader();
            List <Zahtev> zahtevi = new List <Zahtev>();

            while (reader.Read())
            {
                Zahtev z = new Zahtev
                {
                    Status = (string)reader["Status"],
                    //DatumVremeRezultata = (DateTime)reader["DatumVremeRezultata"],
                    DatumVremeTestiranja = (DateTime)reader["DatumVremeTestiranja"],
                    Hitno = (bool)reader["Hitno"],
                    //LaborantID = (int)reader["LaborantID"],
                    LaboratorijaID = (int)reader["LaboratorijaID"],
                    //Napomena = (string)reader["Napomena"],
                    OsiguranoLiceID = (int)reader["OsiguranoLiceID"],
                    //Rezultat = (string)reader["Rezultat"],
                    //Tip = (string)reader["Tip"],
                    ZahtevID = (int)reader["ZahtevID"]
                };
                zahtevi.Add(z);
            }
            reader.Close();

            return(zahtevi);
        }
Exemple #11
0
        public string Convert(string stringRequest)
        {
            Zahtev zahtev = new Zahtev();

            string[] delovi = stringRequest.Split('/');
            String   metod  = delovi[0].ToUpper().Trim();

            zahtev.Verb = delovi[0];

            if (metod == "GET")
            {
                //GET/Resurs
                zahtev.Noun = "/" + delovi[1];
                //GET/Resurs/1
                if (delovi.Length > 2 && !String.IsNullOrEmpty(delovi[2]))
                {
                    zahtev.Noun = "/" + delovi[1] + "/" + delovi[2];
                }

                //get/Resurs/1/Naziv='pera'/
                //get/Resurs/1/Naziv='pera'
                if (delovi.Length >= 4)
                {
                    zahtev.Query = delovi[3];
                }
                //get/Resurs/1/Naziv='resurs'/Id;Naziv
                //get/Resurs//Naziv='resurs'/Id;Naziv;Opis
                //get/Resurs/1//Id;Naziv;surname
                if (delovi.Length == 5)
                {
                    zahtev.Fields = delovi[4];
                }
            }
            else if (metod == "POST")
            {
                zahtev.Noun  = "/" + delovi[1];
                zahtev.Query = delovi[2];
            }
            else if (metod == "PATCH")
            {
                zahtev.Noun = "/" + delovi[1] + "/" + delovi[2];
                if (delovi.Length == 5)
                {
                    zahtev.Fields = delovi[4];
                }
                zahtev.Query = delovi[3];
            }
            else if (metod == "DELETE")
            {
                zahtev.Noun = "/" + delovi[1] + "/" + delovi[2];
            }
            else
            {
                return(null);
            }

            return(JsonConvert.SerializeObject(zahtev, Formatting.Indented));
        }
Exemple #12
0
        private Zahtev KreirajZahtev(string kombinacija, string tekst, int broj)
        {
            Zahtev z = new Zahtev();

            z.brojReci    = broj;
            z.rec         = tekst;
            z.kombinacija = kombinacija;
            return(z);
        }
Exemple #13
0
        public void ObradiZahtev()
        {
            PosaljiOba(Kontroler.Instance.KreirajOdgovor("Igrac pocinje!", 1, Igrac.Ja));
            bool kraj       = false;
            bool specPoruka = false;
            int  brojac     = 0;

            while (!kraj)
            {
                try
                {
                    if (!specPoruka)
                    {
                        Thread.Sleep(2000);
                        PosaljiJednom(tok1, Kontroler.Instance.KreirajOdgovor("Vi ste na potezu", 1, Igrac.Ja));
                        PosaljiJednom(tok2, Kontroler.Instance.KreirajOdgovor("Protivnik je na potezu", 1, Igrac.Ja));
                        if (brojac == 0)
                        {
                            PosaljiOba(Kontroler.Instance.KreirajOdgovor(Kontroler.Instance.FormirajString(0, 0, igrac1.Ime, igrac2.Ime), 1, Igrac.Rezultat));
                        }
                        specPoruka = true;
                    }
                    Zahtev poruka = (Zahtev)formatter.Deserialize(tok1);
                    if (poruka.kombinacija == "isteklo")
                    {
                        SmenaIgraca(ref brojac, ref specPoruka);
                        if (brojac == 2)
                        {
                            return;
                        }

                        continue;
                    }
                    PosaljiJednom(tok2, Kontroler.Instance.KreirajOdgovor(poruka.kombinacija, Kontroler.Instance.ProveraBrojText(brojPoena), Igrac.Kombinacija));
                    string tekst = Kontroler.Instance.Provera(poruka, ref brojPoena, komb);
                    PosaljiJednom(tok1, Kontroler.Instance.KreirajOdgovor(tekst, 1, Igrac.Ja));
                    PosaljiJednom(tok2, Kontroler.Instance.KreirajOdgovor("Protivnik je ostvario sledeci rezultat:\n" + tekst, 1, Igrac.Protivnik));

                    if (tekst.Contains("Cestitamo") || brojPoena == 0)
                    {
                        SmenaIgraca(ref brojac, ref specPoruka);
                        if (brojac == 2)
                        {
                            return;
                        }
                    }
                }
                catch (Exception)
                {
                    kraj = true;
                    igrac1.Soket.Close();
                    igrac2.Soket.Close();
                    return;
                }
            }
        }
Exemple #14
0
        internal object VratiGrupe()
        {
            Zahtev zahtev = new Zahtev();

            zahtev.Operacija = Operacija.VratiGrupe;
            formatter.Serialize(stream, zahtev);
            Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);

            return(odgovor.Grupe);
        }
Exemple #15
0
        internal List <Trener> PrikaziTrenere()
        {
            Zahtev zahtev = new Zahtev();

            zahtev.Operacija = Operacija.VratiTrenere;
            formatter.Serialize(stream, zahtev);
            Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);

            return(odgovor.ListaTrenera);
        }
Exemple #16
0
        public void TestPOST_Success()
        {
            StringToJSONConverter converter = new StringToJSONConverter();

            string json         = converter.Convert("POST/Resources/1");
            Zahtev zahtev       = new Zahtev("POST", "/Resources", "1", null);
            string expectedJson = JsonConvert.SerializeObject(zahtev, Formatting.Indented);

            Assert.AreEqual(json, expectedJson);
        }
Exemple #17
0
        public void TestPATCH_Success()
        {
            StringToJSONConverter converter = new StringToJSONConverter();

            string json         = converter.Convert("PATCH/Resources/1/query/fields");
            Zahtev zahtev       = new Zahtev("PATCH", "/Resources/1", "query", "fields");
            string expectedJson = JsonConvert.SerializeObject(zahtev, Formatting.Indented);

            Assert.AreEqual(json, expectedJson);
        }
Exemple #18
0
        internal void OdjaviSe()
        {
            Zahtev zahtev = new Zahtev {
                Operacija = Operacija.OdjaviKorisnika
            };

            formater.Serialize(tok, zahtev);
            klijent.Close();
            klijent = null;
        }
Exemple #19
0
        public void TestGet_Success2()
        {
            StringToJSONConverter converter = new StringToJSONConverter();

            string json         = converter.Convert("GET/Resources/1/name='Pera'/name;surname");
            Zahtev zahtev       = new Zahtev("GET", "/Resources/1", "name='Pera'", "name;surname");
            string expectedJson = JsonConvert.SerializeObject(zahtev, Formatting.Indented);

            Assert.AreEqual(json, expectedJson);
        }
Exemple #20
0
        public List <VrstaGrupe> VratiVrsteGrupa()
        {
            Zahtev zahtev = new Zahtev();

            zahtev.Operacija = Operacija.VratiVrste;
            formatter.Serialize(stream, zahtev);
            Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);

            return(odgovor.VrstaGrupe);
        }
        private async Task DodajAktivnost(Zahtev zahtev)
        {
            var aktivnost = new Aktivnost
            {
                IDProjekta    = Helper.TrenutniProjekat.IDProjekta,
                NazivProjekta = Helper.TrenutniProjekat.NazivProjekta,
                Poruka        = $"{Helper.TrenutniKorisnik.PunoIme} je odgovorio na zahtev od {zahtev.KorisnickoImePosiljaoca} ({zahtev}) sa {((bool)zahtev.Odgovor ? "DA" : "NE")}"
            };

            await new EFCoreDataProvider().AddAktivnostAsync(aktivnost);
        }
        public async Task <int> UpdateZahtevAsync(Zahtev zahtev)
        {
            using (ExtentBazaEntities _context = new ExtentBazaEntities())
            {
                var obj = await _context.Zahtev.FirstOrDefaultAsync(a => a.IDZahteva == zahtev.IDZahteva);

                obj.Naslov  = zahtev.Naslov;
                obj.Poruka  = zahtev.Poruka;
                obj.Odgovor = zahtev.Odgovor;
                return(await _context.SaveChangesAsync());
            }
        }
        public async Task AddZahtevAsync(Zahtev zahtev)
        {
            using (ExtentBazaEntities _context = new ExtentBazaEntities())
            {
                _context.Zahtev.Add(zahtev);
                await _context.SaveChangesAsync();

                // Dodaj aktivnost o tome da je kreiran novi zahtev

                await AddAktivnostAsync(new Aktivnost { IDProjekta = zahtev.IDProjekta, Poruka = $"{zahtev.KorisnickoImePosiljaoca} je poslao zahtev korisniku {zahtev.KorisnickoImePrimaoca} sa porukom: {zahtev.Poruka}" });
            }
        }
Exemple #24
0
        internal Korisnik Prijava(string korIme, string pass)
        {
            Korisnik k = new Korisnik {
                KorisnickoIme = korIme, Password = pass
            };
            Zahtev z = new Zahtev {
                Operacija = Operacija.Login, Objekat = k
            };

            formatter.Serialize(stream, z);
            Odgovor odg = ProcitajOdgovor();

            return((Korisnik)odg.Objekat);
        }
Exemple #25
0
        public void PosaljiPoruku(string kombinacija, string tekst, int broj)
        {
            try
            {
                Zahtev z = KreirajZahtev(kombinacija, tekst, broj);
                formatter.Serialize(tok, z);
            }
            catch (Exception)
            {
                klijentskiSocket.Close();

                Environment.Exit(0);
            }
        }
Exemple #26
0
        internal void Pretraga(TextBox txtPretraga, DataGridView dgvProizvodi)
        {
            string criteria = txtPretraga.Text;
            Zahtev z        = new Zahtev
            {
                Operacija = Operacija.PretraziProizvode,
                Objekat   = criteria
            };

            Komunikacija.Instance.PosaljiZahtev(z);
            Odgovor o = Komunikacija.Instance.ProcitajOdgovor();

            dgvProizvodi.DataSource = (List <Proizvod>)o.Objekat;
        }
Exemple #27
0
        internal bool SacuvajSveTermine(BindingList <Termin> termini)
        {
            Zahtev zahtev = new Zahtev();

            zahtev.Operacija = Operacija.SacuvajTermine;
            zahtev.Termini   = termini;
            formatter.Serialize(stream, zahtev);
            Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);

            if (odgovor.Signal == Signal.UspenoDodatiTermini)
            {
                return(true);
            }
            return(false);
        }
        public string Provera(Zahtev z, ref int brojPoena, string komb)
        {
            string[] niz = z.kombinacija.Split(' ');
            niz[3]     = z.rec.TrimEnd();
            brojPoena -= 2;
            int    broj             = 0;
            int    proveraPogodjeno = ProveraPogodjeno(niz, komb);
            string tekst            = ProveraTacno(niz, ref broj, komb) + "Nije pogodjeno mesto: " + (proveraPogodjeno - broj) + "\n";

            if (tekst.Contains("Gotova igra"))
            {
                tekst = $"Pogodili ste! Cestitamo! \n";
            }
            return(tekst);
        }
Exemple #29
0
        public bool SacuvajGrupu(VrstaGrupe vrstaGrupe)
        {
            Zahtev zahtev = new Zahtev();

            zahtev.Operacija  = Operacija.SacuvajGrupu;
            zahtev.VrstaGrupe = vrstaGrupe;
            formatter.Serialize(stream, zahtev);
            Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);

            if (odgovor.Signal == Signal.GrupaUspesnoDodata)
            {
                return(true);
            }
            return(false);
        }
Exemple #30
0
        internal bool UbaciClana(Clan clan)
        {
            Zahtev zahtev = new Zahtev();

            zahtev.Operacija = Operacija.UbaciClana;
            zahtev.Clan      = clan;
            formatter.Serialize(stream, zahtev);
            Odgovor odgovor = (Odgovor)formatter.Deserialize(stream);

            if (odgovor.Signal == Signal.ClanUspesnoDodat)
            {
                return(true);
            }
            return(false);
        }