public static void Main(string[] args) { Int32 opt, flagCase3 = 0; string linkPornire = "http://datc-rest.azurewebsites.net/breweries"; List <Brewery2B> berarii = new List <Brewery2B>(); var client = new HttpClient(); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Add("Accept", "application/hal+json"); var response = client.GetAsync(linkPornire).Result; var data = response.Content.ReadAsStringAsync().Result; var obj = JsonConvert.DeserializeObject <dynamic>(data); // ce fel de obiect astept <dinamic> = orice obiect RootObjectB rootB = JsonConvert.DeserializeObject <RootObjectB>(data); // RootObject -> clasa la care am mapat obiectul json do { Console.WriteLine("\n1.Afisare tipuri Berarii"); Console.WriteLine("2.Selectare tip Berarie + Afisare beri de acel tip"); Console.WriteLine("3.Afisare Berarii + adaugare intr-o lista"); Console.WriteLine("4.Selectare Berarie + Alege berea"); Console.WriteLine("5.POST la o bere"); Console.WriteLine("6.Iesire"); Console.WriteLine("Optinuea dvs:"); opt = int.Parse(Console.ReadLine()); switch (opt) { case 1: //Afisare tipuri Berarii foreach (Brewery2B berarie in rootB._embedded.brewery) { Console.WriteLine("Id:" + berarie.Id); Console.WriteLine("Name(Style): " + berarie.Id + "." + berarie.Name); } break; case 2: //Selectare tip Berarie + Afisare beri de acel tip RootObject beers = null; dynamic obiect; foreach (Brewery2B berarie in rootB._embedded.brewery) //Afisarea tuturor tipurilor de berarii { Console.WriteLine("Name(Style): " + berarie.Id + "." + berarie.Name); } Console.WriteLine("Ce tip de berarie doriti sa vitizati? Id = "); int id = int.Parse(Console.ReadLine()); // Din linkul de pornire am devoie doar de "http://datc-rest.azurewebsites.net"(primele 34 caractere)iar in continuarea lui concatenez href-uri string linkStilBerarie = linkPornire.Substring(0, 34) + "/styles" + rootB._embedded.brewery[id - 1]._links.beers.href.Substring(10); response = client.GetAsync(linkStilBerarie).Result; data = response.Content.ReadAsStringAsync().Result; Console.WriteLine("Berile de tipul \"" + rootB._embedded.brewery[id - 1].Name + "\"\n"); try { beers = JsonConvert.DeserializeObject <RootObject>(data); foreach (Beer2 b in beers._embedded.beer) { Console.WriteLine(b.Id + ". " + b.Name); } } catch (Exception e) // in caz ca am doar o bere in clasa Links eu am array de Beers!!! { //solved with "dynamic" instead of List<Beer> } break; case 3: //Afisare Berarii +Adaugare in Lista int i = 0; response = client.GetAsync(linkPornire + "/" + (++i).ToString()).Result; while (response.IsSuccessStatusCode == true) //cat timp am un raspuns ..parcurg Api-ul { data = response.Content.ReadAsStringAsync().Result; Brewery2B brewery = JsonConvert.DeserializeObject <Brewery2B>(data); berarii.Add(brewery); //le adaug in lista pentru a le putea folosi mai tarziu Console.WriteLine("Name: " + brewery.Id + "." + brewery.Name); response = client.GetAsync(linkPornire + "/" + (++i).ToString()).Result; } flagCase3 = 1; break; case 4: //Selectare Berarie + Afisare beri + Alege berea RootObject beri = null; i = 0; if (flagCase3 == 1) // se executa doar daca a fost executat inainte case 3 -> unde priemesc date despre { Console.WriteLine("Ce berarie doriti sa vitizati? Id = "); int idBerarie = int.Parse(Console.ReadLine()); response = client.GetAsync(linkPornire + "/" + berarii[idBerarie - 1]._links.beers.href.Substring(10)).Result; //fac get pe o berarie(data de Id) data = response.Content.ReadAsStringAsync().Result; beri = JsonConvert.DeserializeObject <RootObject>(data); foreach (Beer2 b in beri._embedded.beer) //afisarea berariilor din beraria cu Id-ul idBerarie { Console.WriteLine(++i + "-> " + b.Id + ". " + b.Name); } Console.WriteLine("Ce bere doriti? Id bere(primul Id) = "); int idBere = int.Parse(Console.ReadLine()); response = client.GetAsync(linkPornire.Substring(0, 34) + beri._embedded.beer[i - 1]._links.self.href).Result; data = response.Content.ReadAsStringAsync().Result; Beer2 b2 = JsonConvert.DeserializeObject <Beer2>(data); Console.WriteLine("\nBerea dumneavoastra: "); Console.WriteLine(b2); //ToString overrided -> afisare date despre berea dorita } else { Console.WriteLine("Selectati optiunea 3 inainte!!!"); } break; case 5: // Adauga o bere noua POST PostMethod(); break; } } while (opt != 6); Console.ReadLine(); }
static void Main(string[] args) { RootObject obj1 = new RootObject(); int opt = -10; int meniu = 0; string linkGet = "/breweries"; hal.RootObject x; x = getBeerFromStr(linkGet); Console.WriteLine(x._embedded.brewery[0].Name); // while (opt != -10) // { int men1 = 0; do { do { Console.WriteLine("Alegeti actiunea ce doriti sa o efectuati:"); Console.WriteLine("1 : Parcurge beri"); Console.WriteLine("2 : Adauga beri"); Console.WriteLine("3 : Exit"); men1 = Int32.Parse(Console.ReadLine()); } while (men1 == 0 || men1 < 1 || men1 > 3); // oblig utilizatorul sa introduca o optiune valida if (men1 == 3) { Console.WriteLine("Exit!"); return; } else if (men1 == 2) // Am ales sa adaug beri { beers.RootObject a = postJson(0, "0", "0", 0); // obtinerea json-ului nemodificat for (int i = 0; i < a._embedded.beer.Count(); i++) { Console.WriteLine(i + " : " + a._embedded.beer[i].Name); } introdBere(); Console.WriteLine("0 : Inapoi"); Console.WriteLine("1 : Exit"); Console.WriteLine("2 : Introduceti alta bere"); int men2 = Int32.Parse(Console.ReadLine()); if (men2 == 1) { Console.WriteLine("Exit"); return; } else { men1 = men2; } } else if (men1 == 1) { do { Console.WriteLine(); Console.WriteLine("Alegeti un tip de bere din cele de mai jos: "); for (int i = 0; i < x._embedded.brewery.Count; i++) { string s = ""; int i2 = i; s = s + (i2 + 1) + ": "; s = s + x._embedded.brewery[i].Name; Console.WriteLine(s); } Console.WriteLine("0 : Exit"); Console.WriteLine(); opt = Int32.Parse(Console.ReadLine()); Console.WriteLine(opt); if (opt == 0 || opt < 0) { return; } else if ((opt < x._embedded.brewery.Count) && (x._embedded.brewery[opt - 1]._links != null)) { string link1 = x._embedded.brewery[opt - 1]._links.beers.href; Console.WriteLine(link1); SecondLink.RootObject NewStringBeers; NewStringBeers = getBeerFromStr2(link1); for (int i = 0; i < NewStringBeers._embedded.beer.Count; i++) { string s = ""; s = s + i + ": "; s = s + NewStringBeers._embedded.beer[i].Name; Console.WriteLine(s); } Console.WriteLine(); Console.WriteLine("Alegeti berea despre care doriti informatii:"); int informatii = Int32.Parse(Console.ReadLine()); if (informatii < NewStringBeers._embedded.beer.Count) { beersInfo.RootObject info = getBeerInfo(NewStringBeers._embedded.beer[informatii]._links.brewery.href); Console.WriteLine("ID : " + info.Id + " Name " + info.Name); Console.WriteLine(); } else { Console.WriteLine("Valoarea nu este dintre cele din lista\n"); Console.WriteLine(); } } else { if (opt >= x._embedded.brewery.Count) { Console.WriteLine("In afara optiunilor\n"); Console.WriteLine(); } else if (opt == -1) { Console.WriteLine("Exit!\n"); Console.WriteLine(); } } } while (opt != -1); } Console.WriteLine("Gata!"); } while (men1 != 3); Console.ReadLine(); }
static void Main(string[] args) { RootObject obj1 = new RootObject(); string link_get = "/breweries"; All.RootObject abc; abc = Get_Beer_From_Link(link_get); Console.WriteLine(abc._embedded.brewery[0].Name); int optiune; Console.Clear(); do { Console.Write("\n\n"); Console.WriteLine("Alege: "); Console.WriteLine(" Meniu:\n"); Console.WriteLine("1. Vizualizare \n"); Console.WriteLine("2. Adauga bere noua. \n"); Console.WriteLine("3. Exit. \n\n"); optiune = Int32.Parse(Console.ReadLine()); switch (optiune) { case 1: Console.WriteLine("Alegeti un tip de bere"); for (int i = 1; i < abc._embedded.brewery.Count; i++) { string a = ""; a = a + i + ": "; a = a + abc._embedded.brewery[i].Name; Console.WriteLine(a); } int optiune1 = Int32.Parse(Console.ReadLine()); Console.WriteLine(optiune1); if (optiune1 < abc._embedded.brewery.Count) { string legatura = abc._embedded.brewery[optiune1 - 1]._links.beers.href; Console.WriteLine(legatura); Link2.RootObject NewStringBeers; NewStringBeers = Get_Beer_From_Link2(legatura); for (int i = 1; i < NewStringBeers._embedded.beer.Count; i++) { string s = ""; s = s + i + ": "; s = s + NewStringBeers._embedded.beer[i].Name; Console.WriteLine(s); } } break; case 2: beri.RootObject beri_robj = Post(0, "0", "0", 0); for (int i = 0; i < beri_robj._embedded.beer.Count(); i++) { Console.WriteLine(i + " : " + beri_robj._embedded.beer[i].Name); } introduce_Bere(); break; case 3: break; default: Console.WriteLine("Optiune invalida. \n"); break; } }while (optiune != 3); Console.ReadLine(); }