public bool Create(Task task) { Dictionary <string, string> newTask = new Dictionary <string, string>(); newTask.Add("@parent_task_id", task.ParentTask?.Id.ToString()); newTask.Add("@requires_task_id", task.RequiresTask?.Id.ToString()); newTask.Add("@section_id", task.SectionID.ToString()); newTask.Add("@user_id", task.AssignedUser?.Id.ToString()); newTask.Add("@name", task.Name); newTask.Add("@description", task.Description); newTask.Add("@due_date", task.DueDate.ToString("yyyy/MM/dd HH:mm:ss")); newTask.Add("@estimated_time", task.EstimatedTime.ToString()); newTask.Add("@priority", task.Priority.ToString()); bool response = mySQLConnector.Execute("INSERT INTO tasks (parent_task_id, requires_task_id, section_id, user_id, name, description, due_date, estimated_time, priority) VALUES (@parent_task_id, @requires_task_id , @section_id, @user_id, @name, @description, @due_date, @estimated_time, @priority)", newTask); mySQLConnector.CloseConnections(); if (response) { return(true); } return(false); }
public bool Create(WorkLog workLog) { Dictionary <string, string> newWorkLog = new Dictionary <string, string>(); newWorkLog.Add("@user_id", workLog.AssignedUser?.Id.ToString()); newWorkLog.Add("@task_id", workLog.TaskID.ToString()); newWorkLog.Add("@work", workLog.Work.ToString()); newWorkLog.Add("@created_at", workLog.CreatedAt.ToString("yyyy/MM/dd HH:mm:ss")); bool response = mySQLConnector.Execute("INSERT INTO work_log (user_id, task_id, work, created_at) VALUES (@user_id, @task_id , @work, @created_at)", newWorkLog); mySQLConnector.CloseConnections(); if (response) { return(true); } return(false); }
public Dashboard() { InitializeComponent(); mainController.Dashboard = this; try { if (mainController.Project != null) { using (MySqlDataReader dataReader = new ProjectDAO().GetDashboardStats(mainController.Project.Id, mainController.User.Id)) { if (dataReader.Read()) { tasksLeft = dataReader.IsDBNull(2) ? 0 : dataReader.GetInt16("TasksLeft"); tasksCompleted = dataReader.IsDBNull(3) ? 0 : dataReader.GetInt16("TasksCompleted"); yourTasks = dataReader.IsDBNull(4) ? 0 : dataReader.GetInt16("YourTasks"); daysLeft = dataReader.IsDBNull(5) ? "Ingen" : dataReader.GetInt16("DaysLeft") + " dage"; } } mySQLConnector.CloseConnections(); SetupQuickStats(); SetupCharts(); worker = new BackgroundWorker(); worker.DoWork += WorkerUpdater; Timer timer = new Timer(60000); timer.Elapsed += TimerElapsed; timer.Start(); } } catch { throw; } }
public bool Create(Section section) { var newSection = new Dictionary <string, string>(); newSection.Add("@project_id", section.ProjectId.ToString()); newSection.Add("@name", section.Name); newSection.Add("@due_date", section.DueDate.ToString()); bool response = mySQLConnector.Execute("INSERT INTO sections (project_id, name, due_date) VALUES (@project_id, @name, @due_date)", newSection); mySQLConnector.CloseConnections(); if (response) { return(true); } return(false); }
public bool Create(Project project) { Dictionary <string, string> newProject = new Dictionary <string, string> { { "@parent_project_id", project.ParentProjectID.ToString() }, { "@user_id", project.ProjectOwnerID.ToString() }, { "@name", project.Name }, { "@description", project.Description }, { "@due_date", project.DueDate.ToString() } }; bool response = mySQLConnector.Execute("INSERT INTO projects (parent_project_id, user_id , name, description, due_date) VALUES (@parent_project_id, @user_id, @name, @description, @due_date)", newProject); if (response) { mySQLConnector.CloseConnections(); return(true); } mySQLConnector.CloseConnections(); return(false); }
public bool Create(User user) { Dictionary <string, string> parameters = new Dictionary <string, string> { { "@email", user.Email } }; MySqlDataReader dataReader = mySQLConnector.GetData("SELECT * FROM users WHERE email = @email", parameters); if (dataReader.HasRows != true) { Dictionary <string, string> newUser = new Dictionary <string, string> { { "@firstname", user.Firstname }, { "@lastname", user.Lastname }, { "@password", user.Password }, { "@email", user.Email }, { "@picture", user.Picture } }; bool response = mySQLConnector.Execute("INSERT INTO users (firstname, lastname, password, email, picture) VALUES (@firstname, @lastname, @password, @email, @picture)", newUser); if (response) { mySQLConnector.CloseConnections(dataReader); return(true); } } mySQLConnector.CloseConnections(dataReader); return(false); }
public BurndownChart() { InitializeComponent(); try { mySQLConnector = MySQLConnector.Instance; HorizontalAlignment = HorizontalAlignment.Left; Project project = MainController.Instance.Project; if (project.DueDate != DateTime.MinValue) { MySqlDataReader dataReader = new ProjectDAO().GetBurndwonChartData(project.Id); if (dataReader.Read()) { days = dataReader.IsDBNull(3) ? 0 : dataReader.GetInt16("ProjectLength"); totalWork = dataReader.IsDBNull(1) ? 0 : dataReader.GetInt16("TotalWork"); daysFromStart = dataReader.IsDBNull(4) ? 0 : dataReader.GetInt16("DaysFromStart"); workDone = dataReader.IsDBNull(2) ? 0 : dataReader.GetInt16("WorkDone"); } // Get values for target line ChartValues <double> target = new ChartValues <double>(); for (int i = 0; i <= days; i++) { if (target.Count == 0) { target.Add(totalWork); } else if (i == days) { target.Add(0); } else { target.Add(Math.Round(target[i - 1] - (totalWork / days), 2)); } } // Get values for actual work done ChartValues <double> actual = new ChartValues <double>(); MySqlDataReader dataReaderActual = new WorkLogDAO().GetWorkLogByProject(project.Id); List <WorkLog> workLogs = new List <WorkLog>(); if (dataReaderActual != null) { while (dataReaderActual.Read()) { workLogs.Add(new WorkLog(null, 0, dataReaderActual.IsDBNull(0) ? 0 : dataReaderActual.GetInt16("Work"), (DateTime)dataReaderActual.GetMySqlDateTime("Date"))); } for (int i = 0; i <= daysFromStart; i++) { if (actual.Count == 0) { actual.Add(totalWork); } else { bool foundWork = false; foreach (WorkLog work in workLogs) { if (work.CreatedAt.Date.Equals(project.CreatedAt.AddDays(i).Date)) { actual.Add(actual[actual.Count - 1] - work.Work); workLogs.Remove(work); foundWork = true; break; } if (work.Equals(workLogs.Last())) { foundWork = false; } } if (!foundWork) { actual.Add(actual[actual.Count - 1]); } } } } SeriesCollection = new SeriesCollection { new LineSeries { Title = "Gudieline", Values = target, LineSmoothness = 0 }, new LineSeries { Title = "Arbejde tilbage", Values = actual, LineSmoothness = 0 } }; DataContext = this; Chart.Series = SeriesCollection; Chart.AxisY.Clear(); Chart.AxisY.Add( new Axis { MinValue = 0, Title = "Estimat", Separator = new Separator { Stroke = new Utilities().GetColor("#546e7a") }, FontSize = 14 }); Chart.AxisX.Clear(); Chart.AxisX.Add( new Axis { MinValue = 0, Title = "Tidslinje", Separator = new Separator { Stroke = new Utilities().GetColor("#546e7a") }, FontSize = 14 }); if (days <= 12) { Chart.AxisX[0].Separator.Step = 1; } mySQLConnector.CloseConnections(dataReader); mySQLConnector.CloseConnections(dataReaderActual); } } catch { throw; } }
public void UpdateChart() { try { Project project = MainController.Instance.Project; int days = 0, daysFromStart = 0, workDone = 0; double totalWork = 0; if (project.DueDate != DateTime.MinValue) { MySqlDataReader dataReader = new ProjectDAO().GetBurndwonChartData(project.Id); if (dataReader.Read()) { days = dataReader.IsDBNull(3) ? 0 : dataReader.GetInt16("ProjectLength"); totalWork = dataReader.IsDBNull(1) ? 0 : dataReader.GetInt16("TotalWork"); daysFromStart = dataReader.IsDBNull(4) ? 0 : dataReader.GetInt16("DaysFromStart"); workDone = dataReader.IsDBNull(2) ? 0 : dataReader.GetInt16("WorkDone"); } mySQLConnector.CloseConnections(dataReader); if (this.days != days || this.daysFromStart != daysFromStart || !this.totalWork.Equals(totalWork) || !this.workDone.Equals(workDone)) { this.days = days; this.daysFromStart = daysFromStart; this.totalWork = totalWork; this.workDone = workDone; // Get values for target line ChartValues <double> target = new ChartValues <double>(); for (int i = 0; i <= days; i++) { if (target.Count == 0) { target.Add(totalWork); } else if (i == days) { target.Add(0); } else { target.Add(Math.Round(target[i - 1] - (totalWork / days), 2)); } } // Get values for actual work done ChartValues <double> actual = new ChartValues <double>(); MySqlDataReader dataReaderActual = new WorkLogDAO().GetWorkLogByProject(project.Id); List <WorkLog> workLogs = new List <WorkLog>(); if (dataReaderActual != null) { while (dataReaderActual.Read()) { workLogs.Add(new WorkLog(null, 0, dataReaderActual.IsDBNull(0) ? 0 : dataReaderActual.GetInt16("Work"), (DateTime)dataReaderActual.GetMySqlDateTime("Date"))); } for (int i = 0; i <= daysFromStart; i++) { if (actual.Count == 0) { actual.Add(totalWork); } else { bool foundWork = false; foreach (WorkLog work in workLogs) { if (work.CreatedAt.Date.Equals(project.CreatedAt.AddDays(i).Date)) { actual.Add(actual[actual.Count - 1] - work.Work); workLogs.Remove(work); foundWork = true; break; } if (work.Equals(workLogs.Last())) { foundWork = false; } } if (!foundWork) { actual.Add(actual[actual.Count - 1]); } } } } SeriesCollection[0].Values = target; SeriesCollection[1].Values = actual; mySQLConnector.CloseConnections(dataReaderActual); } } } catch { throw; } }