public async Task AddNewSupportRequestAsync(string subject, string message, string requestorEmailAddress, string reason,
                                                    User user, Package package = null)
        {
            var loggedInUser = user?.Username ?? "Anonymous";

            try
            {
                var newIssue = new Issue();

                // If primary on-call person is not yet configured in the Support Request DB, assign to 'unassigned'.
                var primaryOnCall = await _pagerDutyClient.GetPrimaryOnCallAsync();

                if (string.IsNullOrEmpty(primaryOnCall) || GetAdminKeyFromUsername(primaryOnCall) == -1)
                {
                    newIssue.AssignedTo = null;
                }
                else
                {
                    newIssue.AssignedToId = GetAdminKeyFromUsername(primaryOnCall);
                }

                newIssue.CreatedDate   = DateTime.UtcNow;
                newIssue.Details       = message;
                newIssue.IssueStatusId = IssueStatusKeys.New;
                newIssue.IssueTitle    = subject;

                newIssue.CreatedBy              = loggedInUser;
                newIssue.OwnerEmail             = requestorEmailAddress;
                newIssue.PackageId              = package?.PackageRegistration.Id;
                newIssue.PackageVersion         = package?.Version;
                newIssue.Reason                 = reason;
                newIssue.SiteRoot               = _siteRoot;
                newIssue.UserKey                = user?.Key;
                newIssue.PackageRegistrationKey = package?.PackageRegistrationKey;

                await AddIssueAsync(newIssue);
            }
            catch (SqlException sqlException)
            {
                QuietLog.LogHandledException(sqlException);

                var packageInfo = "N/A";
                if (package != null)
                {
                    packageInfo = $"{package.PackageRegistration.Id} v{package.Version}";
                }

                var errorMessage = $"Error while submitting support request at {DateTime.UtcNow}. User requesting support = {loggedInUser}. Support reason = {reason ?? "N/A"}. Package info = {packageInfo}";

                await _pagerDutyClient.TriggerIncidentAsync(errorMessage);
            }
            catch (Exception e) //In case getting data from PagerDuty has failed
            {
                QuietLog.LogHandledException(e);
            }
        }