/// <summary> /// Attemps to add a Project entity into the Projects EntitySet of the Context /// </summary> /// <param name="theProject">Project Entity to be inserted</param> /// <returns>true upon success, false upon failure</returns> public bool AddProject(Project theProject) { try { Projects.InsertOnSubmit(theProject); SubmitChanges(); return true; } catch (Exception ex) { //TODO: 17.12.2012 add proper exception handling. return false; } }
/// <summary> /// Responsible for adding the data. Performs validation and displays a MessageBox telling the user whether adding the project succeeded or failed /// Also closes the form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { #region Validation if (tbProjectName.Text.Length < 3) { MessageBox.Show("Project Name must be at least 3 characters long.", "KChange: Error"); return; } if (tbProjectDescription.Text.Length < 3) { MessageBox.Show("Project Description must be at least 3 characters long", "KChange: Error"); return; } if (Data.GetLanguage((string)liLanguage.SelectedValue) == null) { MessageBox.Show("You must select which programming language is used for the project.", "KChange: Error"); return; } if (tbProjectPath.Text.Length < 3) { MessageBox.Show("Project Path must be at least 3 characters long.", "KChange: Error"); return; } #endregion #region Inserting Project into DB KChangeDataContextDataContext theContext = new KChangeDataContextDataContext(); Project newProject = new Project(); newProject.Name = tbProjectName.Text; newProject.Description = tbProjectDescription.Text; newProject.Language1 = Data.GetLanguage((string)liLanguage.SelectedValue); newProject.Created = DateTime.Now; newProject.Physical_Path = tbProjectPath.Text; if (theContext.AddProject(newProject)) MessageBox.Show("New Project added successfully.", "KChange: Success"); else MessageBox.Show("New Project adding failed.", "KChange: Error"); #endregion Close(); }
/// <summary> /// Obtains a List of all File Names attached to a given Project Entity. /// </summary> /// <param name="theProject">Project Entity whose File Names are to be returned</param> /// <returns></returns> public List<string> GetFileNamesByProject(Project theProject) { List<string> returnList = new List<string>(); returnList = (from f in Project_Files where f.Project == theProject select f.File_Name).ToList(); return returnList; }
/// <summary> /// Gets a reference to a Project File Entity of a given Project entity based on fileName /// </summary> /// <param name="theProject">Project Entity whose Project File is to be returned</param> /// <param name="fileName">Name of the Project file to be returned</param> /// <returns></returns> public Project_File GetFileByName(Project theProject, string fileName) { //TODO: Double files may have the same values. Perhaps add a unique key? try { return (from pf in Project_Files where pf.File_Name == fileName select pf).First(); } catch (Exception ex) { //TODO: Add proper event handling return null; } }
/// <summary> /// Attempts to return a List of Project_Change Entities of a Project Entity /// </summary> /// <param name="theProject">Project Entity whose Project_Changes are to be returned</param> /// <returns>List of Project Change Entities</returns> public List<Project_Change> GetChangesByProject(Project theProject) { return (from pc in theProject.Project_Changes select pc).ToList(); }
/// <summary> /// Cancells out the dialog, setting myProject to null. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CancelButton_Click(object sender, EventArgs e) { myProject = null; Close(); }
/// <summary> /// Calls LoadGridView and assigns myProject value /// </summary> /// <param name="projectID">The Project ID to be assigned for myProject</param> public MaintenanceFormChanges(int projectID) { InitializeComponent(); myProject = Data.GetProject(projectID); LoadGridView(); }
/// <summary> /// Returns the number of Project_Files of a given Project /// </summary> /// <param name="theProject">The Project Entity</param> /// <returns>Number of files</returns> public int GetNumberOfFilesByProject(Project theProject) { return theProject.Project_Files.Count; }
private void attach_Projects(Project entity) { this.SendPropertyChanging(); entity.Language1 = this; }
partial void DeleteProject(Project instance);
partial void UpdateProject(Project instance);
partial void InsertProject(Project instance);
/// <summary> /// Loads the controls, myProject entity and calls BindControls() /// </summary> /// <param name="theProjectID">the ID of the Project Entity to be loaded</param> public MaintenanceForm(int theProjectID) { myProject = Data.GetProject(theProjectID); InitializeComponent(); BindControls(); }
/// <summary> /// Initializes the form and calls BindData /// </summary> /// <param name="theProject"></param> public MainFormProjectsInfo(Project theProject) { InitializeComponent(); myProject = theProject; BindData(); }
/// <summary> /// Obtains a list of Project_File entity attached to a given Project entity found by the Project entity /// </summary> /// <param name="theProject">Project entity whose Files are to be returned</param> /// <returns>(Empty) list of files per project name</returns> public List<Project_File> GetFilesByProject(Project theProject) { List<Project_File> returnList = new List<Project_File>(); returnList = (from f in Project_Files where f.Project == theProject select f).ToList(); return returnList; }
/// <summary> /// Obtains the datetime assigned to the last change of a given Project Entity /// </summary> /// <param name="theProject">The given Project entity whose last change is to be returned</param> /// <returns>The current time, -30 years if there has not been a change yet /// The last change from the Database if a change has been registered. /// </returns> public DateTime GetLastChange(Project theProject) { try { return (from pc in Project_Changes where pc.Project == theProject orderby pc.ChangeDate descending select pc.ChangeDate).First(); } catch (Exception ex) { //TODO: Add Exception logging class. Karol 11.12.2012. return DateTime.Now.AddYears(-30); } }
private void detach_Projects(Project entity) { this.SendPropertyChanging(); entity.Language1 = null; }
/// <summary> /// Attemps to remove a Project Entity from the Projects EntitySet /// </summary> /// <param name="theProject">The Project Entity to be removed</param> /// <returns>true upon success, false upon failure</returns> public bool RemoveProject(Project theProject) { try { Projects.DeleteOnSubmit(theProject); SubmitChanges(); return true; } catch (Exception ex) { //TODO: 17.12.2012 Karol, add proper exception handling return false; } }
/// <summary> /// Responsible for loading the MainFormProjects view. /// Also sets the currentProject Project Entity value. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void projectsToolStripMenuItem_Click(object sender, EventArgs e) { // Load the form as a Dialog Box, passing currentProject by reference. MainFormProjects projectSelectionForm = new MainFormProjects(); projectSelectionForm.ShowDialog(); currentProject = projectSelectionForm.myProject; projectSelectionForm.Dispose(); if (currentProject != null) UpdateProjectLabel(true); else UpdateProjectLabel(false); }
/// <summary> /// Initializes the form and assigns myProject /// </summary> /// <param name="theProjectID">the Project ID whose files will be added to</param> public MaintenanceFormFilesAdd(int theProjectID) { InitializeComponent(); myProject = Data.GetProject(theProjectID); }
/// <summary> /// Attempts to find a given Project_File Entity from theProject's Project_Files EntitySet /// </summary> /// <param name="theProject">Project whose Project_File is to be found</param> /// <param name="fileName">The File Name of the file to be found</param> /// <returns>true upon found, false upon not found</returns> public bool DoesFileExist(Project theProject, string fileName) { var query = (from pf in Project_Files where pf.Project == theProject && pf.File_Name == fileName select pf).ToList(); return query.Count > 0; }
public MaintenanceFormEdit(ref Project theProject) { myProject = theProject; InitializeComponent(); BindControls(); }
/// <summary> /// Main Button click event handler, used to select the curProject field in the main form. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ProjectsGV_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { myProject = Data.GetProject((string)ProjectsGV.Rows[e.RowIndex].Cells[0].Value); if (myProject == null) { MessageBox.Show("There was a problem loading this project.", "KChange: Error"); return; } MainFormProjectsInfo infoForm = new MainFormProjectsInfo(myProject); infoForm.ShowDialog(); if (infoForm.Cancelled == true) { myProject = null; infoForm.Dispose(); return; } Close(); }