/// <summary>
        /// Tracks an account being created.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        /// <param name="emailAddress">The email address.</param>
        /// <param name="provider">The provider used to create the account.</param>
        public static void TrackAccountCreated(this ISiteTelemetry telemetry, string userId, string emailAddress, string provider)
        {
            var properties = CreateProperties(userId, provider);

            properties["EmailAddress"] = emailAddress;

            telemetry.TrackEvent("AccountCreated", properties);
        }
        /// <summary>
        /// Tracks an account being deleted.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        /// <param name="emailAddress">The email address.</param>
        public static void TrackAccountDeleted(this ISiteTelemetry telemetry, string userId, string emailAddress)
        {
            var properties = CreatePropertiesForUser(userId);

            properties["EmailAddress"] = emailAddress;

            telemetry.TrackEvent("AccountDeleted", properties);
        }
예제 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AlexaController"/> class.
 /// </summary>
 /// <param name="userManager">The <see cref="UserManager{TUser}"/> to use.</param>
 /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
 /// <param name="siteOptions">The current site options.</param>
 /// <param name="logger">The <see cref="ILogger"/> to use.</param>
 public AlexaController(
     UserManager <LondonTravelUser> userManager,
     ISiteTelemetry telemetry,
     SiteOptions siteOptions,
     ILogger <AlexaController> logger)
 {
     _userManager = userManager;
     _telemetry   = telemetry;
     _options     = siteOptions?.Alexa;
     _logger      = logger;
 }
        /// <summary>
        /// Tracks the line preferences for a user being updated.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        /// <param name="oldLines">The user's existing line preferences.</param>
        /// <param name="newLines">The user's new line preferences.</param>
        public static void TrackLinePreferencesUpdated(
            this ISiteTelemetry telemetry,
            string userId,
            ICollection <string> oldLines,
            ICollection <string> newLines)
        {
            var properties = CreatePropertiesForUser(userId);

            properties["OldLines"] = string.Join(",", oldLines ?? Array.Empty <string>());
            properties["NewLines"] = string.Join(",", newLines ?? Array.Empty <string>());

            telemetry.TrackEvent("LinePreferencesUpdated", properties);
        }
예제 #5
0
 public ManageController(
     UserManager <LondonTravelUser> userManager,
     SignInManager <LondonTravelUser> signInManager,
     ITflServiceFactory tflServiceFactory,
     ISiteTelemetry telemetry,
     ILogger <ManageController> logger)
 {
     _userManager       = userManager;
     _signInManager     = signInManager;
     _tflServiceFactory = tflServiceFactory;
     _telemetry         = telemetry;
     _logger            = logger;
 }
예제 #6
0
        public AccountController(
            UserManager <LondonTravelUser> userManager,
            SignInManager <LondonTravelUser> signInManager,
            ISiteTelemetry telemetry,
            IClock clock,
            SiteOptions siteOptions,
            ILogger <AccountController> logger)
        {
            _userManager   = userManager;
            _signInManager = signInManager;
            _telemetry     = telemetry;
            _clock         = clock;
            _logger        = logger;

            _isEnabled =
                siteOptions?.Authentication?.IsEnabled == true &&
                siteOptions?.Authentication.ExternalProviders?.Any((p) => p.Value?.IsEnabled == true) == true;
        }
        /// <summary>
        /// Tracks the claims for a user being updated.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        public static void TrackClaimsUpdated(this ISiteTelemetry telemetry, string userId)
        {
            var properties = CreatePropertiesForUser(userId);

            telemetry.TrackEvent("ClaimsUpdated", properties);
        }
 /// <summary>
 /// Tracks an unauthorized API request for preferences.
 /// </summary>
 /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
 public static void TrackApiPreferencesUnauthorized(this ISiteTelemetry telemetry)
 {
     telemetry.TrackEvent("ApiPreferencesUnauthorized");
 }
        /// <summary>
        /// Tracks a successful API request for preferences.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        public static void TrackApiPreferencesSuccess(this ISiteTelemetry telemetry, string userId)
        {
            var properties = CreatePropertiesForUser(userId);

            telemetry.TrackEvent("ApiPreferencesSuccess", properties);
        }
 /// <summary>
 /// Tracks a suspicious crawler request.
 /// </summary>
 /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
 public static void TrackSuspiciousCrawler(this ISiteTelemetry telemetry)
 {
     telemetry.TrackEvent("SuspiciousCrawler");
 }
        /// <summary>
        /// Tracks a user signing out.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        public static void TrackSignOut(this ISiteTelemetry telemetry, string userId)
        {
            var properties = CreatePropertiesForUser(userId);

            telemetry.TrackEvent("SignOut", properties);
        }
        /// <summary>
        /// Tracks a user signing in.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        /// <param name="provider">The external provider.</param>
        public static void TrackSignIn(this ISiteTelemetry telemetry, string userId, string provider)
        {
            var properties = CreateProperties(userId, provider);

            telemetry.TrackEvent("SignIn", properties);
        }
        /// <summary>
        /// Tracks a successful request to remove a link to an external account.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        /// <param name="provider">The external provider.</param>
        public static void TrackRemoveExternalAccountLink(this ISiteTelemetry telemetry, string userId, string provider)
        {
            var properties = CreateProperties(userId, provider);

            telemetry.TrackEvent("RemoveExternalAccountLink", properties);
        }
        /// <summary>
        /// Tracks a successful request to link an external account.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        /// <param name="provider">The external provider.</param>
        public static void TrackLinkExternalAccountSuccess(this ISiteTelemetry telemetry, string userId, string provider)
        {
            var properties = CreateProperties(userId, provider);

            telemetry.TrackEvent("LinkExternalAccountSuccess", properties);
        }
예제 #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ErrorController"/> class.
 /// </summary>
 /// <param name="resources">The <see cref="SiteResources"/> to use.</param>
 /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
 public ErrorController(SiteResources resources, ISiteTelemetry telemetry)
 {
     _resources = resources;
     _telemetry = telemetry;
 }
        /// <summary>
        /// Tracks a successful request to link the Alexa app.
        /// </summary>
        /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
        /// <param name="userId">The user Id.</param>
        public static void TrackAlexaLink(this ISiteTelemetry telemetry, string userId)
        {
            var properties = CreatePropertiesForUser(userId);

            telemetry.TrackEvent("AlexaLink", properties);
        }
예제 #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ApiController"/> class.
 /// </summary>
 /// <param name="client">The <see cref="IDocumentClient"/> to use.</param>
 /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
 /// <param name="logger">The <see cref="ILogger"/> to use.</param>
 public ApiController(IDocumentClient client, ISiteTelemetry telemetry, ILogger <ApiController> logger)
 {
     _client    = client;
     _telemetry = telemetry;
     _logger    = logger;
 }
예제 #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ApiController"/> class.
 /// </summary>
 /// <param name="service">The <see cref="IAccountService"/> to use.</param>
 /// <param name="telemetry">The <see cref="ISiteTelemetry"/> to use.</param>
 /// <param name="logger">The <see cref="ILogger"/> to use.</param>
 public ApiController(IAccountService service, ISiteTelemetry telemetry, ILogger <ApiController> logger)
 {
     _service   = service;
     _telemetry = telemetry;
     _logger    = logger;
 }