コード例 #1
0
        public bool DislajkujTemu([FromBody] TemaLikeDislikeRequest temaRequest)
        {
            var          dataFile1 = HttpContext.Current.Server.MapPath("~/App_Data/lajkDislajkTeme.txt");
            FileStream   stream1   = new FileStream(dataFile1, FileMode.Open);
            StreamReader sr1       = new StreamReader(stream1);

            List <string> listaSvih = new List <string>();

            string[] temaRequestSplit    = temaRequest.PunNazivTeme.Split('-');
            string   podforumKomePripada = temaRequestSplit[0];
            string   naslovTeme          = temaRequestSplit[1];

            string line    = "";
            bool   changed = false;

            while ((line = sr1.ReadLine()) != null)
            {
                bool isLiked = false;

                string[] splitter = line.Split(';');
                // U slucaju da je vec dislajkovao tu temu vrati false
                if (splitter[0] == temaRequest.KoVrsiAkciju && splitter[1] == temaRequest.PunNazivTeme && splitter[2] == "dislike")
                {
                    sr1.Close();
                    stream1.Close();
                    return(false);
                }
                else if (splitter[0] == temaRequest.KoVrsiAkciju && splitter[1] == temaRequest.PunNazivTeme && splitter[2] == "like")
                {
                    isLiked = true;
                    changed = true;
                    listaSvih.Add(temaRequest.KoVrsiAkciju + ";" + temaRequest.PunNazivTeme + ";dislike");
                }
                if (!isLiked)
                {
                    listaSvih.Add(line);
                }
            }
            sr1.Close();
            stream1.Close();

            if (!changed)
            {
                var          dataFile2 = HttpContext.Current.Server.MapPath("~/App_Data/lajkDislajkTeme.txt");
                FileStream   stream2   = new FileStream(dataFile2, FileMode.Append, FileAccess.Write);
                StreamWriter sw1       = new StreamWriter(stream2);

                sw1.WriteLine(temaRequest.KoVrsiAkciju + ";" + temaRequest.PunNazivTeme + ";dislike");
                sw1.Close();
                stream2.Close();
            }
            else
            {
                var          dataFile3 = HttpContext.Current.Server.MapPath("~/App_Data/lajkDislajkTeme.txt");
                FileStream   stream3   = new FileStream(dataFile3, FileMode.Create, FileAccess.Write);
                StreamWriter sw2       = new StreamWriter(stream3);


                foreach (string lajkDislajk in listaSvih)
                {
                    sw2.WriteLine(lajkDislajk);
                }
                sw2.Close();
                stream3.Close();
            }
            // Nakon sto sam dodao u .txt fajl ko je dislajkovao , sada nadji tu temu i povecaj joj brojDislajkovanih



            var          dataFile4 = HttpContext.Current.Server.MapPath("~/App_Data/teme.txt");
            FileStream   stream4   = new FileStream(dataFile4, FileMode.Open);
            StreamReader sr2       = new StreamReader(stream4);

            List <string> sveTeme = new List <string>();

            string tema = "";

            while ((tema = sr2.ReadLine()) != null)
            {
                bool nadjena = false;

                string[] temaTokens = tema.Split(';');
                if (temaTokens[0] == podforumKomePripada && temaTokens[1] == naslovTeme)
                {
                    // nasli smo temu kojoj treba povecati negativne glasove
                    nadjena = true;
                    int brojTrenutnoPozitivnih = Int32.Parse(temaTokens[6]);
                    int brojTrenutnoNegativnih = Int32.Parse(temaTokens[7]);
                    brojTrenutnoNegativnih++;
                    if (changed)
                    {
                        brojTrenutnoPozitivnih--;
                    }
                    sveTeme.Add(temaTokens[0] + ";" + temaTokens[1] + ";" + temaTokens[2] + ";" + temaTokens[3] + ";" + temaTokens[4] + ";" + temaTokens[5] + ";" + brojTrenutnoPozitivnih.ToString() + ";" + brojTrenutnoNegativnih.ToString() + ";" + temaTokens[8]);
                }
                if (!nadjena)
                {
                    sveTeme.Add(tema);
                }
            }
            sr2.Close();
            stream4.Close();


            var          dataFile5 = HttpContext.Current.Server.MapPath("~/App_Data/teme.txt");
            FileStream   stream5   = new FileStream(dataFile5, FileMode.Create, FileAccess.Write);
            StreamWriter sw3       = new StreamWriter(stream5);


            foreach (string linijaTeme in sveTeme)
            {
                sw3.WriteLine(linijaTeme);
            }
            sw3.Close();
            stream5.Close();

            return(true);
        }
