Esempio n. 1
0
        public IActionResult GetUnclosedWorkingTime(int userId, int taskId)
        {
            if (_repo.GetUser(userId) == null)
            {
                return(NotFound());
            }
            if (_repo.GetTask(taskId) == null)
            {
                return(NotFound());
            }

            var userWorkTimes = _repo.GetWorkTimesForUser(userId);

            if (userWorkTimes == null || !userWorkTimes.Any())
            {
                return(NotFound());
            }

            var unfinishedWorkTime = userWorkTimes.FirstOrDefault(o => !EntitiesUtils.IsDateEmpty(o.WorkStartTime) && EntitiesUtils.IsDateEmpty(o.WorkEndTime));

            if (unfinishedWorkTime == null)
            {
                return(NotFound());
            }

            return(Ok(ModelsMapping.GetWorkTimeDto(unfinishedWorkTime)));
        }
Esempio n. 2
0
        public IActionResult GetIUnclosedTaskForUser(int userId)
        {
            if (_repo.GetUser(userId) == null)
            {
                return(NotFound());
            }

            var userTasks = _repo.GetTasksForUser(userId).Select(o => ModelsMapping.GetTaskDto(o));

            if (userTasks == null || !userTasks.Any())
            {
                return(NotFound());
            }

            var userWorkTimes = _repo.GetWorkTimesForUser(userId);

            if (userWorkTimes == null || !userWorkTimes.Any())
            {
                return(NotFound());
            }

            var unfinishedWorkTime = userWorkTimes.FirstOrDefault(o => !EntitiesUtils.IsDateEmpty(o.WorkStartTime) && EntitiesUtils.IsDateEmpty(o.WorkEndTime));

            if (unfinishedWorkTime == null)
            {
                return(NotFound());
            }
            var unfinishedTask = userTasks.FirstOrDefault(o => o.Id == unfinishedWorkTime.TaskId);

            if (unfinishedTask == null)
            {
                return(NotFound());
            }

            return(Ok(unfinishedTask));
        }
Esempio n. 3
0
 private int GetWorkHoursForUser(int userId, int year, int month)
 {
     return((int)repo.GetWorkTimesForUser(userId)
            .Where(o => o.WorkStartTime.Year == year && o.WorkStartTime.Month == month && !EntitiesUtils.IsDateEmpty(o.WorkStartTime) && !EntitiesUtils.IsDateEmpty(o.WorkStartTime))
            .Select(o => o.WorkEndTime.Subtract(o.WorkStartTime).TotalSeconds / 3600)
            .Sum());
 }