public bool Contains(int id)
        {
            var logger = new LoggerService();

            logger.Log("Checking if cache contains task model");
            var foundTask = tasks.FirstOrDefault(t => t.Id == id);

            if (foundTask is null)
            {
                logger.Log("task was not found");
                return(false);
            }

            logger.Log("Task was found.");
            return(true);
        }
        public void AddToCache(TaskModel task)
        {
            var logger = new LoggerService();

            logger.Log("Adding to cache");

            tasks.Add(task);
        }
        public TaskModel Get(int id)
        {
            var logger = new LoggerService();

            logger.Log("Getting task from cache");
            var foundTask = tasks.FirstOrDefault(t => t.Id == id);

            return(foundTask);
        }
        public TaskModel GetTaskData(int id)
        {
            var logger = new LoggerService();

            if (cache.Contains(id))
            {
                logger.Log("returning from cache");
                return(cache.Get(id));
            }

            var data = new DataRepository().QuerryTasks();

            var task = data.FirstOrDefault(t => t.Id == id);

            if (task is null)
            {
                logger.Log("task was not found.");
                return(null);
            }

            cache.AddToCache(task);
            logger.Log($"returning task with id == {id}");
            return(task);
        }
        public IEnumerable <TaskModel> GetAllTaskData()
        {
            var cachedData = cache.GetAll();

            if (cachedData is null || cachedData.Count == 0)
            {
                cachedData = new DataRepository().QuerryTasks();
            }

            foreach (var data in cachedData)
            {
                cache.AddToCache(data);
                tasks.Add(data);
            }

            var logger = new LoggerService();

            logger.Log("Returning all task data");

            return(tasks);
        }