Esempio n. 1
0
        // --- Ubacivanje Radnika u bazi ---
        private void BtnSubmitData_Click(object sender, EventArgs e)
        {
            string ime = this.TbIme.Text;
            string prezime = this.TbPrezime.Text;
            string adresa = this.TbAdresa.Text;
            string datumRodjenja = "";
            datumRodjenja += this.DatePicker.Value.Date.Day.ToString() + '.'
                + this.DatePicker.Value.Date.Month.ToString() + '.' + this.DatePicker.Value.Date.Year.ToString();
            
            string obrazovanje = this.TbObrazovanje.Text;

            // --- Provera da li postoje prazni textBoxovi
            if (String.IsNullOrWhiteSpace(ime))
            {
                MessageBox.Show("Unesi ime!");
                return;
            }
            else if (String.IsNullOrWhiteSpace(prezime))
            {
                MessageBox.Show("Unesi prezime!");
                return;
            }
            else if (String.IsNullOrWhiteSpace(adresa))
            {
                MessageBox.Show("Unesi adresu!");
            }
            else if (String.IsNullOrWhiteSpace(obrazovanje))
            {
                MessageBox.Show("Unesi obrazovanje!");
            }

            // --- Preciscavanje blanko znaka ----
            ime = checkString(ime);
            prezime = checkString(prezime);
            adresa = checkString(adresa);


            // --- Izvlacimo podatke iz listView-a ----
            string iskustvo = "";
            foreach (ListViewItem lvi in LvPJ_Z.Items)
            {
                iskustvo += lvi.Text + " " + lvi.SubItems[1].Text + ",";
            }
            iskustvo = iskustvo.TrimEnd(',');
            // ---- Rad sa bazom (ubacivanje podataka) ---
            try
            {
                // --- Kreiramo ID za radnika ----
                string idRadnika = getMaxId();
                if (idRadnika == "null")
                {
                    return;
                }

                Radnik noviRadnik = new Radnik();
                //noviRadnik.id = idRadnika;
                noviRadnik.id = idRadnika;
                noviRadnik.Ime = ime;
                noviRadnik.Prezime = prezime;
                noviRadnik.Adresa = adresa;
                noviRadnik.Datum_Rodjenja = datumRodjenja;
                noviRadnik.Iskustvo = iskustvo;
                noviRadnik.Obrazovanje = obrazovanje;

                // --- Kreiranje radnika u bazi (za isti ID, pravi duplikate) ---
                /*client.Cypher
                .Create("(radnik:Radnik {noviRadnik})")
                .WithParam("noviRadnik", noviRadnik)
                .ExecuteWithoutResults();*/

                // --- Kreiranje radnika ukoliko isti ne postoji u bazi ---
                // NEMA FEEDBACK UKOLIKO ISTI ID POSTOJI
                client.Cypher
                .Merge("(radnik:Radnik { id: {id} })")
                .OnCreate()
                .Set("radnik = {noviRadnik}")
                .WithParams(new
                {
                    id = noviRadnik.id,
                    noviRadnik
                })
                .ExecuteWithoutResults();

                MessageBox.Show("Uspesno kreiran radnik!");

            }
            catch (Exception ec)
            {
                MessageBox.Show(ec.ToString());
            }

            // Zatvaranje forme
            this.Dispose();
        }
Esempio n. 2
0
        public static bool createTestData(GraphClient client)
        {
            //hardcodirano --- testing purposes ---
            string[] skillSet = { "C#", "JavaScript", "PHP", "C", "Java", "C++", "SQL" };
            string[] relations = { "NE_SLAZE_SE", "NEUTRALAN", "SLAZE_SE" };
            try
            {
                int idRadnika = 0;
                idRadnika = client.Cypher
                .Match("(n:Radnik)")
                .Return(() => Return.As<int>("max(n.id)"))
                .Results
                .Single();

                idRadnika++;
                for (int i = 0; i < 50; i++)
                {
                    Random integer = new Random();
                    int randIndex1 = integer.Next(skillSet.Length);
                    int randIndex3 = (randIndex1 + 1) % skillSet.Length;
                    int randIndex2 = (randIndex1 + 2) % skillSet.Length;

                    Radnik noviRadnik = new Radnik();
                    //noviRadnik.id = idRadnika;
                    noviRadnik.id = idRadnika.ToString();
                    noviRadnik.Ime = "Radnik" + i.ToString();
                    noviRadnik.Prezime = "Prezime";
                    noviRadnik.Adresa = "Nis";
                    noviRadnik.Datum_Rodjenja = "1/1/2008";
                    if (i % 2 == 0)
                    {
                        noviRadnik.Iskustvo = skillSet[randIndex1] + " " + (i % 10 + 1).ToString() + "," + skillSet[randIndex2] + " " + (10 - i % 10 + 1).ToString();
                    }
                    else
                    {
                        noviRadnik.Iskustvo = skillSet[randIndex1] + " " + (i % 10 + 1).ToString() + "," + skillSet[randIndex2] + " " + (10 - i % 10 + 1).ToString() + "," + skillSet[randIndex3] + " " + (randIndex3 + 3).ToString();
                    }

                    noviRadnik.Obrazovanje = "Osnovne akademske studije";
                    client.Cypher
                    .Merge("(radnik:Radnik { id: {id} })")
                    .OnCreate()
                    .Set("radnik = {noviRadnik}")
                    .WithParams(new
                    {
                        id = noviRadnik.id,
                        noviRadnik
                    })
                    .ExecuteWithoutResults();

                    idRadnika++;
                }
                //veze izmedju test Radnika
                //35 veza
                for (int i = 0; i < 50; i++)
                {
                    Random integer = new Random();
                    int randIndex1 = integer.Next(relations.Length);

                    int indexRadnika1 = integer.Next(50); //random indexi za radnike
                    int indexRadnika2 = integer.Next(50);

                    if (indexRadnika1 == indexRadnika2) //check da li su isti (ne smeju da budu)
                    {
                        if (++indexRadnika2 > 49) //granicni slucaj ako povecamo index radnika i on ispadne iz opsega
                        {
                            indexRadnika2 = 0; //onda ga vratimo na pocetak
                        }
                    }
                    string radnik1Name = "Radnik" + indexRadnika1.ToString();
                    string radnik2Name = "Radnik" + indexRadnika2.ToString();
                    client.Cypher.Match("(radnik1:Radnik)", "(radnik2:Radnik)")
                    .Where((Radnik radnik1) => radnik1.Ime == radnik1Name)
                    .AndWhere((Radnik radnik2) => radnik2.Ime == radnik2Name)
                    .CreateUnique("radnik1-[:" + relations[randIndex1] + "]->radnik2")
                    .ExecuteWithoutResults();


                }
                //trim query koji otklanja sve test Radnike koji nisu povezani ni sa jednim radnikom
                var query = new Neo4jClient.Cypher.CypherQuery("match (n:Radnik {Prezime:\"Prezime\"}) where not(n)--() delete n",
                                                            new Dictionary<string, object>(), CypherResultMode.Set);

                ((IRawGraphClient)client).ExecuteCypher(query);


                return true;

            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception in CSP create data \n Exception msg:" + ex.Message + "\n InnerException msg:" + ex.InnerException.Message + "\n");
                return false;
            }
        }