/// <summary>
        /// Delete provider
        /// </summary>
        /// <param name="id">id of provider</param>
        public async Task Delete(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ModelDamagedException(nameof(id), "can not be empty");
            }

            var user = await GetCurrentUser();

            var entity = await _providerRepository.Get(id);

            if (entity == null)
            {
                throw new EntityNotFoundException(id, typeof(Provider));
            }

            if (entity.Owner.Id != user.Id)
            {
                throw new AccessDeniedException(id, typeof(Provider));
            }

            await _providerRepository.DeleteSoft(id);
        }