public RepozitorijumiInfo KreirajRepozitorijum(string putanjaDoRepozitorijumiTxt, string nazivRepozitorijuma) { if (putanjaDoRepozitorijumiTxt == null || nazivRepozitorijuma == null) { throw new ArgumentNullException("\nPutanja do log txt fajla i naziv repozitorijuma ne mogu biti nevalidni.\n"); } if (putanjaDoRepozitorijumiTxt == "" || nazivRepozitorijuma == "") { throw new ArgumentException("\nPutanja do log txt fajla i naziv repozitorijuma ne mogu biti prazni.\n"); } RepozitorijumiInfo repoInfo = new RepozitorijumiInfo(); Console.WriteLine("\nRepozitorijum \"{0}\" nije kreiran. Potrebno je izvrsiti kreiranje repozitorijuma. Molimo Vas popunite sledecu formu.\n", nazivRepozitorijuma); Console.WriteLine("\nUnesite putanju do repozitorijuma: "); repoInfo.PreuzetaPutanja = Console.ReadLine(); Console.WriteLine("\nUnesite naziv repozitorijuma: "); repoInfo.NazivRepozitorijuma = Console.ReadLine(); Console.WriteLine("\nUnesite autora repozitorijuma: "); repoInfo.NazivAutora = Console.ReadLine(); UpisiURepozitorijumiTxt(putanjaDoRepozitorijumiTxt, repoInfo); Directory.CreateDirectory(Path.Combine(repoInfo.PreuzetaPutanja, ".vc")); return(repoInfo); }
public RepozitorijumiInfo ReferenciranjeNaPutanju(string putanjaDoRepozitorijumiTxt, string nazivRepozitorijuma) { if (putanjaDoRepozitorijumiTxt == null || nazivRepozitorijuma == null) { throw new ArgumentNullException("\nPutanja do log txt fajla i naziv repozitorijuma ne mogu biti nevalidni.\n"); } if (putanjaDoRepozitorijumiTxt == "" || nazivRepozitorijuma == "") { throw new ArgumentException("\nPutanja do log txt fajla i naziv repozitorijuma ne mogu biti prazni.\n"); } string[] listaAutora = new string[] { }; string[] konkretnaInformacija = new string[] { }; RepozitorijumiInfo repoInfo = new RepozitorijumiInfo(); listaAutora = File.ReadAllLines(putanjaDoRepozitorijumiTxt); foreach (string informacija in listaAutora) { //0. je autor, 1. je putanja 2. je naziv repozitorijuma konkretnaInformacija = informacija.Split(' '); CitanjePutanjeDoRepozitorijuma(konkretnaInformacija, nazivRepozitorijuma, putanjaDoRepozitorijumiTxt, repoInfo); } return(repoInfo); }
public void OdaberiReviziju() { int izborKorisnika = 0; string nazivIzabranogFajla = ""; List <string> commiti = new List <string>(); string nazivRepozitorijuma = ""; nazivRepozitorijuma = UnesiRepozitorijum(); RepozitorijumiInfo repoInfo = CitajIzLoga(nazivRepozitorijuma); if (repoInfo == null) { return; } nazivIzabranogFajla = IzaberiFajlZaPrikazNjegovihRevizija(repoInfo.PreuzetaPutanja, nazivRepozitorijuma, repoInfo.NazivAutora); string putanjaDoRepozitorijuma = repoInfo.PreuzetaPutanja; repoInfo.PreuzetaPutanja = Path.Combine(repoInfo.PreuzetaPutanja, ".vc"); commiti = PronadjiRevizijeZaIzabraniFajl(nazivIzabranogFajla, repoInfo.PreuzetaPutanja); Console.WriteLine("\nPrikazane su revizije koje postoje za fajl \"{0}\", u repozitorijumu \"{1}\", autora \"{2}\". Izaberite reviziju koju zelite da primenite\n", nazivIzabranogFajla, nazivRepozitorijuma, repoInfo.NazivAutora); for (int i = 0; i < commiti.Count(); i++) { Console.WriteLine("\t" + (i + 1) + ". " + commiti[i]); } Console.Write("\nVas izbor: "); izborKorisnika = Int32.Parse(Console.ReadLine()); m_IAmbassador.ObradiReviziju(repoInfo.PreuzetaPutanja, nazivIzabranogFajla, izborKorisnika, putanjaDoRepozitorijuma); }
public RepozitorijumiInfo CitajIzLoga(string nazivRepozitorijuma) { if (nazivRepozitorijuma == null) { throw new ArgumentNullException("\nNaziv repozitorijuma ne sme biti nevalidna vrednost.\n"); } if (nazivRepozitorijuma == "") { throw new ArgumentException("\nNaziv repozitorijuma ne sme biti prazna vrednost.\n"); } string putanjaDoRepozitorijumiTxt = ""; string[] listaAutora = new string[] { }; string[] konkretnaInformacija = new string[] { }; RepozitorijumiInfo repoInfo = new RepozitorijumiInfo(); putanjaDoRepozitorijumiTxt = ProveraIKreiranjeLogFajla(GetPutanjaDoRepozitorijumiText()); listaAutora = File.ReadAllLines(putanjaDoRepozitorijumiTxt); foreach (string informacije in listaAutora) { konkretnaInformacija = informacije.Split(' '); if (konkretnaInformacija[2].Equals(nazivRepozitorijuma)) //ako ima taj autor, uzmi putanju do njegovog foldera kako bi izlistao dokumente iz foldera { repoInfo.PreuzetaPutanja = konkretnaInformacija[1]; repoInfo.NazivAutora = konkretnaInformacija[0]; } } return(repoInfo); }
public void NapraviReviziju() { string nazivRepozitorijuma = ""; string putanjaDoRepozitorijumiTxt = ""; RepozitorijumiInfo repoInfo = new RepozitorijumiInfo(); int izborKorisnika = 0; nazivRepozitorijuma = UnesiRepozitorijum(); putanjaDoRepozitorijumiTxt = ProveraIKreiranjeLogFajla(GetPutanjaDoRepozitorijumiText()); repoInfo = ReferenciranjeNaPutanju(putanjaDoRepozitorijumiTxt, nazivRepozitorijuma); if (repoInfo == null) { repoInfo = KreirajRepozitorijum(putanjaDoRepozitorijumiTxt, nazivRepozitorijuma); } Console.WriteLine("\nIzaberite jednu od opcija za kreiranje nove revizije:\n"); Console.WriteLine("\t1. Zelim da kreiram novu reviziju nad svim dokumentima\n\t2. Zelim da kreiram novu reviziju nad konkretnim dokumentom\n"); Console.Write("Vas izbor: "); izborKorisnika = Int32.Parse(Console.ReadLine()); if (izborKorisnika == 1) { SprovediRevizijuNadSvim(repoInfo.PreuzetaPutanja, repoInfo.NazivAutora, nazivRepozitorijuma); return; } SprovediRevizijuNadKonkretnim(repoInfo.PreuzetaPutanja, repoInfo.NazivAutora, nazivRepozitorijuma); }
public void PretragaRevizija() { string nazivRepozitorijuma = ""; string izborKorisnika = ""; int redniBrojCommita = 0; nazivRepozitorijuma = UnesiRepozitorijum(); RepozitorijumiInfo repoInfo = CitajIzLoga(nazivRepozitorijuma); Console.Write("\nUnesite jedinstvenu oznaku revizije: "); izborKorisnika = Console.ReadLine(); string[] preuzetiFajlovi = m_IAmbassador.PretraziReviziju(repoInfo.PreuzetaPutanja, izborKorisnika); Console.WriteLine("\nPrikazana je lista fajlova iz commit-a \"{0}\", unutar repozitorijuma \"{1}\", autora \"{2}\".\n", izborKorisnika, nazivRepozitorijuma, repoInfo.NazivAutora); foreach (string fajl in preuzetiFajlovi) { redniBrojCommita++; Console.WriteLine("\t" + redniBrojCommita + ". " + fajl); } }
public void PrikaziSveRevizije() { string nazivRepozitorijuma = ""; int izborKorisnika = 0; List <string> commiti = new List <string>(); nazivRepozitorijuma = UnesiRepozitorijum(); RepozitorijumiInfo repoInfo = CitajIzLoga(nazivRepozitorijuma); Console.WriteLine("\nIzaberite jednu od opcija za prikaz revizija:\n"); Console.WriteLine("\t1. Zelim da prikazem sve revizije koje postoje\n\t2. Zelim da prikazem revizije koje su vezane za konkretan dokument\n"); Console.Write("Vas izbor: "); izborKorisnika = Int32.Parse(Console.ReadLine()); if (izborKorisnika == 1) { PrikaziRevizijeZaSveDokumente(repoInfo.PreuzetaPutanja, nazivRepozitorijuma, repoInfo.NazivAutora); return; } PrikaziRevizijeZaKonkretanDokument(repoInfo.PreuzetaPutanja, nazivRepozitorijuma, repoInfo.NazivAutora); }
public void PrikaziFajlove() { string nazivRepozitorijuma = ""; string putanjaDoRepozitorijumiTxt = ""; RepozitorijumiInfo repoInfo = new RepozitorijumiInfo(); nazivRepozitorijuma = UnesiRepozitorijum(); putanjaDoRepozitorijumiTxt = ProveraIKreiranjeLogFajla(GetPutanjaDoRepozitorijumiText()); repoInfo = ReferenciranjeNaPutanju(putanjaDoRepozitorijumiTxt, nazivRepozitorijuma); if (repoInfo.PreuzetaPutanja == null) { repoInfo = KreirajRepozitorijum(putanjaDoRepozitorijumiTxt, nazivRepozitorijuma); } Console.WriteLine("\nAutor repozitorijuma \"{0}\" u svom repozitorijumu \"{1}\" ima sledece fajlove:\n", repoInfo.NazivAutora, nazivRepozitorijuma); foreach (string dokument in m_IAmbassador.PrikaziSveDokumente(repoInfo.PreuzetaPutanja)) { Console.WriteLine(dokument); } }
public void UpisiURepozitorijumiTxt(string putanjaDoRepozitorijumiTxt, RepozitorijumiInfo repoInfo) { if (putanjaDoRepozitorijumiTxt == null || repoInfo == null) { throw new ArgumentNullException("\nPutanja do log fajla i informacije o autoru ne smeju biti nevalidni.\n"); } if (putanjaDoRepozitorijumiTxt == "" || repoInfo == null) { throw new ArgumentException("\nPutanja do log fajla i informacije o autoru ne smeju biti prazni.\n"); } using (StreamWriter tw = File.AppendText(putanjaDoRepozitorijumiTxt)) { tw.Write(repoInfo.NazivAutora); tw.Write(" "); tw.Write(repoInfo.PreuzetaPutanja); tw.Write(" "); tw.Write(repoInfo.NazivRepozitorijuma); tw.WriteLine(); tw.Close(); } }
public RepozitorijumiInfo CitanjePutanjeDoRepozitorijuma(string[] konkretnaInformacija, string nazivRepozitorijuma, string putanjaDoRepozitorijumiTxt, RepozitorijumiInfo repoInfo) { //int IzborKorisnika = 0; if (konkretnaInformacija[2].Equals(nazivRepozitorijuma)) //ako ima taj autor, uzmi putanju do njegovog foldera kako bi izlistao dokumente iz foldera { repoInfo.NazivAutora = konkretnaInformacija[0]; repoInfo.PreuzetaPutanja = konkretnaInformacija[1]; repoInfo.NazivRepozitorijuma = nazivRepozitorijuma; Console.WriteLine("\nVi kao autor \"{0}\" trenutno radite nad repozitorijumom \"{1}\" na putanji \"{2}\". Zelite li da prikazete fajlove iz ovog repozitorijuma?", repoInfo.NazivAutora, nazivRepozitorijuma, repoInfo.PreuzetaPutanja); Console.WriteLine("\t" + "1. Da" + "\n" + "\t" + "2. Ne\n"); Console.Write("Vas izbor: "); string izborKorisnika = Console.ReadLine(); //IzborKorisnika = Int32.Parse(Console.ReadLine()); if (izborKorisnika == "2") { PromenaRepozitorijumaAutora(konkretnaInformacija, nazivRepozitorijuma, putanjaDoRepozitorijumiTxt, repoInfo); } } return(repoInfo); }
public RepozitorijumiInfo PromenaRepozitorijumaAutora(string[] konkretnaInformacija, string nazivRepozitorijuma, string putanjaDoRepozitorijumiTxt, RepozitorijumiInfo repoInfo) { string[] noveKonkretneInformacije = new string[] { }; string[] listaAutora = File.ReadAllLines(putanjaDoRepozitorijumiTxt); Console.WriteLine("\nUnesite putanju do novog repozitorijuma: "); repoInfo.PreuzetaPutanja = Console.ReadLine(); foreach (string informacija in listaAutora) { //0. je autor, 1. je putanja 2. je naziv repozitorijuma konkretnaInformacija = informacija.Split(' '); if (konkretnaInformacija[2].Equals(nazivRepozitorijuma)) //ako ima taj autor, uzmi putanju do njegovog foldera kako bi izlistao dokumente iz foldera { listaAutora = File.ReadAllLines(putanjaDoRepozitorijumiTxt); File.Delete(putanjaDoRepozitorijumiTxt); foreach (string noveInformacije in listaAutora) { noveKonkretneInformacije = noveInformacije.Split(' '); if (noveKonkretneInformacije[0].Equals(repoInfo.NazivAutora)) { noveKonkretneInformacije[1] = repoInfo.PreuzetaPutanja; } UpisiNovuPutanju(putanjaDoRepozitorijumiTxt, noveKonkretneInformacije); } } } return(repoInfo); }