public void E_GetAllCompletedTaskLogsByEmployeeInPeriod_ShoulReturnTaskLoagsList() { foreach (var l in _completedTaskLogs) { _repository.InsertCompletedTaskAsync(l); } var startDate = DateTime.Now.AddDays(-10); var stopDate = DateTime.Now; var result = _repository.GetCompletedTasksListByEmployeeAsync(id1, startDate, stopDate).Result.ToList(); Assert.IsNotNull(result); Assert.AreEqual(3, result.Count); Assert.AreEqual(13d, result.Sum(t => t.Time)); }
/// <summary> /// Получить выполненные задачи пользователя /// за определенный период /// </summary> /// <param name="id"></param> /// <param name="startday"></param> /// <param name="stopday"></param> /// <returns></returns> public async Task <IEnumerable <CompletedTaskLog> > GetEmployeeTaskLogs(Guid id, DateTime startday, DateTime stopday) { //Первичная валидация данных if (!ValidateDate(startday, stopday) || id == Guid.Empty) { return(null); } //Валидация на основе прав доступа bool isValid = default; switch (_autorize.UserRole) { case Role.None: break; case Role.Admin: break; case Role.Director: //Полные права isValid = true; break; case Role.Developer: //Может получать только свои логи isValid = _autorize.UserId.Equals(id); break; case Role.Freelancer: //Может получать только свои логи isValid = _autorize.UserId.Equals(id); break; default: break; } //Получение результата на основе валидации прав доступа if (isValid) { var result = await _tasksRepository.GetCompletedTasksListByEmployeeAsync(id, startday, stopday); if (result == null || result.ToList().Count == 0) { return(null); } else { return(result); } } else { return(null); } }