public async Task <ServiceResult <bool> > Delete(int id)
        {
            if (id <= 0)
            {
                throw new ArgumentException("Argument should be greater than 0", nameof(id));
            }

            var model = await _repository.GetSingleAsync(id);

            if (model == null)
            {
                return(ServiceResultFactory.Fail <bool>("Item not found"));
            }

            _repository.Delete(model);
            var changes = await _repository.SaveChangesAsync();

            return(ServiceResultFactory.Success(changes > 0));
        }