TasksTracker.TasksManager.Backend.Api/Services/FakeTasksManager.cs (94 lines of code) (raw):

using TasksTracker.TasksManager.Backend.Api.Models; namespace TasksTracker.TasksManager.Backend.Api.Services { public class FakeTasksManager : ITasksManager { private List<TaskModel> _tasksList = new List<TaskModel>(); Random rnd = new Random(); private void GenerateRandomTasks() { for (int i = 0; i < 10; i++) { var task = new TaskModel() { TaskId = Guid.NewGuid(), TaskName = $"Task number: {i}", TaskCreatedBy = "tjoudeh@bitoftech.net", TaskCreatedOn = DateTime.UtcNow.AddMinutes(i), TaskDueDate = DateTime.UtcNow.AddDays(i), TaskAssignedTo = $"assignee{rnd.Next(50)}@mail.com", }; _tasksList.Add(task); } } public FakeTasksManager() { GenerateRandomTasks(); } public Task<Guid> CreateNewTask(string taskName, string createdBy, string assignedTo, DateTime dueDate) { var task = new TaskModel() { TaskId = Guid.NewGuid(), TaskName = taskName, TaskCreatedBy = createdBy, TaskCreatedOn = DateTime.UtcNow, TaskDueDate = dueDate, TaskAssignedTo = assignedTo, }; _tasksList.Add(task); return Task.FromResult(task.TaskId); } public Task<bool> DeleteTask(Guid taskId) { var task = _tasksList.FirstOrDefault(t => t.TaskId.Equals(taskId)); if (task != null) { _tasksList.Remove(task); return Task.FromResult(true); } return Task.FromResult(false); } public Task<TaskModel?> GetTaskById(Guid taskId) { var taskModel = _tasksList.FirstOrDefault(t => t.TaskId.Equals(taskId)); return Task.FromResult(taskModel); } public Task<List<TaskModel>> GetTasksByCreator(string createdBy) { var tasksList = _tasksList.Where(t => t.TaskCreatedBy.Equals(createdBy)).OrderByDescending(o => o.TaskCreatedOn).ToList(); return Task.FromResult(tasksList); } public Task<bool> MarkTaskCompleted(Guid taskId) { var task = _tasksList.FirstOrDefault(t => t.TaskId.Equals(taskId)); if (task != null) { task.IsCompleted = true; return Task.FromResult(true); } return Task.FromResult(false); } public Task<bool> UpdateTask(Guid taskId, string taskName, string assignedTo, DateTime dueDate) { var task = _tasksList.FirstOrDefault(t => t.TaskId.Equals(taskId)); if (task != null) { task.TaskName = taskName; task.TaskAssignedTo = assignedTo; task.TaskDueDate = dueDate; return Task.FromResult(true); } return Task.FromResult(false); } public Task MarkOverdueTasks(List<TaskModel> overDueTasksList) { throw new NotImplementedException(); } public Task<List<TaskModel>> GetYesterdaysDueTasks() { var tasksList = _tasksList.Where(t => t.TaskDueDate.Equals(DateTime.Today.AddDays(-1))).ToList(); return Task.FromResult(tasksList); } } }