using DataProviders.Collections;
using DomainObjects.Documents;
using Microsoft.AspNetCore.Authorization;
using WeatherForecast.Policies.Abstractions;
using WeatherForecast.Services;
namespace WeatherForecast.Policies {
  /// 
  /// 
  /// 
  public class ShopCartAuthorizationHandler : AuthorizationHandlerBase> {
    /// 
    /// 
    /// 
    /// 
    /// 
    /// 
    public ShopCartAuthorizationHandler(
      IHttpContextAccessor contextAccessor,
      IUserDataProvider userDataProvider,
      IAccountPolicyService accountService
    ) : base(contextAccessor, userDataProvider, accountService) { }
    /// 
    /// 
    /// 
    /// 
    /// 
    /// 
    /// 
    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, ShopCartAuthorizationRequirement requirement, List resource) {
      var user = GetUser(context);
      if (user == null)
        return Task.CompletedTask;
      // any authenticated user except 
      context.Succeed(requirement);
      return Task.CompletedTask;
    }
  }
  /// 
  /// 
  /// 
  public class ShopCartAuthorizationRequirement : AuthorizationRequirementBase { }
}