コード例 #2
0
ファイル: TemeController.cs プロジェクト: ognjengt/WebForum
        public bool ThumbsDown([FromBody] TemaLikeDislikeRequest temaRequest)
        {
            StreamReader sr = dbOperater.getReader("lajkDislajkTeme.txt");

            List <string> listaSvih = new List <string>();

            string[] temaRequestSplit    = temaRequest.PunNazivTeme.Split('-');
            string   podforumKomePripada = temaRequestSplit[0];
            string   naslovTeme          = temaRequestSplit[1];

            string line    = "";
            bool   changed = false;

            while ((line = sr.ReadLine()) != null)
            {
                bool isLiked = false;

                string[] splitter = line.Split(';');
                // U slucaju da je vec dislajkovao tu temu vrati false
                if (splitter[0] == temaRequest.KoVrsiAkciju && splitter[1] == temaRequest.PunNazivTeme && splitter[2] == "dislike")
                {
                    sr.Close();
                    dbOperater.Reader.Close();
                    return(false);
                }
                else if (splitter[0] == temaRequest.KoVrsiAkciju && splitter[1] == temaRequest.PunNazivTeme && splitter[2] == "like")
                {
                    isLiked = true;
                    changed = true;
                    listaSvih.Add(temaRequest.KoVrsiAkciju + ";" + temaRequest.PunNazivTeme + ";dislike");
                }
                if (!isLiked)
                {
                    listaSvih.Add(line);
                }
            }
            sr.Close();
            dbOperater.Reader.Close();

            if (!changed)
            {
                StreamWriter sw = dbOperater.getWriter("lajkDislajkTeme.txt");

                sw.WriteLine(temaRequest.KoVrsiAkciju + ";" + temaRequest.PunNazivTeme + ";dislike");
                sw.Close();
                dbOperater.Writer.Close();
            }
            else
            {
                StreamWriter sw = dbOperater.getBulkWriter("lajkDislajkTeme.txt");

                foreach (string lajkDislajk in listaSvih)
                {
                    sw.WriteLine(lajkDislajk);
                }
                sw.Close();
                dbOperater.Writer.Close();
            }
            // Nakon sto sam dodao u .txt fajl ko je dislajkovao , sada nadji tu temu i povecaj joj brojDislajkovanih
            StreamReader  temeReader = dbOperater.getReader("teme.txt");
            List <string> sveTeme    = new List <string>();

            string tema = "";

            while ((tema = temeReader.ReadLine()) != null)
            {
                bool nadjena = false;

                string[] temaTokens = tema.Split(';');
                if (temaTokens[0] == podforumKomePripada && temaTokens[1] == naslovTeme)
                {
                    // nasli smo temu kojoj treba povecati negativne glasove
                    nadjena = true;
                    int brojTrenutnoPozitivnih = Int32.Parse(temaTokens[6]);
                    int brojTrenutnoNegativnih = Int32.Parse(temaTokens[7]);
                    brojTrenutnoNegativnih++;
                    if (changed)
                    {
                        brojTrenutnoPozitivnih--;
                    }
                    sveTeme.Add(temaTokens[0] + ";" + temaTokens[1] + ";" + temaTokens[2] + ";" + temaTokens[3] + ";" + temaTokens[4] + ";" + temaTokens[5] + ";" + brojTrenutnoPozitivnih.ToString() + ";" + brojTrenutnoNegativnih.ToString() + ";" + temaTokens[8]);
                }
                if (!nadjena)
                {
                    sveTeme.Add(tema);
                }
            }
            temeReader.Close();
            dbOperater.Reader.Close();

            StreamWriter temeWriter = dbOperater.getBulkWriter("teme.txt");

            foreach (string linijaTeme in sveTeme)
            {
                temeWriter.WriteLine(linijaTeme);
            }
            temeWriter.Close();
            dbOperater.Writer.Close();

            return(true);
        }