Esempio n. 1
0
    protected override void InitializeTargetObject()
    {
        base.InitializeTargetObject();

        if (!string.IsNullOrWhiteSpace(ContextID))
        {
            targetAuditLog = LoadObjectFromAPI <msAuditLog>(ContextID);
        }
    }
Esempio n. 2
0
    public static string LogException(Exception ex, Uri u)
    {
        //if there's no http context do not log
        //If we don't know what association this is we can't log either because a auditlog requires a wall to save
        if (HttpContext.Current == null ||   CurrentAssociation == null)
            return null;

        try
        {
            NameValueCollection queryStringVariables = new NameValueCollection();
            if (u != null)
                queryStringVariables = HttpUtility.ParseQueryString(u.Query);
            string contextId = queryStringVariables["contextID"];

            MemberSuiteObject contextObject = null;

            using (IConciergeAPIService proxy = ConciergeAPIProxyGenerator.GenerateProxy())
            {
                //Get the current user details from the Concierge API
                LoginResult loginResult = proxy.WhoAmI().ResultValue;
                msUser currentUser = loginResult.PortalUser == null ? loginResult.User.ConvertTo<msUser>() : loginResult.PortalUser.ConvertTo<msUser>();

                //If there's a specified context then get the details on the context object
                if (!string.IsNullOrWhiteSpace(contextId))
                {
                    ConciergeResult<MemberSuiteObject> getResult = proxy.Get(contextId);
                    if (getResult.Success)
                        contextObject = getResult.ResultValue;
                }

                msAuditLog auditLog = constructAuditLog(currentUser, ex, contextId, contextObject);
                ConciergeResult<MemberSuiteObject> saveResult = proxy.RecordErrorAuditLog(auditLog);
                
                if (saveResult.Success)
                    return saveResult.ResultValue.SafeGetValue<string>("ID");
            }
        }
        catch(Exception e)
        {
            Console.WriteLine("Unable to log exception.");
            Console.WriteLine(e.ToString());
            Console.WriteLine(ex.ToString());
        }

        return null;
    }
Esempio n. 3
0
    private static msAuditLog constructAuditLog(msUser currentUser, Exception ex, string contextId, MemberSuiteObject contextObject)
    {
        msAuditLog result = new msAuditLog();
        result.AffectedRecord_ID = contextId;
        result.Type = AuditLogType.Error;

        if (currentUser != null)
            result.Actor = currentUser.ID;

        if (contextObject != null)
        {
            result.AffectedRecord_Type = contextObject.ClassType;
            result.AffectedRecord_Name = contextObject.SafeGetValue<string>("Name");
        }

        result.Description = ex.ToString();

        return result;
    }