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; } }
// 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!"); } }
// 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!"); } }
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"); } }
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"); } }
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"); } }
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"); } }
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); }
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)); }
private Zahtev KreirajZahtev(string kombinacija, string tekst, int broj) { Zahtev z = new Zahtev(); z.brojReci = broj; z.rec = tekst; z.kombinacija = kombinacija; return(z); }
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; } } }
internal object VratiGrupe() { Zahtev zahtev = new Zahtev(); zahtev.Operacija = Operacija.VratiGrupe; formatter.Serialize(stream, zahtev); Odgovor odgovor = (Odgovor)formatter.Deserialize(stream); return(odgovor.Grupe); }
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); }
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); }
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); }
internal void OdjaviSe() { Zahtev zahtev = new Zahtev { Operacija = Operacija.OdjaviKorisnika }; formater.Serialize(tok, zahtev); klijent.Close(); klijent = null; }
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); }
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}" }); } }
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); }
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); } }
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; }
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); }
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); }
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); }