Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
            }
        }