public PitanjeModel VratiPitanjaKorisnikaModel(PitanjeDTO pitanje) { PitanjeModel pit = new PitanjeModel() { Text = pitanje.Tekst, Id = pitanje.Id, DatumVreme = pitanje.DatumVreme, AutorId = pitanje.KorisnikId, OblastId = pitanje.OblastId, NaslovPitanja = pitanje.Naslov, }; foreach (var tag in Pitanja.VratiSveTagovePitanja(pit.Id)) { TagModel tg = new TagModel() { TagID = tag.Id, Ime = tag.Ime, TagIme = tag.TagIme, Opis = tag.Opis }; pit.Tagovi.Add(tg); } return(pit); }
public static List <TagModel> TagoviPitanja(int idPitanja) { List <TagDTO> Tagovi = Pitanja.VratiSveTagovePitanja(idPitanja); List <TagModel> ModelTagova = new List <TagModel>(); foreach (var tag in Tagovi) { TagModel tg = new TagModel() { Ime = tag.Ime, TagIme = tag.TagIme, Opis = tag.Opis, TagID = tag.Id, }; ModelTagova.Add(tg); } return(ModelTagova); }
public static List <PitanjeModel> PitanjaPoTagovima(string tagovi) { List <PitanjeDTO> PronadjenaPitanja = new List <PitanjeDTO>(); List <PitanjeModel> PitanjaZaVracanje = new List <PitanjeModel>(); string primljeniTagovi = tagovi; if (primljeniTagovi[0] == '#') { //ovde smo ako pretrazujemo po tagovima char[] separatingChar = { '#', ' ' }; string[] nizTagova = primljeniTagovi.Split(separatingChar, System.StringSplitOptions.RemoveEmptyEntries); List <PitanjeDTO> pitanja = Pitanja.VratiSvaPitanjaTaga(nizTagova[0]); string[] tagoviPitanja = new string[pitanja.Count]; for (int k = 0; k < tagoviPitanja.Length; k++) { tagoviPitanja[k] = ""; } int i = 0; foreach (var pitanje in pitanja) { List <TagDTO> Tagovi = Pitanja.VratiSveTagovePitanja(pitanje.Id); foreach (var tag in Tagovi) { tagoviPitanja[i] = "" + tagoviPitanja[i] + tag.TagIme + " "; } i++; } //treba da konvertujemo listu pitanja u niz pitanja PitanjeDTO[] pitanjaNiz = pitanja.ToArray(); int j = 0; for (int petlja = 0; petlja < tagoviPitanja.Length; petlja++) { int brojac = 0; foreach (var tag in nizTagova) { if (tagoviPitanja[j].Contains(tag)) { brojac++; if (brojac == nizTagova.Length) { PronadjenaPitanja.Add(pitanjaNiz[j]); } } } j++; } foreach (var pit in PronadjenaPitanja) { KorisnikDTO autorPitanja = Korisnici.Procitaj(pit.KorisnikId); List <OdgovorDTO> odgovori = Odgovori.VratiSve(pit.Id); PitanjeModel p = new PitanjeModel() { Id = pit.Id, DatumVreme = pit.DatumVreme, Text = pit.Tekst, AutorPitanja = autorPitanja.Ime, AutorId = autorPitanja.Id, NaslovPitanja = pit.Naslov, Tagovi = TagoviController.TagoviPitanja(pit.Id), BrojOdgovora = odgovori.Count, }; PitanjaZaVracanje.Add(p); } return(PitanjaZaVracanje); } else { //ukoliko je poceo da unosi korisnik nesto razlicito od taga, verovatno je pokusao da trazi po imenu korisnika return(null); } }
public ActionResult PitanjeIOdgovori1(int idPitanja) { PitanjaOdgovoriKomentariModel model = new PitanjaOdgovoriKomentariModel(); PitanjeModel pitanje = new PitanjeModel(); List <OdgovorDTO> odgovori = Odgovori.VratiSve(pitanje.Id); //u listi sada imamo sve odgovore, ostaje da njihove parametre prosledimo modelu int i = 0; OdgovoriModel odgovoriModel = new OdgovoriModel(); foreach (var odg in odgovori) { odgovoriModel.ListaOdgovora[i].Text = odg.Tekst; odgovoriModel.ListaOdgovora[i].Pozitivno = odg.Plus; odgovoriModel.ListaOdgovora[i].Negativno = odg.Minus; odgovoriModel.ListaOdgovora[i].Id = odg.Id; odgovoriModel.ListaOdgovora[i].AutorId = odg.KorisnikId; } PitanjeDTO pit = Pitanja.Procitaj(idPitanja); //PitanjeDTO pit2 = Pitanja.Nadji(pit.Naslov); List <TagDTO> tagovi = Pitanja.VratiSveTagovePitanja(idPitanja); KorisnikDTO kor = Korisnici.Procitaj(pit.KorisnikId); OblastDTO obl = Oblasti.Procitaj(pit.OblastId); PredmetDTO pred = Predmeti.Procitaj(obl.PredmetId); pitanje.Text = pit.Tekst; pitanje.AutorPitanja = kor.Ime; pitanje.DatumVreme = pit.DatumVreme; pitanje.Oblast = obl.Ime; pitanje.OblastId = pit.OblastId; pitanje.AutorId = kor.Id; pitanje.NaslovPitanja = pit.Naslov; pitanje.Id = pit.Id; pitanje.SlikaAutora = kor.Slika; pitanje.ProfesorId = pred.ZaduzenId; foreach (var tag in tagovi) { TagModel tag1 = new TagModel() { TagIme = tag.TagIme, Ime = tag.Ime, Opis = tag.Opis }; pitanje.Tagovi.Add(tag1); } string slicniTagovi = ""; int prom = 0; foreach (var tag in tagovi) { if (prom < 2) { slicniTagovi = slicniTagovi + "#" + tag.TagIme + " "; } prom++; } model.SlicnaPitanja = OblastiController.PitanjaPoTagovima(slicniTagovi); model.Pitanje = pitanje; foreach (var odg in Odgovori.VratiSve(pitanje.Id)) { KorisnikDTO kor1 = Korisnici.Procitaj(odg.KorisnikId); OdgovorModel odg1 = new OdgovorModel { Odobreno = odg.Odobreno, DatumVreme = odg.DatumVreme, Negativno = odg.Minus, Pozitivno = odg.Plus, Text = odg.Tekst, AutorOdgovora = kor1.Ime, AutorId = kor1.Id, Id = odg.Id, Komentari = NapraviListuKomentara(odg.Id), }; model.Odgovori.Add(odg1); } var broj = pitanje.Tagovi.Count; foreach (var tag in pitanje.Tagovi) { } return(View("~/Views/PitanjeIOdgovori/PitanjeIOdgovori.cshtml", model)); }