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