private void LoadProjectsToList() { //gets all the projects stored in the DB and puts them in a list //this will now populate multiple lists (for now it will have all projects // named 'userprojects' (projects the logged in user made) and 'projects' (all projects) // THESE ARE EXAMPLES, WE SHOULD FIGURE OUT WHAT PROJECTS PEOPLE WILL WANT TO SEE // this is also written as dashboard will employ similar methods of panel drawings DataTable userProjects = Connection.GetDbConn().GetDataTable(SqlProject.GetUserProjects(UserObject.loggedUser.iduser)); foreach (DataRow userProject in userProjects.Rows) { ProjectObject up = new ProjectObject(userProject["idproject"].ToString(), userProject["projName"].ToString(), userProject["user"].ToString(), userProject["description"].ToString(), Convert.ToInt32(userProject["isPrivate"])); ProjectObject.UserProjects.Add(up); } //projectLists.Add(ProjectObject.UserProjects); DataTable projects = Connection.GetDbConn().GetDataTable(SqlProject.GetProjects()); foreach (DataRow project in projects.Rows) { ProjectObject up1 = new ProjectObject(project["idproject"].ToString(), project["projName"].ToString(), project["user"].ToString(), project["description"].ToString(), Convert.ToInt32(project["isPrivate"])); ProjectObject.Projects.Add(up1); } projectLists.Add(ProjectObject.Projects); projectLists.Add(ProjectObject.UserProjects); }
private void RequestAccess(object sender, EventArgs e, ProjectObject project) { // create a follow project object which will notify the project poster that a user wants access try { // creates follow table row, as this is a private project (public projects are followed on bugsform) // sends a notification to the poster of the project to advise the user wants access. DateTime now = DateTime.Now; string timestamp = now.ToString("yyyy-MM-dd HH:mm:ss"); string timestampTo = now.AddSeconds(5).ToString("yyyy-MM-dd HH:mm:ss"); SqlProject sq = new SqlProject(); SqlNotifications notif = new SqlNotifications(); Connection.GetDbConn().CreateCommand(SqlFollow.FollowProject(UserObject.loggedUser.iduser, project.idproject)); notif.InsertNotification(UserObject.loggedUser.iduser, project.idproject, "", "", "request access", "", now); DataSet getNotifId = Connection.GetDbConn().GetDataSet($"SELECT idnotification FROM notification" + $" WHERE usernotif = {UserObject.loggedUser.iduser} AND project = {project.idproject} AND timestamp BETWEEN '{timestamp}' AND '{timestampTo}'"); string notifId = getNotifId.Tables[0].Rows[0].ItemArray.GetValue(0).ToString(); DataSet getProjectOwner = Connection.GetDbConn().GetDataSet($"SELECT user FROM project WHERE idproject = { project.idproject}"); string projOwner = getProjectOwner.Tables[0].Rows[0].ItemArray.GetValue(0).ToString(); notif.InsertToNotify(notifId, projOwner, "0"); MessageBox.Show("Request sent to project creator"); } catch (Exception) { MessageBox.Show("Request already sent"); } }
/// <summary> /// On save button press, inserts a new project into the database with entered information /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_SaveProject_Click(object sender, EventArgs e) { int isPrivate; SqlProject newProject = new SqlProject(); if (CheckBox_PrivateProject.Checked) { isPrivate = 1; } else { isPrivate = 0; } newProject.InserProject(TextBox_ProjectName.Text, UserObject.loggedUser.iduser, RichTextBox_Description.Text, isPrivate); TextBox_ProjectName.Clear(); RichTextBox_Description.Clear(); }