Ejemplo n.º 1
0
 /// <summary>
 /// Test data source
 /// </summary>
 public IEnumerable <TestCaseData> GetTestData( )
 {
     return(TenantHealthHelpers.GetTenants( ).Select(
                tenant => new TestCaseData(tenant)
                .SetCategory(tenant.TenantName)
                .SetCategory("Tenants")
                ));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Fetch list of all apps across all tenants.
        /// </summary>
        public IEnumerable <TestCaseData> InstalledApps_GetTestData( )
        {
            // Must return TenantId,EntityId,Name for all calculated fields
            string customSql = @"
                select isOfTypeRel.TenantId, isOfTypeRel.FromId, name.Data + ' (' + solutionVersion.Data + ')' from Relationship isOfTypeRel
                join Data_Alias isOfTypeAlias on isOfTypeRel.TypeId = isOfTypeAlias.EntityId and isOfTypeRel.TenantId = isOfTypeAlias.TenantId and isOfTypeAlias.Data='isOfType'
                join Data_Alias typeAlias on isOfTypeRel.ToId = typeAlias.EntityId and isOfTypeRel.TenantId = typeAlias.TenantId and typeAlias.Data='solution' and typeAlias.Namespace='core'
                join Data_Alias nameAlias on isOfTypeRel.TenantId = nameAlias.TenantId and nameAlias.Data='name'
                join Data_Alias solutionVersionStringAlias on isOfTypeRel.TenantId = solutionVersionStringAlias.TenantId and solutionVersionStringAlias.Data='solutionVersionString'
                left join Data_NVarChar name on isOfTypeRel.FromId = name.EntityId and isOfTypeRel.TenantId = name.TenantId and name.FieldId = nameAlias.EntityId
                left join Data_NVarChar solutionVersion on isOfTypeRel.FromId = solutionVersion.EntityId and isOfTypeRel.TenantId = solutionVersion.TenantId and solutionVersion.FieldId = solutionVersionStringAlias.EntityId
                where isOfTypeRel.TenantId <> 0";

            return(TenantHealthHelpers.GetInstancesAsTestData(null, AppsToIgnore, customSql));
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Releases unmanaged and - optionally - managed resources.
        /// </summary>
        public void Dispose( )
        {
            FinalPrivateBytes = Process.GetCurrentProcess( ).PrivateMemorySize64;

            string message = string.Empty;

            if (Arguments != null && Arguments.Length > 0)
            {
                message  = string.Join(", ", Arguments.Select(arg => $"{arg.Key}: {arg.Value}"));
                message += ", ";
            }

            message += $"Initial Memory: {TenantHealthHelpers.ToPrettySize( InitialPrivateBytes, 2 )}, Final Memory: {TenantHealthHelpers.ToPrettySize( FinalPrivateBytes, 2 )}, Difference: {TenantHealthHelpers.ToPrettySize( FinalPrivateBytes - InitialPrivateBytes, 2 )}";

            Trace.WriteLine(message);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Fetch list of all workflows across all tenants.
        /// </summary>
        public IEnumerable <TestCaseData> CompileCalculation_GetTestData( )
        {
            // Must return TenantId,EntityId,Name for all calculated fields
            string customSql = @"
                select icfData.TenantId, icfData.EntityId, name.Data + ' (on ' + typeName.Data + ')'
                from Data_Bit icfData
                join Data_Alias nameAlias on icfData.TenantId = nameAlias.TenantId and nameAlias.Data='name'
                join Data_Alias fieldIsOnTypeAlias on icfData.TenantId = fieldIsOnTypeAlias.TenantId and fieldIsOnTypeAlias.Data='fieldIsOnType'
                join Data_Alias icfAlias on icfData.TenantId = icfAlias.TenantId and icfData.FieldId = icfAlias.EntityId and icfAlias.Data='isCalculatedField' and icfAlias.Namespace='core'
                left join Data_NVarChar name on icfData.EntityId = name.EntityId and icfData.TenantId = name.TenantId and name.FieldId = nameAlias.EntityId
                left join Relationship fieldType on icfData.EntityId = fieldType.FromId and icfData.TenantId = fieldType.TenantId and fieldType.TypeId = fieldIsOnTypeAlias.EntityId
                left join Data_NVarChar typeName on fieldType.ToId = typeName.EntityId and fieldType.TenantId = typeName.TenantId and typeName.FieldId = nameAlias.EntityId
                where icfData.TenantId <> 0 and icfData.Data = 1 --isCalculatedField=true
                order by icfData.TenantId, name.Data";

            return(TenantHealthHelpers.GetInstancesAsTestData(null, CalculatedFieldsToIgnore, customSql));
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
        /// </summary>
        public void Dispose( )
        {
            long completePrivateBytes = Process.GetCurrentProcess( ).PrivateMemorySize64;

            if (completePrivateBytes > Threshold)
            {
                Trace.WriteLine($"Private bytes exceeded {TenantHealthHelpers.ToPrettySize( Threshold, 2 )}. Running cleanup action...");

                Action.Invoke( );

                if (CollectGarbage)
                {
                    GC.Collect( );
                }
            }

            Action = null;
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Fetch list of all reports across all tenants.
 /// </summary>
 public IEnumerable <TestCaseData> RunReport_GetTestData( )
 {
     return(TenantHealthHelpers.GetInstancesAsTestData("core:report", ReportsToIgnore));
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Fetch list of all workflows across all tenants.
 /// </summary>
 public IEnumerable <TestCaseData> CompileWorkflow_GetTestData( )
 {
     return(TenantHealthHelpers.GetInstancesAsTestData("core:workflow", WorkflowsToIgnore));
 }