public async Task ValidateAsync(ICriticContainer podcastContainer)
        {
            if (podcastContainer == null)
            {
                throw new ArgumentNullException(nameof(podcastContainer));
            }

            var rating = await this.GetBy(podcastContainer);

            if (podcastContainer.CriticId.HasValue && rating == null)
            {
                throw new InvalidOperationException($"Rating not found by id {podcastContainer.CriticId}");
            }
        }
 public async Task <Critic> GetByAsync(ICriticContainer critic)
 {
     return(critic.CriticId.HasValue
         ? this.Mapper.Map <Critic>(await this.Context.Critic.FirstOrDefaultAsync(x => x.Id == critic.CriticId))
         : null);
 }
 private Task <Critic> GetBy(ICriticContainer departmentContainer)
 {
     return(this.CriticDataAccess.GetByAsync(departmentContainer));
 }