public OpportunityFactory(
            ILogger <OpportunityFactory> logger,
            IOptionsMonitor <AppOptions> appOptions,
            GraphSharePointAppService graphSharePointAppService,
            GraphUserAppService graphUserAppService,
            IUserProfileRepository userProfileRepository,
            IRoleMappingRepository roleMappingRepository,
            CardNotificationService cardNotificationService,
            IUserContext userContext,
            CheckListProcessService checkListProcessService,
            CustomerFeedbackProcessService customerFeedbackProcessService,
            CustomerDecisionProcessService customerDecisionProcessService,
            ProposalStatusProcessService proposalStatusProcessService,
            NewOpportunityProcessService newOpportunityProcessService,
            IDashboardService dashboardService,
            IAuthorizationService authorizationService,
            IPermissionRepository permissionRepository,
            StartProcessService startProcessService,
            IDashboardAnalysis dashboardAnalysis,
            GraphTeamsAppService graphTeamsAppService,
            IAddInHelper addInHelper) : base(logger, appOptions)
        {
            Guard.Against.Null(graphSharePointAppService, nameof(graphSharePointAppService));
            Guard.Against.Null(graphUserAppService, nameof(graphUserAppService));
            Guard.Against.Null(userProfileRepository, nameof(userProfileRepository));
            Guard.Against.Null(roleMappingRepository, nameof(roleMappingRepository));
            Guard.Against.Null(cardNotificationService, nameof(cardNotificationService));
            Guard.Against.Null(userContext, nameof(userContext));
            Guard.Against.Null(checkListProcessService, nameof(checkListProcessService));
            Guard.Against.Null(customerDecisionProcessService, nameof(customerDecisionProcessService));
            Guard.Against.Null(proposalStatusProcessService, nameof(proposalStatusProcessService));
            Guard.Against.Null(newOpportunityProcessService, nameof(newOpportunityProcessService));
            Guard.Against.Null(startProcessService, nameof(startProcessService));
            Guard.Against.Null(dashboardService, nameof(dashboardService));
            Guard.Against.Null(dashboardAnalysis, nameof(dashboardAnalysis));
            Guard.Against.Null(authorizationService, nameof(authorizationService));
            Guard.Against.Null(permissionRepository, nameof(permissionRepository));
            Guard.Against.Null(graphTeamsAppService, nameof(graphTeamsAppService));
            Guard.Against.Null(addInHelper, nameof(addInHelper));

            _graphSharePointAppService = graphSharePointAppService;
            _graphUserAppService       = graphUserAppService;
            _userProfileRepository     = userProfileRepository;
            _roleMappingRepository     = roleMappingRepository;
            _cardNotificationService   = cardNotificationService;
            _userContext                        = userContext;
            _checkListProcessService            = checkListProcessService;
            this.customerFeedbackProcessService = customerFeedbackProcessService;
            _customerDecisionProcessService     = customerDecisionProcessService;
            _proposalStatusProcessService       = proposalStatusProcessService;
            _newOpportunityProcessService       = newOpportunityProcessService;
            _startProcessService                = startProcessService;
            _dashboardService                   = dashboardService;
            _authorizationService               = authorizationService;
            _permissionRepository               = permissionRepository;
            _graphTeamsAppService               = graphTeamsAppService;
            _dashboardAnalysis                  = dashboardAnalysis;
            _addInHelper                        = addInHelper;
        }
        /// <summary>
        /// Constructor
        /// </summary>
        public OpportunityHelpers(
            ILogger <OpportunityHelpers> logger,
            IOptions <AppOptions> appOptions,
            UserProfileHelpers userProfileHelpers,
            IRoleMappingRepository roleMappingRepository,
            CardNotificationService cardNotificationService,
            TemplateHelpers templateHelpers,
            CheckListProcessService checkListProcessService,
            CustomerFeedbackProcessService customerFeedbackProcessService,
            CustomerDecisionProcessService customerDecisionProcessService,
            IAuthorizationService authorizationService,
            IPermissionRepository permissionRepository,
            IUserContext userContext,
            ProposalStatusProcessService proposalStatusProcessService)
        {
            Guard.Against.Null(logger, nameof(logger));
            Guard.Against.Null(appOptions, nameof(appOptions));
            Guard.Against.Null(userProfileHelpers, nameof(userProfileHelpers));
            Guard.Against.Null(roleMappingRepository, nameof(roleMappingRepository));
            Guard.Against.Null(cardNotificationService, nameof(cardNotificationService));
            Guard.Against.Null(templateHelpers, nameof(templateHelpers));
            Guard.Against.Null(checkListProcessService, nameof(checkListProcessService));
            Guard.Against.Null(customerDecisionProcessService, nameof(customerDecisionProcessService));
            Guard.Against.Null(proposalStatusProcessService, nameof(proposalStatusProcessService));
            Guard.Against.Null(authorizationService, nameof(authorizationService));
            Guard.Against.Null(permissionRepository, nameof(permissionRepository));

            _logger                             = logger;
            _appOptions                         = appOptions.Value;
            _userProfileHelpers                 = userProfileHelpers;
            _roleMappingRepository              = roleMappingRepository;
            _cardNotificationService            = cardNotificationService;
            _templateHelpers                    = templateHelpers;
            _checkListProcessService            = checkListProcessService;
            this.customerFeedbackProcessService = customerFeedbackProcessService;
            _customerDecisionProcessService     = customerDecisionProcessService;
            _proposalStatusProcessService       = proposalStatusProcessService;
            _authorizationService               = authorizationService;
            _permissionRepository               = permissionRepository;
            _userContext                        = userContext;
        }