private void BtnProjectRemove_Click(object sender, EventArgs e) { //get selected project from listbox VMHome.Project lbxProjectsSelectedItem = LbxProjects_GetSelectedItem(); //get selected project's entity from database project repoProject = _ettCommander.projects.SingleOrDefault(m => m.id == lbxProjectsSelectedItem.Id); //make sure data is exist in database if (repoProject == null) { MessageBox.Show($"project '{lbxProjectsSelectedItem.Name}' not found in database"); return; } //update repoProject.ud = DateTime.Now; repoProject.is_active = false; //commit _ettCommander.SaveChanges(); //reload list box LbxProjects_Populate(); }
public FrProjectScriptCreate(VMHome.Project project) { InitializeComponent(); this.project = project; //set window name Text = $"Create script for '{project.Name}'"; }
private void BtnProjectScriptAdd_Click(object sender, EventArgs e) { //get selected project from listbox VMHome.Project lbxProjectsSelectedItem = LbxProjects_GetSelectedItem(); using (FrProjectScriptCreate frProjectScriptCreate = new FrProjectScriptCreate(lbxProjectsSelectedItem)) { //open dialog and get its closed result DialogResult result = frProjectScriptCreate.ShowDialog(); // make sure user is submitting form if (result != DialogResult.OK) { return; } //get selected projcet's entity from database project tbuProject = _ettCommander.projects.SingleOrDefault(m => m.id == lbxProjectsSelectedItem.Id); //make sure data is exist in database if (tbuProject == null) { MessageBox.Show($"project '{lbxProjectsSelectedItem.Name}' not found in database"); return; } //create database model project_script tbiRepoProjectScript = new project_script { name = frProjectScriptCreate.TbxNameValue, script = frProjectScriptCreate.TbxScriptValue, cd = DateTime.Now, }; //update tbuProject.project_script.Add(tbiRepoProjectScript); tbuProject.ud = DateTime.Now; //commit _ettCommander.SaveChanges(); //create file with the script //repopulate project script data grid DgvProjectScripts_Populate(); } }
private void DgvProjectScripts_Populate() { //get selected project from listbox VMHome.Project lbxProjectsSelectedItem = LbxProjects_GetSelectedItem(); bool isProjectFound = lbxProjectsSelectedItem != null; //toggle add script button btnProjectScriptAdd.Enabled = isProjectFound; //make sure project is exist in list box if (!isProjectFound) { return; } //get selected project var project = _ettCommander.projects.SingleOrDefault(m => m.is_active && m.id == lbxProjectsSelectedItem.Id); if (project == null) { return; } //set project script label lblProjectScripts.Text = $"Scripts for '{project.name}'"; //create binding list BindingList <VMHome.ProjectScript> bindingProjectScripts = new BindingList <VMHome.ProjectScript>(); project.project_script .OrderBy(m => m.order) .Select(m => VMHome.ProjectScript.CreateNew(m.id, m.name, m.script, m.last_executed) ) .ToList() .ForEach(m => bindingProjectScripts.Add(m) ); //bind to binding source dgvBindsrcProjectScripts.DataSource = bindingProjectScripts; //bind to data grid dgvProjectScripts.DataSource = dgvBindsrcProjectScripts; }
private void DgvProjectScripts_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { var hit = dgvProjectScripts.HitTest(e.X, e.Y); int dropRow = -1; if (hit.Type != DataGridViewHitTestType.None) { dropRow = hit.RowIndex; if (_dgvProjectScriptDragRow >= 0) { int tgtRow = dropRow + (_dgvProjectScriptDragRow > dropRow ? 1 : 0); if (tgtRow != _dgvProjectScriptDragRow) { //START -- MOVE DATA SOURCE var currentSelectedBindingSource = (VMHome.ProjectScript)dgvBindsrcProjectScripts.Current; var oldValue = currentSelectedBindingSource; var newValue = currentSelectedBindingSource; dgvBindsrcProjectScripts.Remove(oldValue); dgvBindsrcProjectScripts.Insert(tgtRow, newValue); dgvProjectScripts.Rows[tgtRow].Selected = true; //END -- MOVE DATA SOURCE //START -- CHANGE SCRIPT ORDER IN DATABASE //get selected project from listbox VMHome.Project lbxProjectsSelectedItem = LbxProjects_GetSelectedItem(); //get selected project from database var repoProject = _ettCommander.projects.SingleOrDefault(m => m.id == lbxProjectsSelectedItem.Id); //make sure data is exist in database if (repoProject == null) { MessageBox.Show($"project '{lbxProjectsSelectedItem.Name}' not found in database"); return; } //update all scripts order var repoProjectScripts = repoProject.project_script; //order counter int order = 0; foreach (VMHome.ProjectScript script in dgvBindsrcProjectScripts) { //get one from database var repoProjectScript = repoProjectScripts.Single(m => m.id == script.Id); //update database order repoProjectScript.order = ++order; } //commit _ettCommander.SaveChanges(); //END -- CHANGE SCRIPT ORDER IN DATABASE } } } else { dgvProjectScripts.Rows[_dgvProjectScriptDragRow].Selected = true; } //remove dragging label if (_dgvProjectScriptDragLabel != null) { _dgvProjectScriptDragLabel.Dispose(); _dgvProjectScriptDragLabel = null; } } }