Esempio n. 1
0
        protected override void Handle(StartOfficeTaskCommand request)
        {
            if (TaskRecorder.HasActiveTask)
            {
                DuplicateTaskValidator taskValidator = new DuplicateOfficeTaskValidator(TaskRecorder.ActiveTask,
                                                                                        request.ProjectDto.ID);
                taskValidator.ValidateDuplicate();
            }

            if (TaskService.AskBeforeStartNewTaskResult() == DialogResult.No)
            {
                return;
            }

            DateTime currentTime = Database.GetCurrentTime();

            if (TaskRecorder.HasActiveTask)
            {
                TaskRepository.Finish(TaskRecorder.ActiveTask, currentTime);
                TaskRecorder.StopActiveTask(currentTime);
            }

            Project    project       = ProjectRepository.Load(request.ProjectDto.ID);
            OfficeTask newOfficeTask = TaskFactory.CreateOfficeTask(TaskRepository.NextIdentity(), project);

            TaskRepository.Save(newOfficeTask, currentTime);
            TaskRecorder.StartNewTask(newOfficeTask, currentTime);
            WorkTimer.Start();
        }
Esempio n. 2
0
        public void Save(OfficeTask task, DateTime startDate)
        {
            using (var connection = database.GetConnection())
            {
                try
                {
                    const string query = @"INSERT INTO work_time(task_id, employee_id, project_id, start_time, end_time)
                                           VALUES(:id, :employee, :project, :start_time, :end_time)";

                    connection.Open();
                    using (var command = new OracleCommand(query, connection))
                    {
                        command.Parameters.Add(new OracleParameter("id", OracleDbType.Int32, task.ID,
                                                                   ParameterDirection.Input));
                        command.Parameters.Add(new OracleParameter("employee", OracleDbType.Int32, systemUser.ID,
                                                                   ParameterDirection.Input));
                        command.Parameters.Add(new OracleParameter("project", OracleDbType.Int32, task.Project.ID,
                                                                   ParameterDirection.Input));
                        command.Parameters.Add(new OracleParameter("start_time", OracleDbType.Date, startDate,
                                                                   ParameterDirection.Input));
                        command.Parameters.Add(new OracleParameter("end_time", OracleDbType.Date, startDate,
                                                                   ParameterDirection.Input));

                        command.ExecuteNonQuery();
                    }
                }
                catch (OracleException ex)
                {
                    throw new Exception("Dodanie nowego zadania do bazy danych zakończone niepowodzeniem."
                                        .Replace("/n", Environment.NewLine) + ex.Message);
                }
            }
        }
Esempio n. 3
0
 public ConvertTaskFinishedEventArgs(OfficeTask task)
 {
     FinishedTask = task;
 }