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); }
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); }