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); }
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); }