Exemple #1
0
        /// <summary>
        /// Logs when an IMEI is deleted from the system.
        /// </summary>
        /// <param name="registeringUser">The registering user.</param>
        /// <param name="imei">The IMEI that was deleted.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">
        /// Raised if the <paramref name="registeringUser"/> or <paramref name="imei"/> are null.
        /// </exception>
        /// <exception cref="System.ArgumentException">
        /// Raised if the <paramref name="registeringUser"/> or <paramref name="imei"/> are empty or whitespace.
        /// </exception>
        public async Task LogIMEIDeleted(string registeringUser, string imei)
        {
            if (registeringUser == null)
            {
                throw new ArgumentNullException(nameof(registeringUser));
            }
            if (string.IsNullOrWhiteSpace(registeringUser))
            {
                throw new ArgumentException("{0} cannot be empty", nameof(registeringUser));
            }
            if (imei == null)
            {
                throw new ArgumentNullException(nameof(imei));
            }
            if (string.IsNullOrWhiteSpace(imei))
            {
                throw new ArgumentException("{0} cannot be empty", nameof(imei));
            }

            var telemetry = new EventTelemetry(nameof(LogEventType.IMEIDeleted))
            {
                Timestamp = DateTimeOffset.Now
            };

            telemetry.Properties["SourceUser"] = registeringUser;
            telemetry.Properties["IMEI"]       = imei;

            _client.TrackEvent(telemetry);

            var logEntry = new LogEntry
            {
                Date       = DateTimeOffset.Now,
                SourceUser = registeringUser,
                Type       = LogEventType.IMEIDeleted
            };
            var logProperty = new LogEntryProperty
            {
                PropertyType  = LogPropertyType.IMEI,
                PropertyValue = imei
            };

            logEntry.Properties.Add(logProperty);

            _dataContext.LogEntries.Add(logEntry);
            await _dataContext.SaveChangesAsync();
        }