Exemplo n.º 1
0
        /// <summary>
        /// Convert this object into a TraceFlag object.
        /// </summary>
        /// <returns>The converted object.</returns>
        internal SalesForceData.SalesForceAPI.Tooling.TraceFlag ToTraceFlag()
        {
            SalesForceData.SalesForceAPI.Tooling.TraceFlag traceFlag = new SalesForceAPI.Tooling.TraceFlag();

            traceFlag.Id                      = Id;
            traceFlag.ExpirationDate          = ExpirationDate.ToUniversalTime();
            traceFlag.ExpirationDateSpecified = true;
            traceFlag.ApexCode                = ConvertLogLevel(CodeLevel);
            traceFlag.ApexProfiling           = ConvertLogLevel(ProfilingLevel);
            traceFlag.Callout                 = ConvertLogLevel(CalloutLevel);
            traceFlag.Database                = ConvertLogLevel(DatabaseLevel);
            traceFlag.System                  = ConvertLogLevel(SystemLevel);
            traceFlag.Validation              = ConvertLogLevel(ValidationLevel);
            traceFlag.Visualforce             = ConvertLogLevel(VisualForceLevel);
            traceFlag.Workflow                = ConvertLogLevel(WorkflowLevel);

            return(traceFlag);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create new log listener.
        /// </summary>
        /// <param name="traceEntityId">TraceEntityId.</param>
        /// <param name="tracedEntityName">TracedEntityName.</param>
        /// <param name="scopeId">ScopeId.</param>
        /// <param name="scopeName">ScopeName.</param>
        /// <param name="expirationDate">ExpirationDate.</param>
        /// <param name="codeLevel">CodeLevel.</param>
        /// <param name="visualForceLevel">VisualForceLevel.</param>
        /// <param name="profilingLevel">ProfilingLevel.</param>
        /// <param name="calloutLevel">CalloutLevel.</param>
        /// <param name="databaseLevel">DatabaseLevel.</param>
        /// <param name="systemLevel">SystemLevel.</param>
        /// <param name="validationLevel">ValidationLevel.</param>
        /// <param name="workflowLevel">WorkflowLevel.</param>
        /// <returns>The newly created log listener.</returns>
        public LogListener CreateLogListener(
            string traceEntityId,
            string tracedEntityName,
            string scopeId,
            string scopeName,
            DateTime expirationDate,
            LogLevel codeLevel,
            LogLevel visualForceLevel,
            LogLevel profilingLevel,
            LogLevel calloutLevel,
            LogLevel databaseLevel,
            LogLevel systemLevel,
            LogLevel validationLevel,
            LogLevel workflowLevel)
        {
            if (traceEntityId == null)
            {
                throw new ArgumentNullException("traceEntityId");
            }

            SalesForceAPI.Tooling.TraceFlag traceFlag = new SalesForceAPI.Tooling.TraceFlag();
            traceFlag.ApexCode                = codeLevel.ToString().ToUpper();
            traceFlag.ApexProfiling           = profilingLevel.ToString().ToUpper();
            traceFlag.Callout                 = calloutLevel.ToString().ToUpper();
            traceFlag.Database                = databaseLevel.ToString().ToUpper();
            traceFlag.ExpirationDate          = expirationDate.ToUniversalTime();
            traceFlag.ExpirationDateSpecified = true;
            traceFlag.ScopeId                 = scopeId;
            traceFlag.System         = systemLevel.ToString().ToUpper();
            traceFlag.TracedEntityId = traceEntityId;
            traceFlag.Validation     = validationLevel.ToString().ToUpper();
            traceFlag.Visualforce    = visualForceLevel.ToString().ToUpper();
            traceFlag.Workflow       = workflowLevel.ToString().ToUpper();

            SalesForceAPI.Tooling.createResponse response = _client.ToolingClient.create(new SalesForceAPI.Tooling.createRequest(
                                                                                             new SalesForceAPI.Tooling.SessionHeader()
            {
                sessionId = _client.SessionId
            },
                                                                                             new SalesForceAPI.Tooling.sObject[]
            {
                traceFlag
            }));

            if (response != null && response.result != null && response.result.Length == 1)
            {
                if (!response.result[0].success)
                {
                    StringBuilder sb = new StringBuilder();
                    if (response.result[0].errors != null)
                    {
                        foreach (SalesForceAPI.Tooling.Error err in response.result[0].errors)
                        {
                            sb.AppendLine(err.message);
                        }
                    }

                    throw new Exception("Couldn't create log parameters: \r\n" + sb.ToString());
                }
            }
            else
            {
                throw new Exception("Couldn't create log parameters: Invalid response received.");
            }

            traceFlag.Id = response.result[0].id;

            return(new LogListener(traceFlag, scopeName, tracedEntityName));
        }