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"); } }
private void ProjectClicked(object sender, EventArgs e, ProjectObject project) { // check if project is private, if it is then // if(project.isPrivate == 1) /* if ((project.user != UserObject.loggedUser.iduser) && project.isPrivate == 1) // if the user isn't the project owner * { * // go to db, try to return a row from allowedusers which has this project id and this userid * // formname. showdialouge * * DataTable isUserAllowed = Connection.GetDbConn().GetDataTable(SqlProject.CheckUserAccess(UserObject.loggedUser.iduser, project.idproject)); * * if (isUserAllowed.Rows.Count == 0) // if no result * { * * } * * } */ // checked if user is in this project's 'allowUsers' table // if so, open displaybugsform, if not then show message box advising of no access // post project - poster is added to allowedaccess table + project is created ProjectObject.Projects.Clear(); //clear the list, we will need to clear all lists when more are added // i dont want to have to pass the display instance all the way to here ProjectObject.UserProjects.Clear(); display.DisplayBugsForm(project.idproject.ToString()); }
private Label CreateDescriptionLabel(ProjectObject project, Panel toAddTo) { Label Label_ProjectDescription = new Label { Location = new Point(16, (toAddTo.Height / 4) + 16), Font = new Font("Arial", 8f, FontStyle.Bold), ForeColor = Color.FromArgb(82, 82, 82), MaximumSize = new Size(toAddTo.Width - 32, toAddTo.Height / 2), AutoSize = true, Text = project.description }; return(Label_ProjectDescription); }
private Label CreateNameLabel(ProjectObject project, Panel toAddTo) { Label Label_ProjectName = new Label { Location = new Point(16, 16), Font = new Font("Arial", 14f, FontStyle.Bold), ForeColor = Color.FromArgb(82, 82, 82), MaximumSize = new Size(toAddTo.Width - 32, toAddTo.Height / 4), AutoSize = true, Text = project.projName }; return(Label_ProjectName); }