Esempio n. 1
0
        public void EditIsUnderWork(int ID, bool Is)
        {
            SubTask subTask = unitOfWork.SubTasks.GetSubTaskIncludingProject(ID);

            subTask.IsUnderWork = Is;

            if (Is)
            {
                SubTaskSession opensubtaskSession = unitOfWork.SubTaskSessions.GetOpenSubTask(userManager.GetUserId(HttpContext.User));
                if (opensubtaskSession != null)
                {
                    CloseOpenSubTasksession(opensubtaskSession, opensubtaskSession.SubTask);
                    unitOfWork.SubTasks.Edit(opensubtaskSession.SubTask);
                }

                SubTaskSession subTaskSession = new SubTaskSession()
                {
                    FK_SubTaskID  = ID,
                    SessStartDate = DateTime.Now,
                    EmpId         = userManager.GetUserId(HttpContext.User)
                };
                subTaskSession = unitOfWork.SubTaskSessions.Add(subTaskSession);
            }
            else
            {
                SubTaskSession subTaskSession = unitOfWork.SubTaskSessions.GetLastSessBySubTaskID(ID);
                CloseOpenSubTasksession(subTaskSession, subTask);
            }
            subTask = unitOfWork.SubTasks.Edit(subTask);
        }
Esempio n. 2
0
        public void CloseOpenSubTasksession(SubTaskSession subTaskSession, SubTask subTask)
        {
            subTaskSession.SessEndtDate = DateTime.Now;
            double hourDuration = (double)(subTaskSession.SessEndtDate - subTaskSession.SessStartDate).Value.TotalHours;

            subTaskSession.SessDuration = (int)Math.Round(hourDuration, 0);
            subTaskSession = unitOfWork.SubTaskSessions.Edit(subTaskSession);

            subTask.ActualDuration += subTaskSession.SessDuration;
            subTask.IsUnderWork     = false;
            Activity task = unitOfWork.Tasks.GetById(subTask.FK_TaskId);
            float    LastTaskDuaration = task.ActualDuratoin;

            task.ActualDuratoin += subTask.ActualDuration;
            task = unitOfWork.Tasks.Edit(task);
            Project project = unitOfWork.Projects.GetById(task.FK_ProjectId);

            project.ActualDuration += task.ActualDuratoin - LastTaskDuaration;
            unitOfWork.Projects.Edit(project);
        }