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))); }
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)); }
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()); }