Exemple #1
0
        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();
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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();
        }