Exemple #1
0
        internal WorkloadData Convert(Workload source)
        {
            WorkloadData result = new WorkloadData();

            result.CreatedDate = source.CreatedDate;
            result.DatabaseID  = source.DatabaseID;
            result.Definition  = new WorkloadDefinitionData();
            result.Definition.ForbiddenApplications  = new HashSet <string>();
            result.Definition.ForbiddenDateTimeSlots = new List <WorkloadDateTimeSlotData>();
            result.Definition.ForbiddenRelations     = new HashSet <uint>();
            result.Definition.ForbiddenUsers         = new HashSet <string>();
            if (source.Definition != null)
            {
                if (source.Definition.Applications != null)
                {
                    result.Definition.ForbiddenApplications.AddRange(source.Definition.Applications.ForbiddenValues);
                }
                if (source.Definition.DateTimeSlots != null)
                {
                    foreach (var slot in source.Definition.DateTimeSlots.ForbiddenValues)
                    {
                        result.Definition.ForbiddenDateTimeSlots.Add(Convert(slot));
                    }
                }
                if (source.Definition.Relations != null)
                {
                    result.Definition.ForbiddenRelations.AddRange(source.Definition.Relations.ForbiddenValues);
                }
                if (source.Definition.Users != null)
                {
                    result.Definition.ForbiddenUsers.AddRange(source.Definition.Users.ForbiddenValues);
                }
                if (source.Definition.QueryThresholds != null)
                {
                    result.Definition.StatementMinDurationInMs    = System.Convert.ToInt32(source.Definition.QueryThresholds.MinDuration?.TotalMilliseconds ?? 0.0);
                    result.Definition.StatementMinExectutionCount = System.Convert.ToInt32(source.Definition.QueryThresholds.MinExectutionCount ?? 0);
                }
            }
            result.ID   = source.ID;
            result.Name = source.Name;
            return(result);
        }
 public static (bool IsValid, String ErrorMessage) Validate(WorkloadData workload)
 {
     if (workload == null)
     {
         return(false, "Workload wasn´t provided.");
     }
     else if (workload.DatabaseID <= 0)
     {
         return(false, "Database identification wasn´t provided.");
     }
     else if (workload.Definition == null)
     {
         return(false, "Definition wasn´t provided.");
     }
     else if (String.IsNullOrWhiteSpace(workload.Name))
     {
         return(false, "Name wasn´t provided.");
     }
     return(true, String.Empty);
 }
Exemple #3
0
        internal Workload CreateWorkload(WorkloadData source)
        {
            Workload result = new Workload();

            result.CreatedDate                = DateTime.Now;
            result.DatabaseID                 = source.DatabaseID;
            result.Definition                 = new WorkloadDefinition();
            result.Definition.Applications    = new WorkloadPropertyValuesDefinition <string>();
            result.Definition.DateTimeSlots   = new WorkloadPropertyValuesDefinition <WorkloadDateTimeSlot>();
            result.Definition.QueryThresholds = new WorkloadQueryThresholds();
            result.Definition.Relations       = new WorkloadPropertyValuesDefinition <uint>();
            result.Definition.Users           = new WorkloadPropertyValuesDefinition <string>();
            if (source.Definition != null)
            {
                if (source.Definition.ForbiddenApplications != null)
                {
                    result.Definition.Applications.ForbiddenValues.AddRange(source.Definition.ForbiddenApplications);
                }
                if (source.Definition.ForbiddenDateTimeSlots != null)
                {
                    foreach (var slot in source.Definition.ForbiddenDateTimeSlots)
                    {
                        result.Definition.DateTimeSlots.ForbiddenValues.Add(Convert(slot));
                    }
                }
                if (source.Definition.ForbiddenRelations != null)
                {
                    result.Definition.Relations.ForbiddenValues.AddRange(source.Definition.ForbiddenRelations);
                }
                if (source.Definition.ForbiddenUsers != null)
                {
                    result.Definition.Users.ForbiddenValues.AddRange(source.Definition.ForbiddenUsers);
                }
                result.Definition.QueryThresholds.MinDuration        = TimeSpan.FromMilliseconds(source.Definition.StatementMinDurationInMs);
                result.Definition.QueryThresholds.MinExectutionCount = source.Definition.StatementMinExectutionCount;
            }
            result.Name = source.Name;
            return(result);
        }