Example #1
0
        public string Post(Wordlist sanalista)
        {
            if (sanalista.Guesses.Length < 1 || (sanalista.Guesses.Length == 1 && string.IsNullOrWhiteSpace(sanalista.Guesses[0])))
            {
                Game t = new Game()
                {
                    kokonaispisteet = 0, original = sanalista.Original, list = new List <Guess>()
                };
                string     tyhjäpeli = JsonConvert.SerializeObject(t);
                Statistics s         = new Statistics()
                {
                    json = tyhjäpeli, Time = null
                };
                db.Add(s);
                db.SaveChanges();
                //palauta yllä oleva peliToJson klientille
                return(tyhjäpeli);
            }
            else
            {
                sanalista = APIUtils.PoistaTurhat(sanalista); //poistaa turhat merkit
                var      guessesilmantuplia = sanalista.Guesses.Distinct().ToArray();
                Wordlist distinctlist       = new Wordlist()
                {
                    Guesses = guessesilmantuplia, Original = sanalista.Original
                };
                sanalista = distinctlist;
                string json = JsonConvert.SerializeObject(sanalista);
                //APIUtils.RemovePunctuation(json);
                // postaa olio azurefunktiolle
                Scoretable scoresFromAzure = GetScores(json); //tähän tulee azuresta palautuva json (joka on pelkkä numero-array)

                //yhdistä sanat ja pisteet Guess-olioiksi, jotka laitetaan Peli-olioon

                List <Guess> listToPeliClass = new List <Guess>();
                // tee sanoista guess-olioita, jotka tallennetaan listaan.
                int kokonaispisteet = 0;
                for (int i = 0; i < sanalista.Guesses.Length; i++)
                {
                    Guess g = new Guess();

                    g.word = sanalista.Guesses[i];
                    if (sanalista.Guesses[i] == sanalista.Original)
                    {
                        g.score = 0;
                    }

                    else
                    {
                        g.score = scoresFromAzure.ScoreTable[i];
                    }

                    kokonaispisteet += scoresFromAzure.ScoreTable[i];
                    if (kokonaispisteet < 0)
                    {
                        kokonaispisteet = 0;
                    }
                    listToPeliClass.Add(g);
                }

                Game peli = new Game()
                {
                    original        = sanalista.Original,
                    list            = listToPeliClass,
                    kokonaispisteet = kokonaispisteet
                };

                string     peliToJson = JsonConvert.SerializeObject(peli);
                Statistics stat       = new Statistics()
                {
                    json = peliToJson, Time = null
                };
                db.Add(stat);
                db.SaveChanges();
                //palauta yllä oleva peliToJson klientille

                return(peliToJson);
            }
            // parseroi azurefunkion palauttama json peli-olioksi(original, guesses-taulukko)
        }