public async Task <ICrudResult <string, TModel> > CreateAsync(TModel model)
        {
            model.Id = Guid.NewGuid().ToString();

            SetDatesIfExists(model, false);

            _data.Add(model);
            await SaveDataToJsonFileAsync();

            return(CrudResultString <TModel> .CreateOk(model));
        }
        public async Task <ICrudResult <string, TModel> > DeleteAsync(string id)
        {
            var savedModel = _data.SingleOrDefault(e => e.Id == id);

            if (savedModel == null)
            {
                return(CrudResultString <TModel> .CreateNotFound());
            }

            _data.Remove(savedModel);

            await SaveDataToJsonFileAsync();

            return(CrudResultString <TModel> .CreateOk());
        }
        public async Task <ICrudResult <string, TModel> > UpdateAsync(string id, TModel model)
        {
            var savedModelWithIndex = _data.Select((m, index) => new { m, index }).SingleOrDefault(e => e.m.Id == id);

            if (savedModelWithIndex == null)
            {
                return(CrudResultString <TModel> .CreateNotFound());
            }
            model.Id = id;
            SetDatesIfExists(model, true);

            _data[savedModelWithIndex.index] = model;

            await SaveDataToJsonFileAsync();

            return(CrudResultString <TModel> .CreateOk(model));
        }