예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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);
            }
        }
예제 #7
0
        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);
        }
예제 #8
0
        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);
            }
        }
예제 #9
0
        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();
            }
        }
예제 #10
0
        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);
        }
예제 #11
0
        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);
        }