diff --git a/Context/DataContext.cs b/Context/DataContext.cs index 829d2a2..7c09319 100644 --- a/Context/DataContext.cs +++ b/Context/DataContext.cs @@ -20,13 +20,19 @@ namespace Microsoft.SelfService.Portal.Core.API.Context public DbSet Deployments { get; set; } public DbSet DeploymentGroups { get; set; } public DbSet Templates { get; set; } + public DbSet DeploymentRules { get; set; } + public DbSet DeploymentRuleSteps { get; set; } public DbSet TemplateCategories { get; set; } public DbSet Services { get; set; } + public DbSet ServiceRoleDefinitions { get; set; } public DbSet TemplateOptions { get; set; } public DbSet Options { get; set; } public DbSet OptionCategories { get; set; } public DbSet Jobs { get; set; } public DbSet Runbooks { get; set; } + public DbSet QueueJobs { get; set; } + public DbSet QueueJobTargets { get; set; } + public DbSet QueueJobSteps { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -63,6 +69,41 @@ namespace Microsoft.SelfService.Portal.Core.API.Context .WithMany(s => s.TemplateCategories) .HasForeignKey(tc => tc.ServiceId); + modelBuilder.Entity() + .HasOne(role => role.Service) + .WithMany(service => service.RoleDefinitions) + .HasForeignKey(role => role.ServiceId); + + modelBuilder.Entity() + .ToTable("DeploymentBatches"); + + modelBuilder.Entity() + .ToTable("DeploymentExecutions"); + modelBuilder.Entity() + .Property(deployment => deployment.DeploymentGroupId) + .HasColumnName("DeploymentBatchId"); + + modelBuilder.Entity() + .ToTable("DeploymentJobs"); + + modelBuilder.Entity() + .ToTable("DeploymentJobTargets"); + modelBuilder.Entity() + .Property(target => target.QueueJobId) + .HasColumnName("DeploymentJobId"); + modelBuilder.Entity() + .Property(target => target.DeploymentGroupId) + .HasColumnName("DeploymentBatchId"); + + modelBuilder.Entity() + .ToTable("DeploymentJobSteps"); + modelBuilder.Entity() + .Property(step => step.QueueJobId) + .HasColumnName("DeploymentJobId"); + modelBuilder.Entity() + .Property(step => step.DependsOnQueueJobStepId) + .HasColumnName("DependsOnDeploymentJobStepId"); + modelBuilder.Entity() .HasKey(d => new { d.VirtualMachineId, d.DeploymentGroupId }); @@ -80,6 +121,32 @@ namespace Microsoft.SelfService.Portal.Core.API.Context .HasOne(dg => dg.Template) .WithMany(t => t.DeploymentGroups) .HasForeignKey(dg => dg.TemplateId); + + modelBuilder.Entity() + .HasOne(template => template.DeploymentRule) + .WithMany() + .HasForeignKey(template => template.DeploymentRuleId); + + modelBuilder.Entity() + .HasOne(step => step.DeploymentRule) + .WithMany(rule => rule.Steps) + .HasForeignKey(step => step.DeploymentRuleId); + + modelBuilder.Entity() + .HasOne(target => target.QueueJob) + .WithMany(job => job.Targets) + .HasForeignKey(target => target.QueueJobId); + + modelBuilder.Entity() + .HasOne(step => step.QueueJob) + .WithMany(job => job.Steps) + .HasForeignKey(step => step.QueueJobId); + + modelBuilder.Entity() + .HasOne(step => step.DependsOnQueueJobStep) + .WithMany() + .HasForeignKey(step => step.DependsOnQueueJobStepId) + .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() .HasKey(j => new { j.RunbookId, j.DeploymentId }); diff --git a/Controllers/DeploymentController.cs b/Controllers/DeploymentController.cs index 9169e08..80e78ba 100644 --- a/Controllers/DeploymentController.cs +++ b/Controllers/DeploymentController.cs @@ -5,12 +5,14 @@ using Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Get; using Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Edit; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; +using Microsoft.SelfService.Portal.Core.API.Context; using Microsoft.SelfService.Portal.Core.API.Events.Interfaces; using System.Reflection; using System.Collections; using System.Dynamic; using System.Text.Json; +using Microsoft.EntityFrameworkCore; namespace Microsoft.SelfService.Portal.Core.API.Controllers { @@ -19,12 +21,21 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers public class DeploymentController : Controller { private readonly IDeploymentInterface _deploymentInterface; + private readonly IQueueJobService _queueJobService; + private readonly DataContext _context; private readonly IMapper _mapper; private readonly IEventHandlerInterface _eventHandlerInterface; - public DeploymentController(IDeploymentInterface deploymentInterface, IMapper mapper, IEventHandlerInterface eventHandlerInterface) + public DeploymentController( + IDeploymentInterface deploymentInterface, + IQueueJobService queueJobService, + DataContext context, + IMapper mapper, + IEventHandlerInterface eventHandlerInterface) { _deploymentInterface = deploymentInterface; + _queueJobService = queueJobService; + _context = context; _mapper = mapper; _eventHandlerInterface = eventHandlerInterface; } @@ -81,6 +92,163 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers return Ok(deploymentMap.Id); } + [HttpPost("Request")] + [ProducesResponseType(200)] + [ProducesResponseType(400)] + public IActionResult AddDeploymentRequest([FromBody] AddDeploymentRequestDto request) + { + if (request == null) + return BadRequest(ModelState); + + if (request.VirtualMachineIds == null || request.VirtualMachineIds.Count == 0) + { + ModelState.AddModelError("", "At least one VirtualMachine must be selected."); + return BadRequest(ModelState); + } + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + try + { + var queueJobId = _queueJobService.EnqueueDeploymentRequest( + request.DeploymentGroupId, + request.VirtualMachineIds, + request.JsonData); + + return Ok(queueJobId); + } + catch (InvalidOperationException ex) + { + ModelState.AddModelError("", ex.Message); + return BadRequest(ModelState); + } + } + + [HttpGet("QueueJobs")] + [ProducesResponseType(200, Type = typeof(IEnumerable))] + public IActionResult GetQueueJobs() + { + var queueJobs = _context.QueueJobs + .AsNoTracking() + .Include(job => job.Targets) + .Include(job => job.Steps) + .OrderByDescending(job => job.Created) + .Select(job => new GetQueueJobDto + { + Id = job.Id, + Type = job.Type, + Status = job.Status, + Attempts = job.Attempts, + MaxAttempts = job.MaxAttempts, + Started = job.Started, + Finished = job.Finished, + ErrorMessage = job.ErrorMessage, + TargetCount = job.Targets.Count, + SucceededTargetCount = job.Targets.Count(target => target.Status == QueueJobStatus.Succeeded), + FailedTargetCount = job.Targets.Count(target => target.Status == QueueJobStatus.Failed) + }) + .ToList(); + + return Ok(queueJobs); + } + + [HttpGet("QueueJobs/{Id}")] + [ProducesResponseType(200, Type = typeof(GetQueueJobDetailsDto))] + [ProducesResponseType(404)] + public IActionResult GetQueueJobById(Guid Id) + { + var queueJob = _context.QueueJobs + .AsNoTracking() + .Include(job => job.Targets) + .Include(job => job.Steps) + .FirstOrDefault(job => job.Id == Id); + + if (queueJob == null) + return NotFound(); + + var details = new GetQueueJobDetailsDto + { + Id = queueJob.Id, + Type = queueJob.Type, + Status = queueJob.Status, + PayloadJson = queueJob.PayloadJson, + Attempts = queueJob.Attempts, + MaxAttempts = queueJob.MaxAttempts, + Started = queueJob.Started, + Finished = queueJob.Finished, + ErrorMessage = queueJob.ErrorMessage, + MetadataJson = queueJob.MetadataJson, + RuleSnapshotJson = queueJob.RuleSnapshotJson, + Created = queueJob.Created, + CreatedBy = queueJob.CreatedBy, + Modified = queueJob.Modified, + ModifiedBy = queueJob.ModifiedBy, + Targets = queueJob.Targets.Select(target => new GetQueueJobTargetDto + { + Id = target.Id, + VirtualMachineId = target.VirtualMachineId, + DeploymentGroupId = target.DeploymentGroupId, + TemplateId = target.TemplateId, + Status = target.Status, + Attempts = target.Attempts, + ErrorMessage = target.ErrorMessage + }).ToList(), + Steps = queueJob.Steps + .OrderBy(step => step.SortOrder) + .Select(step => new GetQueueJobStepDto + { + Id = step.Id, + DependsOnQueueJobStepId = step.DependsOnQueueJobStepId, + SortOrder = step.SortOrder, + Name = step.Name, + StepType = step.StepType, + Status = step.Status, + MetadataJson = step.MetadataJson, + ApprovedAt = step.ApprovedAt, + ApprovedBy = step.ApprovedBy, + ApprovalComment = step.ApprovalComment + }).ToList() + }; + + return Ok(details); + } + + [HttpPost("QueueJobs/{Id}/Retry")] + [ProducesResponseType(204)] + [ProducesResponseType(404)] + public IActionResult RetryQueueJob(Guid Id) + { + if (!_queueJobService.RetryQueueJob(Id)) + return NotFound(); + + return NoContent(); + } + + [HttpPost("QueueJobs/Steps/{stepId}/Approve")] + [ProducesResponseType(204)] + [ProducesResponseType(404)] + public IActionResult ApproveQueueJobStep(Guid stepId, [FromBody] QueueJobStepApprovalDto? payload) + { + var approvedBy = payload?.ApprovedBy ?? User?.Identity?.Name ?? "System"; + if (!_queueJobService.ApproveQueueJobStep(stepId, approvedBy, payload?.Comment)) + return NotFound(); + + return NoContent(); + } + + [HttpPost("QueueJobs/Steps/{stepId}/Reject")] + [ProducesResponseType(204)] + [ProducesResponseType(404)] + public IActionResult RejectQueueJobStep(Guid stepId, [FromBody] QueueJobStepApprovalDto? payload) + { + var approvedBy = payload?.ApprovedBy ?? User?.Identity?.Name ?? "System"; + if (!_queueJobService.RejectQueueJobStep(stepId, approvedBy, payload?.Comment)) + return NotFound(); + + return NoContent(); + } + [HttpDelete("{Id}")] [ProducesResponseType(204)] [ProducesResponseType(400)] diff --git a/Controllers/DeploymentGroupController.cs b/Controllers/DeploymentGroupController.cs index 9962ba4..9c4f30b 100644 --- a/Controllers/DeploymentGroupController.cs +++ b/Controllers/DeploymentGroupController.cs @@ -65,7 +65,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers var deploymentgroupMap = _mapper.Map(deploymentgroup); - if (!_deploymentgroupInterface.AddDeploymentGroupById(deploymentgroupMap)) + if (!_deploymentgroupInterface.AddDeploymentGroupById(deploymentgroupMap, deploymentgroup.VirtualMachineIds)) { ModelState.AddModelError("", "Something went wrong while saving"); return StatusCode(500, ModelState); diff --git a/Controllers/EnvironmentController.cs b/Controllers/EnvironmentController.cs index 1cec133..cb223ec 100644 --- a/Controllers/EnvironmentController.cs +++ b/Controllers/EnvironmentController.cs @@ -139,7 +139,8 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers if (!_environmentInterface.CheckEnvironmentById(Id)) return NotFound(); - var environment = _mapper.Map(_environmentInterface.GetLinkedDomainsByEnvironmentId(Id)); + var environment = GetEnvironmentDomainDto.FromModel( + _environmentInterface.GetLinkedDomainsByEnvironmentId(Id)); if (!ModelState.IsValid) return BadRequest(ModelState); diff --git a/Controllers/ServiceController.cs b/Controllers/ServiceController.cs index 2aa69b7..3d32c06 100644 --- a/Controllers/ServiceController.cs +++ b/Controllers/ServiceController.cs @@ -1,8 +1,9 @@ -using AutoMapper; +using AutoMapper; using Microsoft.AspNetCore.Mvc; +using Microsoft.SelfService.Portal.Core.API.Dto.Service.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.Service.Edit; using Microsoft.SelfService.Portal.Core.API.Dto.Service.Get; -using Microsoft.SelfService.Portal.Core.API.Events; -using Microsoft.SelfService.Portal.Core.API.Events.Interfaces; +using Microsoft.SelfService.Portal.Core.API.Dto.Service.RoleDefinition; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; @@ -32,20 +33,210 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers return Ok(services); } - + [HttpGet("{Id}")] [ProducesResponseType(200, Type = typeof(ServiceModel))] + [ProducesResponseType(404)] public IActionResult GetServiceById(Guid Id) { - if(!_serviceInterface.CheckServiceById(Id)) + if (!_serviceInterface.CheckServiceById(Id)) return NotFound(); var service = _mapper.Map(_serviceInterface.GetServiceById(Id)); - - if(!ModelState.IsValid) + + if (!ModelState.IsValid) return BadRequest(ModelState); return Ok(service); } + + [HttpPost] + [ProducesResponseType(200)] + [ProducesResponseType(400)] + public IActionResult AddServiceById([FromBody] AddServiceDto service) + { + if (service == null) + return BadRequest(ModelState); + + if (_serviceInterface.CheckServiceByName(service.Name)) + { + ModelState.AddModelError("", "Service already exists"); + return StatusCode(422, ModelState); + } + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var serviceMap = _mapper.Map(service); + + if (!_serviceInterface.AddServiceById(serviceMap)) + { + ModelState.AddModelError("", "Something went wrong while saving"); + return StatusCode(500, ModelState); + } + + return Ok(serviceMap.Id); + } + + [HttpPut("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult EditServiceById(Guid Id, [FromBody] EditServiceDto service) + { + if (service == null) + return BadRequest(ModelState); + + if (!_serviceInterface.CheckServiceById(Id)) + return NotFound(); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var serviceMap = _mapper.Map(service); + serviceMap.Id = Id; + + if (!_serviceInterface.EditServiceById(serviceMap)) + { + ModelState.AddModelError("", "Something went wrong"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + + [HttpDelete("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult DeleteServiceById(Guid Id) + { + if (!_serviceInterface.CheckServiceById(Id)) + return NotFound(); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var service = _serviceInterface.GetServiceById(Id); + + if (!_serviceInterface.DeleteServiceById(service)) + { + ModelState.AddModelError("", "Something went wrong while deleting"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + + [HttpGet("{Id}/RoleDefinitions")] + [ProducesResponseType(200, Type = typeof(IEnumerable))] + [ProducesResponseType(404)] + public IActionResult GetRoleDefinitionsByServiceId(Guid Id) + { + if (!_serviceInterface.CheckServiceById(Id)) + return NotFound(); + + var roleDefinitions = _serviceInterface.GetRoleDefinitionsByServiceId(Id); + return Ok(roleDefinitions); + } + + [HttpPost("{Id}/RoleDefinitions")] + [ProducesResponseType(200)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult AddRoleDefinition(Guid Id, [FromBody] AddServiceRoleDefinitionDto roleDefinition) + { + if (!_serviceInterface.CheckServiceById(Id)) + return NotFound(); + + if (roleDefinition == null) + return BadRequest(ModelState); + + var service = _serviceInterface.GetServiceById(Id); + if (service.IsCloudService) + return BadRequest("Role definitions are not supported for cloud services."); + + if (_serviceInterface.CheckRoleDefinitionKey(Id, roleDefinition.Key)) + return Conflict("Role key already exists for this service."); + + var roleDefinitionModel = new ServiceRoleDefinitionModel + { + ServiceId = Id, + Key = roleDefinition.Key, + Name = roleDefinition.Name, + Description = roleDefinition.Description + }; + + if (!_serviceInterface.AddRoleDefinition(roleDefinitionModel)) + { + ModelState.AddModelError("", "Something went wrong while saving role definition"); + return StatusCode(500, ModelState); + } + + return Ok(roleDefinitionModel.Id); + } + + [HttpPut("{Id}/RoleDefinitions/{RoleDefinitionId}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult EditRoleDefinition(Guid Id, Guid RoleDefinitionId, [FromBody] EditServiceRoleDefinitionDto roleDefinition) + { + if (!_serviceInterface.CheckServiceById(Id)) + return NotFound(); + + if (!_serviceInterface.CheckRoleDefinitionById(RoleDefinitionId)) + return NotFound(); + + if (roleDefinition == null) + return BadRequest(ModelState); + + var service = _serviceInterface.GetServiceById(Id); + if (service.IsCloudService) + return BadRequest("Role definitions are not supported for cloud services."); + + if (_serviceInterface.CheckRoleDefinitionKey(Id, roleDefinition.Key, RoleDefinitionId)) + return Conflict("Role key already exists for this service."); + + var roleDefinitionModel = _serviceInterface.GetRoleDefinitionById(RoleDefinitionId); + if (roleDefinitionModel.ServiceId != Id) + return BadRequest("Role definition does not belong to this service."); + + roleDefinitionModel.Key = roleDefinition.Key; + roleDefinitionModel.Name = roleDefinition.Name; + roleDefinitionModel.Description = roleDefinition.Description; + + if (!_serviceInterface.EditRoleDefinition(roleDefinitionModel)) + { + ModelState.AddModelError("", "Something went wrong while updating role definition"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + + [HttpDelete("{Id}/RoleDefinitions/{RoleDefinitionId}")] + [ProducesResponseType(204)] + [ProducesResponseType(404)] + public IActionResult DeleteRoleDefinition(Guid Id, Guid RoleDefinitionId) + { + if (!_serviceInterface.CheckServiceById(Id)) + return NotFound(); + + if (!_serviceInterface.CheckRoleDefinitionById(RoleDefinitionId)) + return NotFound(); + + var roleDefinitionModel = _serviceInterface.GetRoleDefinitionById(RoleDefinitionId); + if (roleDefinitionModel.ServiceId != Id) + return BadRequest("Role definition does not belong to this service."); + + if (!_serviceInterface.DeleteRoleDefinition(roleDefinitionModel)) + { + ModelState.AddModelError("", "Something went wrong while deleting role definition"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } } } diff --git a/Controllers/TemplateCategoryController.cs b/Controllers/TemplateCategoryController.cs new file mode 100644 index 0000000..27a39d6 --- /dev/null +++ b/Controllers/TemplateCategoryController.cs @@ -0,0 +1,130 @@ +using AutoMapper; +using Microsoft.AspNetCore.Mvc; +using Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Edit; +using Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Get; +using Microsoft.SelfService.Portal.Core.API.Interfaces; +using Microsoft.SelfService.Portal.Core.API.Models; + +namespace Microsoft.SelfService.Portal.Core.API.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class TemplateCategoryController : Controller + { + private readonly IMapper _mapper; + private readonly ITemplateCategoryInterface _templateCategoryInterface; + + public TemplateCategoryController(IMapper mapper, ITemplateCategoryInterface templateCategoryInterface) + { + _mapper = mapper; + _templateCategoryInterface = templateCategoryInterface; + } + + [HttpGet] + [ProducesResponseType(200, Type = typeof(IEnumerable))] + public IActionResult GetTemplateCategories() + { + var templateCategories = _mapper.Map>(_templateCategoryInterface.GetTemplateCategories()); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + return Ok(templateCategories); + } + + [HttpGet("{Id}")] + [ProducesResponseType(200, Type = typeof(TemplateCategoryModel))] + [ProducesResponseType(404)] + public IActionResult GetTemplateCategoryById(Guid Id) + { + if (!_templateCategoryInterface.CheckTemplateCategoryById(Id)) + return NotFound(); + + var templateCategory = _mapper.Map(_templateCategoryInterface.GetTemplateCategoryById(Id)); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + return Ok(templateCategory); + } + + [HttpPost] + [ProducesResponseType(200)] + [ProducesResponseType(400)] + public IActionResult AddTemplateCategoryById([FromBody] AddTemplateCategoryDto templateCategory) + { + if (templateCategory == null) + return BadRequest(ModelState); + + if (_templateCategoryInterface.CheckTemplateCategoryByName(templateCategory.Name)) + { + ModelState.AddModelError("", "TemplateCategory already exists"); + return StatusCode(422, ModelState); + } + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var templateCategoryMap = _mapper.Map(templateCategory); + + if (!_templateCategoryInterface.AddTemplateCategoryById(templateCategoryMap)) + { + ModelState.AddModelError("", "Something went wrong while saving"); + return StatusCode(500, ModelState); + } + + return Ok(templateCategoryMap.Id); + } + + [HttpPut("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult EditTemplateCategoryById(Guid Id, [FromBody] EditTemplateCategoryDto templateCategory) + { + if (templateCategory == null) + return BadRequest(ModelState); + + if (!_templateCategoryInterface.CheckTemplateCategoryById(Id)) + return NotFound(); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var templateCategoryMap = _mapper.Map(templateCategory); + templateCategoryMap.Id = Id; + + if (!_templateCategoryInterface.EditTemplateCategoryById(templateCategoryMap)) + { + ModelState.AddModelError("", "Something went wrong"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + + [HttpDelete("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult DeleteTemplateCategoryById(Guid Id) + { + if (!_templateCategoryInterface.CheckTemplateCategoryById(Id)) + return NotFound(); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var templateCategory = _templateCategoryInterface.GetTemplateCategoryById(Id); + + if (!_templateCategoryInterface.DeleteTemplateCategoryById(templateCategory)) + { + ModelState.AddModelError("", "Something went wrong while deleting"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + } +} diff --git a/Controllers/TemplateController.cs b/Controllers/TemplateController.cs index 16efa69..ab721a7 100644 --- a/Controllers/TemplateController.cs +++ b/Controllers/TemplateController.cs @@ -1,10 +1,10 @@ -using AutoMapper; +using AutoMapper; using Microsoft.AspNetCore.Mvc; -using Microsoft.SelfService.Portal.Core.API.Dto.Service.Get; +using Microsoft.SelfService.Portal.Core.API.Dto.Template.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.Template.Edit; using Microsoft.SelfService.Portal.Core.API.Dto.Template.Get; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; -using System.Reflection; namespace Microsoft.SelfService.Portal.Core.API.Controllers { @@ -13,11 +13,16 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers public class TemplateController : Controller { private readonly ITemplateInterface _templateInterface; + private readonly IQueueJobService _queueJobService; private readonly IMapper _mapper; - public TemplateController(ITemplateInterface templateInterface, IMapper mapper) + public TemplateController( + ITemplateInterface templateInterface, + IQueueJobService queueJobService, + IMapper mapper) { _templateInterface = templateInterface; + _queueJobService = queueJobService; _mapper = mapper; } @@ -35,6 +40,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers [HttpGet("{Id}")] [ProducesResponseType(200, Type = typeof(TemplateModel))] + [ProducesResponseType(404)] public IActionResult GetTemplateById(Guid Id) { if (!_templateInterface.CheckTemplateById(Id)) @@ -47,5 +53,90 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers return Ok(template); } + + [HttpPost] + [ProducesResponseType(200)] + [ProducesResponseType(400)] + public IActionResult AddTemplateById([FromBody] AddTemplateDto template) + { + if (template == null) + return BadRequest(ModelState); + + if (_templateInterface.CheckTemplateByName(template.Name)) + { + ModelState.AddModelError("", "Template already exists"); + return StatusCode(422, ModelState); + } + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var templateMap = _mapper.Map(template); + + if (!_templateInterface.AddTemplateById(templateMap)) + { + ModelState.AddModelError("", "Something went wrong while saving"); + return StatusCode(500, ModelState); + } + + return Ok(templateMap.Id); + } + + [HttpPut("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult EditTemplateById(Guid Id, [FromBody] EditTemplateDto template) + { + if (template == null) + return BadRequest(ModelState); + + if (!_templateInterface.CheckTemplateById(Id)) + return NotFound(); + + var existingTemplate = _templateInterface.GetTemplateById(Id); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var templateMap = _mapper.Map(template); + templateMap.Id = Id; + + if (!_templateInterface.EditTemplateById(templateMap)) + { + ModelState.AddModelError("", "Something went wrong"); + return StatusCode(500, ModelState); + } + + if (!string.Equals(existingTemplate.JSONData, template.JSONData, StringComparison.Ordinal)) + { + _queueJobService.EnqueueTemplateJsonChanged(Id, existingTemplate.JSONData, template.JSONData); + } + + return NoContent(); + } + + [HttpDelete("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult DeleteTemplateById(Guid Id) + { + if (!_templateInterface.CheckTemplateById(Id)) + return NotFound(); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var template = _templateInterface.GetTemplateById(Id); + + if (!_templateInterface.DeleteTemplateById(template)) + { + ModelState.AddModelError("", "Something went wrong while deleting"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } } } diff --git a/Controllers/VirtualMachineController.cs b/Controllers/VirtualMachineController.cs index 81e879c..cf8e2ce 100644 --- a/Controllers/VirtualMachineController.cs +++ b/Controllers/VirtualMachineController.cs @@ -1,5 +1,7 @@ -using AutoMapper; +using AutoMapper; using Microsoft.AspNetCore.Mvc; +using Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Edit; using Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Get; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; @@ -9,13 +11,15 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers [Route("api/[controller]")] [ApiController] public class VirtualMachineController : Controller - { + { private readonly IVirtualMachineInterface _virtualmachineInterface; + private readonly IDomainInterface _domainInterface; private readonly IMapper _mapper; - public VirtualMachineController(IVirtualMachineInterface virtualmachineInterface, IMapper mapper) + public VirtualMachineController(IVirtualMachineInterface virtualmachineInterface, IDomainInterface domainInterface, IMapper mapper) { _virtualmachineInterface = virtualmachineInterface; + _domainInterface = domainInterface; _mapper = mapper; } @@ -23,12 +27,12 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers [ProducesResponseType(200, Type = typeof(IEnumerable))] public IActionResult GetVirtualMachines() { - var virtualmachines = _mapper.Map>(_virtualmachineInterface.GetVirtualMachines()); + var virtualMachines = _mapper.Map>(_virtualmachineInterface.GetVirtualMachines()); if (!ModelState.IsValid) return BadRequest(ModelState); - return Ok(virtualmachines); + return Ok(virtualMachines); } [HttpGet("{Id}")] @@ -36,16 +40,161 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers [ProducesResponseType(400)] public IActionResult GetVirtualMachineById(Guid Id) { + if (!_virtualmachineInterface.CheckVirtualMachineById(Id)) + return NotFound(); + + var virtualMachine = _mapper.Map(_virtualmachineInterface.GetVirtualMachineById(Id)); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + return Ok(virtualMachine); + } + + [HttpPost] + [ProducesResponseType(200)] + [ProducesResponseType(400)] + public IActionResult AddVirtualMachineById([FromBody] AddVirtualMachineDto virtualMachine) + { + if (virtualMachine == null) + return BadRequest(ModelState); + + if (_virtualmachineInterface.CheckVirtualMachineByName(virtualMachine.Name)) + { + ModelState.AddModelError("", "VirtualMachine already exists"); + return StatusCode(422, ModelState); + } + + if (virtualMachine.DomainID.HasValue && !_domainInterface.CheckDomainById(virtualMachine.DomainID.Value)) + { + ModelState.AddModelError("", "Domain does not exist"); + return BadRequest(ModelState); + } + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var virtualMachineMap = _mapper.Map(virtualMachine); + + if (!_virtualmachineInterface.AddVirtualMachineById(virtualMachineMap)) + { + ModelState.AddModelError("", "Something went wrong while saving"); + return StatusCode(500, ModelState); + } + + return Ok(virtualMachineMap.Id); + } + + [HttpPut("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult EditVirtualMachineById(Guid Id, [FromBody] EditVirtualMachineDto virtualMachine) + { + if (virtualMachine == null) + return BadRequest(ModelState); if (!_virtualmachineInterface.CheckVirtualMachineById(Id)) return NotFound(); - var virtualmachines = _mapper.Map(_virtualmachineInterface.GetVirtualMachineById(Id)); - - if(!ModelState.IsValid) + if (!ModelState.IsValid) return BadRequest(ModelState); - return Ok(virtualmachines); + var existingVirtualMachine = _virtualmachineInterface.GetVirtualMachineById(Id); + if (existingVirtualMachine == null) + return NotFound(); + + existingVirtualMachine.Name = virtualMachine.Name; + existingVirtualMachine.ExternalId = virtualMachine.ExternalId; + existingVirtualMachine.MetadataJson = virtualMachine.MetadataJson; + + if (!_virtualmachineInterface.EditVirtualMachineById(existingVirtualMachine)) + { + ModelState.AddModelError("", "Something went wrong"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + + [HttpPost("{Id}/Domain/{domainId}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + [ProducesResponseType(409)] + public IActionResult LinkVirtualMachineToDomain(Guid Id, Guid domainId) + { + if (!_virtualmachineInterface.CheckVirtualMachineById(Id)) + return NotFound(); + + if (!_domainInterface.CheckDomainById(domainId)) + return NotFound(); + + var existingVirtualMachine = _virtualmachineInterface.GetVirtualMachineById(Id); + if (existingVirtualMachine == null) + return NotFound(); + + if (existingVirtualMachine.DomainID.HasValue) + return Conflict("VirtualMachine is already linked to a domain. Unlink it first."); + + existingVirtualMachine.DomainID = domainId; + + if (!_virtualmachineInterface.EditVirtualMachineById(existingVirtualMachine)) + { + ModelState.AddModelError("", "Something went wrong"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + + [HttpDelete("{Id}/Domain")] + [ProducesResponseType(204)] + [ProducesResponseType(404)] + public IActionResult UnlinkVirtualMachineFromDomain(Guid Id) + { + if (!_virtualmachineInterface.CheckVirtualMachineById(Id)) + return NotFound(); + + var existingVirtualMachine = _virtualmachineInterface.GetVirtualMachineById(Id); + if (existingVirtualMachine == null) + return NotFound(); + + if (!existingVirtualMachine.DomainID.HasValue) + return NoContent(); + + existingVirtualMachine.DomainID = null; + + if (!_virtualmachineInterface.EditVirtualMachineById(existingVirtualMachine)) + { + ModelState.AddModelError("", "Something went wrong"); + return StatusCode(500, ModelState); + } + + return NoContent(); + } + + [HttpDelete("{Id}")] + [ProducesResponseType(204)] + [ProducesResponseType(400)] + [ProducesResponseType(404)] + public IActionResult DeleteVirtualMachineById(Guid Id) + { + if (!_virtualmachineInterface.CheckVirtualMachineById(Id)) + return NotFound(); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var virtualMachine = _virtualmachineInterface.GetVirtualMachineById(Id); + + if (!_virtualmachineInterface.DeleteVirtualMachineById(virtualMachine)) + { + ModelState.AddModelError("", "Something went wrong while deleting"); + return StatusCode(500, ModelState); + } + + return NoContent(); } } } diff --git a/Dto/Deployment/Add/AddDeploymentRequestDto.cs b/Dto/Deployment/Add/AddDeploymentRequestDto.cs new file mode 100644 index 0000000..ccf39f6 --- /dev/null +++ b/Dto/Deployment/Add/AddDeploymentRequestDto.cs @@ -0,0 +1,9 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Add +{ + public class AddDeploymentRequestDto + { + public Guid DeploymentGroupId { get; set; } + public ICollection VirtualMachineIds { get; set; } = new List(); + public string JsonData { get; set; } = "{}"; + } +} diff --git a/Dto/Deployment/Add/QueueJobStepApprovalDto.cs b/Dto/Deployment/Add/QueueJobStepApprovalDto.cs new file mode 100644 index 0000000..8a5ebd3 --- /dev/null +++ b/Dto/Deployment/Add/QueueJobStepApprovalDto.cs @@ -0,0 +1,8 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Add +{ + public class QueueJobStepApprovalDto + { + public string? Comment { get; set; } + public string? ApprovedBy { get; set; } + } +} diff --git a/Dto/Deployment/Get/GetDeploymentDetailsDto.cs b/Dto/Deployment/Get/GetDeploymentDetailsDto.cs index c81aaea..bc7770e 100644 --- a/Dto/Deployment/Get/GetDeploymentDetailsDto.cs +++ b/Dto/Deployment/Get/GetDeploymentDetailsDto.cs @@ -1,16 +1,13 @@ -using Microsoft.SelfService.Portal.Core.API.Dto.DeploymentGroup.Get; using Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Get; namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Get { public class GetDeploymentDetailsDto : BaseDetailsDto { + public Guid VirtualMachineId { get; set; } public string Status { get; set; } public string JSONData { get; set; } public GetVirtualMachineDetailsDto VirtualMachine { get; set; } - - public GetDeploymentGroupDetailsDto DeploymentGroup { get; set; } - } } diff --git a/Dto/Deployment/Get/GetDeploymentDto.cs b/Dto/Deployment/Get/GetDeploymentDto.cs index 9bb419b..5a1695f 100644 --- a/Dto/Deployment/Get/GetDeploymentDto.cs +++ b/Dto/Deployment/Get/GetDeploymentDto.cs @@ -4,7 +4,9 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Get { public class GetDeploymentDto : BaseDto { - + public Guid DeploymentGroupId { get; set; } + public Guid VirtualMachineId { get; set; } public string Status { get; set; } + public string JSONData { get; set; } } } diff --git a/Dto/Deployment/Get/GetQueueJobDetailsDto.cs b/Dto/Deployment/Get/GetQueueJobDetailsDto.cs new file mode 100644 index 0000000..5414a5b --- /dev/null +++ b/Dto/Deployment/Get/GetQueueJobDetailsDto.cs @@ -0,0 +1,18 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Get +{ + public class GetQueueJobDetailsDto : BaseDetailsDto + { + public string Type { get; set; } = string.Empty; + public string Status { get; set; } = string.Empty; + public string PayloadJson { get; set; } = string.Empty; + public int Attempts { get; set; } + public int MaxAttempts { get; set; } + public DateTime? Started { get; set; } + public DateTime? Finished { get; set; } + public string? ErrorMessage { get; set; } + public string? MetadataJson { get; set; } + public string? RuleSnapshotJson { get; set; } + public ICollection Targets { get; set; } = new List(); + public ICollection Steps { get; set; } = new List(); + } +} diff --git a/Dto/Deployment/Get/GetQueueJobDto.cs b/Dto/Deployment/Get/GetQueueJobDto.cs new file mode 100644 index 0000000..03eabd7 --- /dev/null +++ b/Dto/Deployment/Get/GetQueueJobDto.cs @@ -0,0 +1,16 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Get +{ + public class GetQueueJobDto : BaseDto + { + public string Type { get; set; } = string.Empty; + public string Status { get; set; } = string.Empty; + public int Attempts { get; set; } + public int MaxAttempts { get; set; } + public DateTime? Started { get; set; } + public DateTime? Finished { get; set; } + public string? ErrorMessage { get; set; } + public int TargetCount { get; set; } + public int SucceededTargetCount { get; set; } + public int FailedTargetCount { get; set; } + } +} diff --git a/Dto/Deployment/Get/GetQueueJobStepDto.cs b/Dto/Deployment/Get/GetQueueJobStepDto.cs new file mode 100644 index 0000000..eb29263 --- /dev/null +++ b/Dto/Deployment/Get/GetQueueJobStepDto.cs @@ -0,0 +1,15 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Get +{ + public class GetQueueJobStepDto : BaseDto + { + public Guid? DependsOnQueueJobStepId { get; set; } + public int SortOrder { get; set; } + public string Name { get; set; } = string.Empty; + public string StepType { get; set; } = string.Empty; + public string Status { get; set; } = string.Empty; + public string? MetadataJson { get; set; } + public DateTime? ApprovedAt { get; set; } + public string? ApprovedBy { get; set; } + public string? ApprovalComment { get; set; } + } +} diff --git a/Dto/Deployment/Get/GetQueueJobTargetDto.cs b/Dto/Deployment/Get/GetQueueJobTargetDto.cs new file mode 100644 index 0000000..5d4cf09 --- /dev/null +++ b/Dto/Deployment/Get/GetQueueJobTargetDto.cs @@ -0,0 +1,12 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Get +{ + public class GetQueueJobTargetDto : BaseDto + { + public Guid VirtualMachineId { get; set; } + public Guid DeploymentGroupId { get; set; } + public Guid TemplateId { get; set; } + public string Status { get; set; } = string.Empty; + public int Attempts { get; set; } + public string? ErrorMessage { get; set; } + } +} diff --git a/Dto/DeploymentGroup/Add/AddDeploymentGroupDto.cs b/Dto/DeploymentGroup/Add/AddDeploymentGroupDto.cs index 3cbd74d..2984d20 100644 --- a/Dto/DeploymentGroup/Add/AddDeploymentGroupDto.cs +++ b/Dto/DeploymentGroup/Add/AddDeploymentGroupDto.cs @@ -8,7 +8,8 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.DeploymentGroup.Add public Guid TemplateId { get; set; } [Column(Order = 2)] public string Status { get; set; } - + [Column(Order = 3)] + public ICollection? VirtualMachineIds { get; set; } } } diff --git a/Dto/Environment/Add/AddEnvironmentDto.cs b/Dto/Environment/Add/AddEnvironmentDto.cs index 2558e02..a1460e2 100644 --- a/Dto/Environment/Add/AddEnvironmentDto.cs +++ b/Dto/Environment/Add/AddEnvironmentDto.cs @@ -6,5 +6,20 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Environment.Add { [Column(Order = 1)] public string Name { get; set; } + + [Column(Order = 2)] + public string EnvironmentType { get; set; } = "OnPrem"; + + [Column(Order = 3)] + public string? ProviderType { get; set; } + + [Column(Order = 4)] + public string? TenantId { get; set; } + + [Column(Order = 5)] + public string? SubscriptionId { get; set; } + + [Column(Order = 6)] + public string? MetadataJson { get; set; } } } diff --git a/Dto/Environment/Edit/EditEnvironmentDto.cs b/Dto/Environment/Edit/EditEnvironmentDto.cs index 9a888dd..3a80b0a 100644 --- a/Dto/Environment/Edit/EditEnvironmentDto.cs +++ b/Dto/Environment/Edit/EditEnvironmentDto.cs @@ -6,5 +6,20 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Environment.Edit { [Column(Order = 1)] public string Name { get; set; } + + [Column(Order = 2)] + public string EnvironmentType { get; set; } = "OnPrem"; + + [Column(Order = 3)] + public string? ProviderType { get; set; } + + [Column(Order = 4)] + public string? TenantId { get; set; } + + [Column(Order = 5)] + public string? SubscriptionId { get; set; } + + [Column(Order = 6)] + public string? MetadataJson { get; set; } } } diff --git a/Dto/Environment/Get/GetEnvironmentDetailsDto.cs b/Dto/Environment/Get/GetEnvironmentDetailsDto.cs index cc90509..1273a8a 100644 --- a/Dto/Environment/Get/GetEnvironmentDetailsDto.cs +++ b/Dto/Environment/Get/GetEnvironmentDetailsDto.cs @@ -6,5 +6,20 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Environment.Get { [Column(Order = 1)] public string Name { get; set; } + + [Column(Order = 2)] + public string EnvironmentType { get; set; } + + [Column(Order = 3)] + public string? ProviderType { get; set; } + + [Column(Order = 4)] + public string? TenantId { get; set; } + + [Column(Order = 5)] + public string? SubscriptionId { get; set; } + + [Column(Order = 6)] + public string? MetadataJson { get; set; } } } diff --git a/Dto/Environment/Get/GetEnvironmentDomainDetailsDto.cs b/Dto/Environment/Get/GetEnvironmentDomainDetailsDto.cs index 88a65c4..ecd648c 100644 --- a/Dto/Environment/Get/GetEnvironmentDomainDetailsDto.cs +++ b/Dto/Environment/Get/GetEnvironmentDomainDetailsDto.cs @@ -1,11 +1,34 @@ -using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.SelfService.Portal.Core.API.Dto.Domain.Get; +using Microsoft.SelfService.Portal.Core.API.Models; +using System.ComponentModel.DataAnnotations.Schema; namespace Microsoft.SelfService.Portal.Core.API.Dto.Environment.Get { public class GetEnvironmentDomainDetailsDto : BaseDetailsDto { - [Column(Order = 1)] - public ICollection Environment { get; set; } + public GetDomainDetailsDto Domain { get; set; } + + public static GetEnvironmentDomainDetailsDto FromModel(EnvironmentDomainsModel environmentDomain) + { + return new GetEnvironmentDomainDetailsDto + { + Created = environmentDomain.Created, + CreatedBy = environmentDomain.CreatedBy, + Modified = environmentDomain.Modified, + ModifiedBy = environmentDomain.ModifiedBy, + Domain = new GetDomainDetailsDto + { + Id = environmentDomain.Domain.Id, + Name = environmentDomain.Domain.Name, + FQDN = environmentDomain.Domain.FQDN, + NetBIOS = environmentDomain.Domain.NetBIOS, + Created = environmentDomain.Domain.Created, + CreatedBy = environmentDomain.Domain.CreatedBy, + Modified = environmentDomain.Domain.Modified, + ModifiedBy = environmentDomain.Domain.ModifiedBy + } + }; + } } } diff --git a/Dto/Environment/Get/GetEnvironmentDomainDto.cs b/Dto/Environment/Get/GetEnvironmentDomainDto.cs index 96c7ce1..72b5fd9 100644 --- a/Dto/Environment/Get/GetEnvironmentDomainDto.cs +++ b/Dto/Environment/Get/GetEnvironmentDomainDto.cs @@ -1,4 +1,4 @@ -using Microsoft.SelfService.Portal.Core.API.Dto.Domain.Get; +using Microsoft.SelfService.Portal.Core.API.Models; using System.ComponentModel.DataAnnotations.Schema; namespace Microsoft.SelfService.Portal.Core.API.Dto.Environment.Get @@ -7,8 +7,25 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Environment.Get { [Column(Order = 1)] public string Name { get; set; } + [Column(Order = 2)] public ICollection EnvironmentDomains { get; set; } - } + public static GetEnvironmentDomainDto FromModel(EnvironmentModel environment) + { + return new GetEnvironmentDomainDto + { + Id = environment.Id, + Name = environment.Name, + Created = environment.Created, + CreatedBy = environment.CreatedBy, + Modified = environment.Modified, + ModifiedBy = environment.ModifiedBy, + EnvironmentDomains = environment.EnvironmentDomains? + .Where(environmentDomain => environmentDomain.Domain != null) + .Select(GetEnvironmentDomainDetailsDto.FromModel) + .ToList() ?? new List() + }; + } + } } diff --git a/Dto/Environment/Get/GetEnvironmentDto.cs b/Dto/Environment/Get/GetEnvironmentDto.cs index d9aaffa..8ba6a54 100644 --- a/Dto/Environment/Get/GetEnvironmentDto.cs +++ b/Dto/Environment/Get/GetEnvironmentDto.cs @@ -6,5 +6,17 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Environment.Get { [Column(Order = 1)] public string Name { get; set; } + + [Column(Order = 2)] + public string EnvironmentType { get; set; } + + [Column(Order = 3)] + public string? ProviderType { get; set; } + + [Column(Order = 4)] + public string? TenantId { get; set; } + + [Column(Order = 5)] + public string? SubscriptionId { get; set; } } } diff --git a/Dto/Service/Add/AddServiceDto.cs b/Dto/Service/Add/AddServiceDto.cs new file mode 100644 index 0000000..b518681 --- /dev/null +++ b/Dto/Service/Add/AddServiceDto.cs @@ -0,0 +1,19 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Dto.Service.Add +{ + public class AddServiceDto + { + [Column(Order = 1)] + public string Name { get; set; } + + [Column(Order = 2)] + public string Description { get; set; } + + [Column(Order = 3)] + public bool IsCloudService { get; set; } + + [Column(Order = 4)] + public string? IconKey { get; set; } + } +} diff --git a/Dto/Service/Edit/EditServiceDto.cs b/Dto/Service/Edit/EditServiceDto.cs new file mode 100644 index 0000000..762fd13 --- /dev/null +++ b/Dto/Service/Edit/EditServiceDto.cs @@ -0,0 +1,19 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Dto.Service.Edit +{ + public class EditServiceDto + { + [Column(Order = 1)] + public string Name { get; set; } + + [Column(Order = 2)] + public string Description { get; set; } + + [Column(Order = 3)] + public bool IsCloudService { get; set; } + + [Column(Order = 4)] + public string? IconKey { get; set; } + } +} diff --git a/Dto/Service/Get/GetServiceDetailsDto.cs b/Dto/Service/Get/GetServiceDetailsDto.cs index 6b5e686..d64b117 100644 --- a/Dto/Service/Get/GetServiceDetailsDto.cs +++ b/Dto/Service/Get/GetServiceDetailsDto.cs @@ -7,6 +7,10 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Service.Get [Column(Order = 1)] public string Name { get; set; } [Column(Order = 2)] - public string Type { get; set; } + public string Description { get; set; } + [Column(Order = 3)] + public bool IsCloudService { get; set; } + [Column(Order = 4)] + public string? IconKey { get; set; } } } diff --git a/Dto/Service/Get/GetServiceDto.cs b/Dto/Service/Get/GetServiceDto.cs index 608be41..066610d 100644 --- a/Dto/Service/Get/GetServiceDto.cs +++ b/Dto/Service/Get/GetServiceDto.cs @@ -6,5 +6,14 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.Service.Get { [Column(Order = 1)] public string Name { get; set; } + + [Column(Order = 2)] + public string Description { get; set; } + + [Column(Order = 3)] + public bool IsCloudService { get; set; } + + [Column(Order = 4)] + public string? IconKey { get; set; } } } diff --git a/Dto/Service/RoleDefinition/AddServiceRoleDefinitionDto.cs b/Dto/Service/RoleDefinition/AddServiceRoleDefinitionDto.cs new file mode 100644 index 0000000..bea69fb --- /dev/null +++ b/Dto/Service/RoleDefinition/AddServiceRoleDefinitionDto.cs @@ -0,0 +1,9 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Service.RoleDefinition +{ + public class AddServiceRoleDefinitionDto + { + public string Key { get; set; } = string.Empty; + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + } +} diff --git a/Dto/Service/RoleDefinition/EditServiceRoleDefinitionDto.cs b/Dto/Service/RoleDefinition/EditServiceRoleDefinitionDto.cs new file mode 100644 index 0000000..a33e384 --- /dev/null +++ b/Dto/Service/RoleDefinition/EditServiceRoleDefinitionDto.cs @@ -0,0 +1,9 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.Service.RoleDefinition +{ + public class EditServiceRoleDefinitionDto + { + public string Key { get; set; } = string.Empty; + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + } +} diff --git a/Dto/Template/Add/AddTemplateDto.cs b/Dto/Template/Add/AddTemplateDto.cs new file mode 100644 index 0000000..df7f88f --- /dev/null +++ b/Dto/Template/Add/AddTemplateDto.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Dto.Template.Add +{ + public class AddTemplateDto + { + [Column(Order = 1)] + public Guid TemplateCategoryId { get; set; } + + [Column(Order = 2)] + public string Name { get; set; } + + [Column(Order = 3)] + public string Version { get; set; } + + [Column(Order = 4)] + public string Description { get; set; } + + [Column(Order = 5)] + public string JSONData { get; set; } + } +} diff --git a/Dto/Template/Edit/EditTemplateDto.cs b/Dto/Template/Edit/EditTemplateDto.cs new file mode 100644 index 0000000..b561025 --- /dev/null +++ b/Dto/Template/Edit/EditTemplateDto.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Dto.Template.Edit +{ + public class EditTemplateDto + { + [Column(Order = 1)] + public Guid TemplateCategoryId { get; set; } + + [Column(Order = 2)] + public string Name { get; set; } + + [Column(Order = 3)] + public string Version { get; set; } + + [Column(Order = 4)] + public string Description { get; set; } + + [Column(Order = 5)] + public string JSONData { get; set; } + } +} diff --git a/Dto/Template/Get/GetTemplateDetailsDto.cs b/Dto/Template/Get/GetTemplateDetailsDto.cs index d05990f..ad1b630 100644 --- a/Dto/Template/Get/GetTemplateDetailsDto.cs +++ b/Dto/Template/Get/GetTemplateDetailsDto.cs @@ -3,7 +3,7 @@ public class GetTemplateDetailsDto : BaseDetailsDto { public string Name { get; set; } - public string CloudTemplate { get; set; } + public Guid TemplateCategoryId { get; set; } public string Version { get; set; } public string Description { get; set; } public string JSONData { get; set; } diff --git a/Dto/Template/Get/GetTemplateDto.cs b/Dto/Template/Get/GetTemplateDto.cs index 6d6ade4..e27b059 100644 --- a/Dto/Template/Get/GetTemplateDto.cs +++ b/Dto/Template/Get/GetTemplateDto.cs @@ -3,6 +3,9 @@ public class GetTemplateDto : BaseDto { public string Name { get; set; } - + public Guid TemplateCategoryId { get; set; } + public string Version { get; set; } + public string Description { get; set; } + public string JSONData { get; set; } } } diff --git a/Dto/TemplateCategory/Add/AddTemplateCategoryDto.cs b/Dto/TemplateCategory/Add/AddTemplateCategoryDto.cs new file mode 100644 index 0000000..9fa468f --- /dev/null +++ b/Dto/TemplateCategory/Add/AddTemplateCategoryDto.cs @@ -0,0 +1,11 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Add +{ + public class AddTemplateCategoryDto + { + public Guid ServiceId { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + public bool IsActive { get; set; } = true; + public string? Color { get; set; } + } +} diff --git a/Dto/TemplateCategory/Edit/EditTemplateCategoryDto.cs b/Dto/TemplateCategory/Edit/EditTemplateCategoryDto.cs new file mode 100644 index 0000000..eee0457 --- /dev/null +++ b/Dto/TemplateCategory/Edit/EditTemplateCategoryDto.cs @@ -0,0 +1,11 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Edit +{ + public class EditTemplateCategoryDto + { + public Guid ServiceId { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + public bool IsActive { get; set; } = true; + public string? Color { get; set; } + } +} diff --git a/Dto/TemplateCategory/Get/GetTemplateCategoryDetailsDto.cs b/Dto/TemplateCategory/Get/GetTemplateCategoryDetailsDto.cs new file mode 100644 index 0000000..56c78a2 --- /dev/null +++ b/Dto/TemplateCategory/Get/GetTemplateCategoryDetailsDto.cs @@ -0,0 +1,11 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Get +{ + public class GetTemplateCategoryDetailsDto : BaseDetailsDto + { + public Guid ServiceId { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + public bool IsActive { get; set; } + public string? Color { get; set; } + } +} diff --git a/Dto/TemplateCategory/Get/GetTemplateCategoryDto.cs b/Dto/TemplateCategory/Get/GetTemplateCategoryDto.cs new file mode 100644 index 0000000..518f2e5 --- /dev/null +++ b/Dto/TemplateCategory/Get/GetTemplateCategoryDto.cs @@ -0,0 +1,11 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Get +{ + public class GetTemplateCategoryDto : BaseDto + { + public Guid ServiceId { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + public bool IsActive { get; set; } + public string? Color { get; set; } + } +} diff --git a/Dto/VirtualMachine/Add/AddVirtualMachineDto.cs b/Dto/VirtualMachine/Add/AddVirtualMachineDto.cs new file mode 100644 index 0000000..468c011 --- /dev/null +++ b/Dto/VirtualMachine/Add/AddVirtualMachineDto.cs @@ -0,0 +1,10 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Add +{ + public class AddVirtualMachineDto + { + public Guid? DomainID { get; set; } + public string Name { get; set; } + public string? ExternalId { get; set; } + public string? MetadataJson { get; set; } + } +} diff --git a/Dto/VirtualMachine/Edit/EditVirtualMachineDto.cs b/Dto/VirtualMachine/Edit/EditVirtualMachineDto.cs new file mode 100644 index 0000000..6ececce --- /dev/null +++ b/Dto/VirtualMachine/Edit/EditVirtualMachineDto.cs @@ -0,0 +1,9 @@ +namespace Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Edit +{ + public class EditVirtualMachineDto + { + public string Name { get; set; } + public string? ExternalId { get; set; } + public string? MetadataJson { get; set; } + } +} diff --git a/Dto/VirtualMachine/Get/GetVirtualMachineDetailsDto.cs b/Dto/VirtualMachine/Get/GetVirtualMachineDetailsDto.cs index 1f874cb..d8ad2cb 100644 --- a/Dto/VirtualMachine/Get/GetVirtualMachineDetailsDto.cs +++ b/Dto/VirtualMachine/Get/GetVirtualMachineDetailsDto.cs @@ -8,8 +8,17 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Get { [Column(Order = 1)] + public Guid? DomainID { get; set; } + + [Column(Order = 2)] public string Name { get; set; } - public GetDomainDto Domain { get; set; } + [Column(Order = 3)] + public string? ExternalId { get; set; } + + [Column(Order = 4)] + public string? MetadataJson { get; set; } + + public GetDomainDto? Domain { get; set; } } } diff --git a/Dto/VirtualMachine/Get/GetVirtualMachineDto.cs b/Dto/VirtualMachine/Get/GetVirtualMachineDto.cs index a46c12b..54ad630 100644 --- a/Dto/VirtualMachine/Get/GetVirtualMachineDto.cs +++ b/Dto/VirtualMachine/Get/GetVirtualMachineDto.cs @@ -5,7 +5,13 @@ namespace Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Get public class GetVirtualMachineDto : BaseDto { [Column(Order = 1)] + public Guid? DomainID { get; set; } + + [Column(Order = 2)] public string Name { get; set; } + + [Column(Order = 3)] + public string? ExternalId { get; set; } } } diff --git a/Helper/MappingProfilesHelper.cs b/Helper/MappingProfilesHelper.cs index e42447e..f7ae94e 100644 --- a/Helper/MappingProfilesHelper.cs +++ b/Helper/MappingProfilesHelper.cs @@ -7,6 +7,8 @@ using Microsoft.SelfService.Portal.Core.API.Dto.Runbook.Get; using Microsoft.SelfService.Portal.Core.API.Dto.Runbook.Add; using Microsoft.SelfService.Portal.Core.API.Dto.Environment.Get; using Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Get; +using Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.VirtualMachine.Edit; using Microsoft.SelfService.Portal.Core.API.Dto.Domain.Edit; using Microsoft.SelfService.Portal.Core.API.Dto.Environment.Add; using Microsoft.SelfService.Portal.Core.API.Dto.Environment.Edit; @@ -16,7 +18,14 @@ using Microsoft.SelfService.Portal.Core.API.Dto.Deployment.Edit; using Microsoft.SelfService.Portal.Core.API.Dto.DeploymentGroup.Get; using Microsoft.SelfService.Portal.Core.API.Dto.DeploymentGroup.Add; using Microsoft.SelfService.Portal.Core.API.Dto.Template.Get; +using Microsoft.SelfService.Portal.Core.API.Dto.Template.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.Template.Edit; using Microsoft.SelfService.Portal.Core.API.Dto.Service.Get; +using Microsoft.SelfService.Portal.Core.API.Dto.Service.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.Service.Edit; +using Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Get; +using Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Add; +using Microsoft.SelfService.Portal.Core.API.Dto.TemplateCategory.Edit; namespace Microsoft.SelfService.Portal.Core.API.Helper { @@ -43,8 +52,8 @@ namespace Microsoft.SelfService.Portal.Core.API.Helper CreateMap(); CreateMap(); CreateMap(); - CreateMap(); - CreateMap(); + CreateMap(); + CreateMap(); CreateMap(); CreateMap(); CreateMap(); @@ -53,6 +62,8 @@ namespace Microsoft.SelfService.Portal.Core.API.Helper /** Environment Domain Model **/ CreateMap(); CreateMap(); + CreateMap(); + CreateMap(); CreateMap(); CreateMap(); @@ -61,6 +72,10 @@ namespace Microsoft.SelfService.Portal.Core.API.Helper CreateMap(); CreateMap(); CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); /** Runbook Model **/ CreateMap(); @@ -93,10 +108,30 @@ namespace Microsoft.SelfService.Portal.Core.API.Helper CreateMap(); CreateMap(); CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); /** Service Model **/ + CreateMap(); + CreateMap(); CreateMap(); CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + + /** Template Category Model **/ + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); } } -} \ No newline at end of file +} diff --git a/Interfaces/IDeploymentGroupInterface.cs b/Interfaces/IDeploymentGroupInterface.cs index 7faa43f..6d14c5a 100644 --- a/Interfaces/IDeploymentGroupInterface.cs +++ b/Interfaces/IDeploymentGroupInterface.cs @@ -7,7 +7,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Interfaces ICollection GetDeploymentGroups(); DeploymentGroupModel GetDeploymentGroupById(Guid Id); - bool AddDeploymentGroupById(DeploymentGroupModel deploymentgroup); + bool AddDeploymentGroupById(DeploymentGroupModel deploymentgroup, ICollection? virtualMachineIds); bool DeleteDeploymentGroupById(DeploymentGroupModel deploymentgroup); bool EditDeploymentGroupById(DeploymentGroupModel deploymentgroup); diff --git a/Interfaces/IQueueJobService.cs b/Interfaces/IQueueJobService.cs new file mode 100644 index 0000000..aaae2fb --- /dev/null +++ b/Interfaces/IQueueJobService.cs @@ -0,0 +1,11 @@ +namespace Microsoft.SelfService.Portal.Core.API.Interfaces +{ + public interface IQueueJobService + { + Guid EnqueueTemplateJsonChanged(Guid templateId, string oldJsonData, string newJsonData); + Guid EnqueueDeploymentRequest(Guid deploymentGroupId, ICollection virtualMachineIds, string jsonData); + bool RetryQueueJob(Guid queueJobId); + bool ApproveQueueJobStep(Guid queueJobStepId, string approvedBy, string? comment); + bool RejectQueueJobStep(Guid queueJobStepId, string approvedBy, string? comment); + } +} diff --git a/Interfaces/IServiceInterface.cs b/Interfaces/IServiceInterface.cs index a24090d..e174730 100644 --- a/Interfaces/IServiceInterface.cs +++ b/Interfaces/IServiceInterface.cs @@ -5,12 +5,26 @@ namespace Microsoft.SelfService.Portal.Core.API.Interfaces public interface IServiceInterface { ICollection GetServices(); + + bool AddServiceById(ServiceModel service); + bool EditServiceById(ServiceModel service); + bool DeleteServiceById(ServiceModel service); ServiceModel GetServiceById(Guid Id); bool CheckServiceById(Guid Id); ServiceModel GetServiceByName(string Name); bool CheckServiceByName(string Name); + + ICollection GetRoleDefinitionsByServiceId(Guid serviceId); + ServiceRoleDefinitionModel GetRoleDefinitionById(Guid roleDefinitionId); + bool AddRoleDefinition(ServiceRoleDefinitionModel roleDefinition); + bool EditRoleDefinition(ServiceRoleDefinitionModel roleDefinition); + bool DeleteRoleDefinition(ServiceRoleDefinitionModel roleDefinition); + bool CheckRoleDefinitionById(Guid roleDefinitionId); + bool CheckRoleDefinitionKey(Guid serviceId, string key, Guid? excludeRoleDefinitionId = null); + + bool SaveChanges(); } } diff --git a/Interfaces/ITemplateCategoryInterface.cs b/Interfaces/ITemplateCategoryInterface.cs new file mode 100644 index 0000000..b50626d --- /dev/null +++ b/Interfaces/ITemplateCategoryInterface.cs @@ -0,0 +1,20 @@ +using Microsoft.SelfService.Portal.Core.API.Models; + +namespace Microsoft.SelfService.Portal.Core.API.Interfaces +{ + public interface ITemplateCategoryInterface + { + ICollection GetTemplateCategories(); + + bool AddTemplateCategoryById(TemplateCategoryModel templateCategory); + bool EditTemplateCategoryById(TemplateCategoryModel templateCategory); + bool DeleteTemplateCategoryById(TemplateCategoryModel templateCategory); + + TemplateCategoryModel GetTemplateCategoryById(Guid Id); + + bool CheckTemplateCategoryById(Guid Id); + TemplateCategoryModel GetTemplateCategoryByName(string Name); + bool CheckTemplateCategoryByName(string Name); + bool SaveChanges(); + } +} diff --git a/Interfaces/ITemplateInterface.cs b/Interfaces/ITemplateInterface.cs index 1654b4c..a89217f 100644 --- a/Interfaces/ITemplateInterface.cs +++ b/Interfaces/ITemplateInterface.cs @@ -6,8 +6,15 @@ namespace Microsoft.SelfService.Portal.Core.API.Interfaces { ICollection GetTemplates(); + bool AddTemplateById(TemplateModel template); + bool EditTemplateById(TemplateModel template); + bool DeleteTemplateById(TemplateModel template); + TemplateModel GetTemplateById(Guid Id); bool CheckTemplateById(Guid Id); + TemplateModel GetTemplateByName(string Name); + bool CheckTemplateByName(string Name); + bool SaveChanges(); } } diff --git a/Interfaces/IVirtualMachineInterface.cs b/Interfaces/IVirtualMachineInterface.cs index 3deb612..bdbdc02 100644 --- a/Interfaces/IVirtualMachineInterface.cs +++ b/Interfaces/IVirtualMachineInterface.cs @@ -6,10 +6,15 @@ namespace Microsoft.SelfService.Portal.Core.API.Interfaces public interface IVirtualMachineInterface { ICollection GetVirtualMachines(); + bool AddVirtualMachineById(VirtualMachineModel virtualMachine); + bool EditVirtualMachineById(VirtualMachineModel virtualMachine); + bool DeleteVirtualMachineById(VirtualMachineModel virtualMachine); VirtualMachineModel GetVirtualMachineById(Guid Id); + VirtualMachineModel GetVirtualMachineByName(string Name); bool CheckVirtualMachineById(Guid Id); bool CheckVirtualMachineByName(String Name); + bool SaveChanges(); } } diff --git a/Microsoft.SelfService.Portal.Core.API.csproj.lscache b/Microsoft.SelfService.Portal.Core.API.csproj.lscache new file mode 100644 index 0000000..a0e9eb1 --- /dev/null +++ b/Microsoft.SelfService.Portal.Core.API.csproj.lscache @@ -0,0 +1,604 @@ +version=1 + +# This file caches language service data to improve the performance of C# Dev Kit. +# It is not intended for manual editing. It can safely be deleted and will be +# regenerated automatically. For more information, see https://aka.ms/lscache +# +# To control where cache files are stored, use the following VS Code setting: +# "dotnet.projectsystem.cacheInProjectFolder": true + +[project] +language=C# +primary +lastDtbSucceeded + +[properties] +AssemblyName=Microsoft.SelfService.Portal.Core.API +CommandLineArgsForDesignTimeEvaluation=-langversion:14.0 -define:TRACE +CompilerGeneratedFilesOutputPath= +MaxSupportedLangVersion=14.0 +ProjectAssetsFile=obj/project.assets.json +RootNamespace=Microsoft.SelfService.Portal.Core.API +RunAnalyzers= +RunAnalyzersDuringLiveAnalysis= +SolutionPath=../../Coding.sln +TargetFrameworkIdentifier=.NETCoreApp +TargetPath=bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll +TargetRefPath=obj/Debug/net10.0/ref/Microsoft.SelfService.Portal.Core.API.dll +TemporaryDependencyNodeTargetIdentifier=net10.0 + +[commandLineArguments] +/noconfig +/unsafe- +/checked- +/nowarn:1701,1702,1701,1702,8002 +/fullpaths +/nostdlib+ +/errorreport:prompt +/warn:10 +/define:TRACE;DEBUG;NET;NET10_0;NETCOREAPP;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NET10_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER +/highentropyva+ +/nullable:enable +/features:"InterceptorsNamespaces=;Microsoft.AspNetCore.OpenApi.Generated;;Microsoft.Extensions.Validation.Generated" +/debug+ +/debug:portable +/filealign:512 +/optimize- +/out:obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.dll +/refout:obj\Debug\net10.0\refint\Microsoft.SelfService.Portal.Core.API.dll +/target:exe +/warnaserror- +/utf8output +/deterministic+ +/langversion:14.0 +/features:use-roslyn-tokenizer=true +/warnaserror+:NU1605,SYSLIB0011 + +[sourceFiles] +Context/DataContext.cs +Controllers/ + AbstractController.cs + DeploymentController.cs + DeploymentGroupController.cs + DomainController.cs + EnvironmentController.cs + RunbookController.cs + ServiceController.cs + TemplateCategoryController.cs + TemplateController.cs + VirtualMachineController.cs +Dto/ + AddEnvironmentDomainDto.cs + BaseDetailsDto.cs + BaseDto.cs + Deployment/Add/ + AddDeploymentDto.cs + AddDeploymentRequestDto.cs + Deployment/ + Edit/EditDeploymentDto.cs + Get/ + GetDeploymentDetailsDto.cs + GetDeploymentDto.cs + GetQueueJobDetailsDto.cs + GetQueueJobDto.cs + GetQueueJobTargetDto.cs + DeploymentGroup/ + Add/AddDeploymentGroupDto.cs + Edit/EditDeploymentGroupDto.cs + Get/ + GetDeploymentGroupDetailsDto.cs + GetDeploymentGroupDto.cs + Domain/ + Add/AddDomainDto.cs + Edit/EditDomainDto.cs + Get/ + GetDomainDetailsDto.cs + GetDomainDto.cs + GetDomainEnvironmentDetailsDto.cs + GetDomainEnvironmentDto.cs + GetDomainVirtualMachineDetailsDto.cs + Environment/ + Add/AddEnvironmentDto.cs + Edit/EditEnvironmentDto.cs + Get/ + GetEnvironmentDetailsDto.cs + GetEnvironmentDomainDetailsDto.cs + GetEnvironmentDomainDto.cs + GetEnvironmentDto.cs + Runbook/ + Add/AddRunbookDto.cs + Get/ + GetRunbookDetailsDto.cs + GetRunbookDto.cs + Service/ + Add/AddServiceDto.cs + Edit/EditServiceDto.cs + Get/ + GetServiceDetailsDto.cs + GetServiceDto.cs + RoleDefinition/ + AddServiceRoleDefinitionDto.cs + EditServiceRoleDefinitionDto.cs + Template/ + Add/AddTemplateDto.cs + Edit/EditTemplateDto.cs + Get/ + GetTemplateDetailsDto.cs + GetTemplateDto.cs + TemplateCategory/ + Add/AddTemplateCategoryDto.cs + Edit/EditTemplateCategoryDto.cs + Get/ + GetTemplateCategoryDetailsDto.cs + GetTemplateCategoryDto.cs + VirtualMachine/ + Add/AddVirtualMachineDto.cs + Edit/EditVirtualMachineDto.cs + Get/ + GetVirtualMachineDetailsDto.cs + GetVirtualMachineDto.cs +Events/ + AbstractEventHandler.cs + Interfaces/IEventHandlerInterface.cs +Extensions/Dataannotations/DefaultValueSqlAttribute.cs +Handlers/DomainEditedHandler.cs +Helper/ + APIHelper.cs + MappingProfilesHelper.cs +Interfaces/ + IAbstractInterface.cs + IDeploymentGroupInterface.cs + IDeploymentInterface.cs + IDomainInterface.cs + IEnvironmentInterface.cs + IJobInterface.cs + IQueueJobService.cs + IRunbookInterface.cs + IServiceInterface.cs + ITemplateCategoryInterface.cs + ITemplateInterface.cs + IVirtualMachineInterface.cs +Migrations/ + 20231020093825_Initial.cs + 20231020093825_Initial.Designer.cs + 20260514210821_AddQueueJobs.cs + 20260514210821_AddQueueJobs.Designer.cs + 20260514210842_AddQueueJobModelSnapshotFix.cs + 20260514210842_AddQueueJobModelSnapshotFix.Designer.cs + 20260515195005_AddEnvironmentAndTargetProviderModel.cs + 20260515195005_AddEnvironmentAndTargetProviderModel.Designer.cs + 20260515195742_RemoveCloudEnabledFromEnvironment.cs + 20260515195742_RemoveCloudEnabledFromEnvironment.Designer.cs + 20260515204426_RemoveVirtualMachineTargetAndProvider.cs + 20260515204426_RemoveVirtualMachineTargetAndProvider.Designer.cs + 20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.cs + 20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.Designer.cs + 20260515214839_AddServiceCloudFlagAndRoleDefinitions.cs + 20260515214839_AddServiceCloudFlagAndRoleDefinitions.Designer.cs + DataContextModelSnapshot.cs +Models/ + BaseJunctionModel.cs + BaseModel.cs + DeploymentGroupModel.cs + DeploymentModel.cs + DomainModel.cs + EnvironmentDomainsModel.cs + EnvironmentModel.cs + EnvironmentTypes.cs + EventModel.cs + JobModel.cs + OptionCategoryModel.cs + OptionModel.cs + QueueJobModel.cs + QueueJobStatus.cs + QueueJobTargetModel.cs + QueueJobType.cs + RunbookModel.cs + ServiceModel.cs + ServiceRoleDefinitionModel.cs + TemplateCategoryModel.cs + TemplateModel.cs + TemplateOptionModel.cs + VirtualMachineModel.cs +obj/Debug/net10.0/ + .NETCoreApp,Version=v10.0.AssemblyAttributes.cs + Microsoft.SelfService.Portal.Core.API.AssemblyInfo.cs + Microsoft.SelfService.Portal.Core.API.GlobalUsings.g.cs +Program.cs +Repository/ + DeploymentGroupRepository.cs + DeploymentRepository.cs + DomainRepository.cs + EnvironmentRepository.cs + JobRepository.cs + RunbookRepository.cs + ServiceRepository.cs + TemplateCategoryRepository.cs + TemplateRepository.cs + VirtualMachineRepository.cs +Services/QueueJobService.cs + +[metadataReferences] +/packs/Microsoft.AspNetCore.App.Ref/10.0.8/ref/net10.0/ + Microsoft.AspNetCore.Antiforgery.dll + Microsoft.AspNetCore.Authentication.Abstractions.dll + Microsoft.AspNetCore.Authentication.BearerToken.dll + Microsoft.AspNetCore.Authentication.Cookies.dll + Microsoft.AspNetCore.Authentication.Core.dll + Microsoft.AspNetCore.Authentication.dll + Microsoft.AspNetCore.Authentication.OAuth.dll + Microsoft.AspNetCore.Authorization.dll + Microsoft.AspNetCore.Authorization.Policy.dll + Microsoft.AspNetCore.Components.Authorization.dll + Microsoft.AspNetCore.Components.dll + Microsoft.AspNetCore.Components.Endpoints.dll + Microsoft.AspNetCore.Components.Forms.dll + Microsoft.AspNetCore.Components.Server.dll + Microsoft.AspNetCore.Components.Web.dll + Microsoft.AspNetCore.Connections.Abstractions.dll + Microsoft.AspNetCore.CookiePolicy.dll + Microsoft.AspNetCore.Cors.dll + Microsoft.AspNetCore.Cryptography.Internal.dll + Microsoft.AspNetCore.Cryptography.KeyDerivation.dll + Microsoft.AspNetCore.DataProtection.Abstractions.dll + Microsoft.AspNetCore.DataProtection.dll + Microsoft.AspNetCore.DataProtection.Extensions.dll + Microsoft.AspNetCore.Diagnostics.Abstractions.dll + Microsoft.AspNetCore.Diagnostics.dll + Microsoft.AspNetCore.Diagnostics.HealthChecks.dll + Microsoft.AspNetCore.dll + Microsoft.AspNetCore.HostFiltering.dll + Microsoft.AspNetCore.Hosting.Abstractions.dll + Microsoft.AspNetCore.Hosting.dll + Microsoft.AspNetCore.Hosting.Server.Abstractions.dll + Microsoft.AspNetCore.Html.Abstractions.dll + Microsoft.AspNetCore.Http.Abstractions.dll + Microsoft.AspNetCore.Http.Connections.Common.dll + Microsoft.AspNetCore.Http.Connections.dll + Microsoft.AspNetCore.Http.dll + Microsoft.AspNetCore.Http.Extensions.dll + Microsoft.AspNetCore.Http.Features.dll + Microsoft.AspNetCore.Http.Results.dll + Microsoft.AspNetCore.HttpLogging.dll + Microsoft.AspNetCore.HttpOverrides.dll + Microsoft.AspNetCore.HttpsPolicy.dll + Microsoft.AspNetCore.Identity.dll + Microsoft.AspNetCore.Localization.dll + Microsoft.AspNetCore.Localization.Routing.dll + Microsoft.AspNetCore.Metadata.dll + Microsoft.AspNetCore.Mvc.Abstractions.dll + Microsoft.AspNetCore.Mvc.ApiExplorer.dll + Microsoft.AspNetCore.Mvc.Core.dll + Microsoft.AspNetCore.Mvc.Cors.dll + Microsoft.AspNetCore.Mvc.DataAnnotations.dll + Microsoft.AspNetCore.Mvc.dll + Microsoft.AspNetCore.Mvc.Formatters.Json.dll + Microsoft.AspNetCore.Mvc.Formatters.Xml.dll + Microsoft.AspNetCore.Mvc.Localization.dll + Microsoft.AspNetCore.Mvc.Razor.dll + Microsoft.AspNetCore.Mvc.RazorPages.dll + Microsoft.AspNetCore.Mvc.TagHelpers.dll + Microsoft.AspNetCore.Mvc.ViewFeatures.dll + Microsoft.AspNetCore.OutputCaching.dll + Microsoft.AspNetCore.RateLimiting.dll + Microsoft.AspNetCore.Razor.dll + Microsoft.AspNetCore.Razor.Runtime.dll + Microsoft.AspNetCore.RequestDecompression.dll + Microsoft.AspNetCore.ResponseCaching.Abstractions.dll + Microsoft.AspNetCore.ResponseCaching.dll + Microsoft.AspNetCore.ResponseCompression.dll + Microsoft.AspNetCore.Rewrite.dll + Microsoft.AspNetCore.Routing.Abstractions.dll + Microsoft.AspNetCore.Routing.dll + Microsoft.AspNetCore.Server.HttpSys.dll + Microsoft.AspNetCore.Server.IIS.dll + Microsoft.AspNetCore.Server.IISIntegration.dll + Microsoft.AspNetCore.Server.Kestrel.Core.dll + Microsoft.AspNetCore.Server.Kestrel.dll + Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll + Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll + Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll + Microsoft.AspNetCore.Session.dll + Microsoft.AspNetCore.SignalR.Common.dll + Microsoft.AspNetCore.SignalR.Core.dll + Microsoft.AspNetCore.SignalR.dll + Microsoft.AspNetCore.SignalR.Protocols.Json.dll + Microsoft.AspNetCore.StaticAssets.dll + Microsoft.AspNetCore.StaticFiles.dll + Microsoft.AspNetCore.WebSockets.dll + Microsoft.AspNetCore.WebUtilities.dll + Microsoft.Extensions.Caching.Abstractions.dll + Microsoft.Extensions.Caching.Memory.dll + Microsoft.Extensions.Configuration.Abstractions.dll + Microsoft.Extensions.Configuration.Binder.dll + Microsoft.Extensions.Configuration.CommandLine.dll + Microsoft.Extensions.Configuration.dll + Microsoft.Extensions.Configuration.EnvironmentVariables.dll + Microsoft.Extensions.Configuration.FileExtensions.dll + Microsoft.Extensions.Configuration.Ini.dll + Microsoft.Extensions.Configuration.Json.dll + Microsoft.Extensions.Configuration.KeyPerFile.dll + Microsoft.Extensions.Configuration.UserSecrets.dll + Microsoft.Extensions.Configuration.Xml.dll + Microsoft.Extensions.DependencyInjection.Abstractions.dll + Microsoft.Extensions.DependencyInjection.dll + Microsoft.Extensions.Diagnostics.Abstractions.dll + Microsoft.Extensions.Diagnostics.dll + Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll + Microsoft.Extensions.Diagnostics.HealthChecks.dll + Microsoft.Extensions.Features.dll + Microsoft.Extensions.FileProviders.Abstractions.dll + Microsoft.Extensions.FileProviders.Composite.dll + Microsoft.Extensions.FileProviders.Embedded.dll + Microsoft.Extensions.FileProviders.Physical.dll + Microsoft.Extensions.FileSystemGlobbing.dll + Microsoft.Extensions.Hosting.Abstractions.dll + Microsoft.Extensions.Hosting.dll + Microsoft.Extensions.Http.dll + Microsoft.Extensions.Identity.Core.dll + Microsoft.Extensions.Identity.Stores.dll + Microsoft.Extensions.Localization.Abstractions.dll + Microsoft.Extensions.Localization.dll + Microsoft.Extensions.Logging.Abstractions.dll + Microsoft.Extensions.Logging.Configuration.dll + Microsoft.Extensions.Logging.Console.dll + Microsoft.Extensions.Logging.Debug.dll + Microsoft.Extensions.Logging.dll + Microsoft.Extensions.Logging.EventLog.dll + Microsoft.Extensions.Logging.EventSource.dll + Microsoft.Extensions.Logging.TraceSource.dll + Microsoft.Extensions.ObjectPool.dll + Microsoft.Extensions.Options.ConfigurationExtensions.dll + Microsoft.Extensions.Options.DataAnnotations.dll + Microsoft.Extensions.Options.dll + Microsoft.Extensions.Primitives.dll + Microsoft.Extensions.Validation.dll + Microsoft.Extensions.WebEncoders.dll + Microsoft.JSInterop.dll + Microsoft.Net.Http.Headers.dll + System.Diagnostics.EventLog.dll + System.Formats.Cbor.dll + System.Security.Cryptography.Xml.dll + System.Threading.RateLimiting.dll +/packs/Microsoft.NETCore.App.Ref/10.0.8/ref/net10.0/ + Microsoft.CSharp.dll + Microsoft.VisualBasic.Core.dll + Microsoft.VisualBasic.dll + Microsoft.Win32.Primitives.dll + Microsoft.Win32.Registry.dll + mscorlib.dll + netstandard.dll + System.AppContext.dll + System.Buffers.dll + System.Collections.Concurrent.dll + System.Collections.dll + System.Collections.Immutable.dll + System.Collections.NonGeneric.dll + System.Collections.Specialized.dll + System.ComponentModel.Annotations.dll + System.ComponentModel.DataAnnotations.dll + System.ComponentModel.dll + System.ComponentModel.EventBasedAsync.dll + System.ComponentModel.Primitives.dll + System.ComponentModel.TypeConverter.dll + System.Configuration.dll + System.Console.dll + System.Core.dll + System.Data.Common.dll + System.Data.DataSetExtensions.dll + System.Data.dll + System.Diagnostics.Contracts.dll + System.Diagnostics.Debug.dll + System.Diagnostics.DiagnosticSource.dll + System.Diagnostics.FileVersionInfo.dll + System.Diagnostics.Process.dll + System.Diagnostics.StackTrace.dll + System.Diagnostics.TextWriterTraceListener.dll + System.Diagnostics.Tools.dll + System.Diagnostics.TraceSource.dll + System.Diagnostics.Tracing.dll + System.dll + System.Drawing.dll + System.Drawing.Primitives.dll + System.Dynamic.Runtime.dll + System.Formats.Asn1.dll + System.Formats.Tar.dll + System.Globalization.Calendars.dll + System.Globalization.dll + System.Globalization.Extensions.dll + System.IO.Compression.Brotli.dll + System.IO.Compression.dll + System.IO.Compression.FileSystem.dll + System.IO.Compression.ZipFile.dll + System.IO.dll + System.IO.FileSystem.AccessControl.dll + System.IO.FileSystem.dll + System.IO.FileSystem.DriveInfo.dll + System.IO.FileSystem.Primitives.dll + System.IO.FileSystem.Watcher.dll + System.IO.IsolatedStorage.dll + System.IO.MemoryMappedFiles.dll + System.IO.Pipelines.dll + System.IO.Pipes.AccessControl.dll + System.IO.Pipes.dll + System.IO.UnmanagedMemoryStream.dll + System.Linq.AsyncEnumerable.dll + System.Linq.dll + System.Linq.Expressions.dll + System.Linq.Parallel.dll + System.Linq.Queryable.dll + System.Memory.dll + System.Net.dll + System.Net.Http.dll + System.Net.Http.Json.dll + System.Net.HttpListener.dll + System.Net.Mail.dll + System.Net.NameResolution.dll + System.Net.NetworkInformation.dll + System.Net.Ping.dll + System.Net.Primitives.dll + System.Net.Quic.dll + System.Net.Requests.dll + System.Net.Security.dll + System.Net.ServerSentEvents.dll + System.Net.ServicePoint.dll + System.Net.Sockets.dll + System.Net.WebClient.dll + System.Net.WebHeaderCollection.dll + System.Net.WebProxy.dll + System.Net.WebSockets.Client.dll + System.Net.WebSockets.dll + System.Numerics.dll + System.Numerics.Vectors.dll + System.ObjectModel.dll + System.Reflection.DispatchProxy.dll + System.Reflection.dll + System.Reflection.Emit.dll + System.Reflection.Emit.ILGeneration.dll + System.Reflection.Emit.Lightweight.dll + System.Reflection.Extensions.dll + System.Reflection.Metadata.dll + System.Reflection.Primitives.dll + System.Reflection.TypeExtensions.dll + System.Resources.Reader.dll + System.Resources.ResourceManager.dll + System.Resources.Writer.dll + System.Runtime.CompilerServices.Unsafe.dll + System.Runtime.CompilerServices.VisualC.dll + System.Runtime.dll + System.Runtime.Extensions.dll + System.Runtime.Handles.dll + System.Runtime.InteropServices.dll + System.Runtime.InteropServices.JavaScript.dll + System.Runtime.InteropServices.RuntimeInformation.dll + System.Runtime.Intrinsics.dll + System.Runtime.Loader.dll + System.Runtime.Numerics.dll + System.Runtime.Serialization.dll + System.Runtime.Serialization.Formatters.dll + System.Runtime.Serialization.Json.dll + System.Runtime.Serialization.Primitives.dll + System.Runtime.Serialization.Xml.dll + System.Security.AccessControl.dll + System.Security.Claims.dll + System.Security.Cryptography.Algorithms.dll + System.Security.Cryptography.Cng.dll + System.Security.Cryptography.Csp.dll + System.Security.Cryptography.dll + System.Security.Cryptography.Encoding.dll + System.Security.Cryptography.OpenSsl.dll + System.Security.Cryptography.Primitives.dll + System.Security.Cryptography.X509Certificates.dll + System.Security.dll + System.Security.Principal.dll + System.Security.Principal.Windows.dll + System.Security.SecureString.dll + System.ServiceModel.Web.dll + System.ServiceProcess.dll + System.Text.Encoding.CodePages.dll + System.Text.Encoding.dll + System.Text.Encoding.Extensions.dll + System.Text.Encodings.Web.dll + System.Text.Json.dll + System.Text.RegularExpressions.dll + System.Threading.AccessControl.dll + System.Threading.Channels.dll + System.Threading.dll + System.Threading.Overlapped.dll + System.Threading.Tasks.Dataflow.dll + System.Threading.Tasks.dll + System.Threading.Tasks.Extensions.dll + System.Threading.Tasks.Parallel.dll + System.Threading.Thread.dll + System.Threading.ThreadPool.dll + System.Threading.Timer.dll + System.Transactions.dll + System.Transactions.Local.dll + System.ValueTuple.dll + System.Web.dll + System.Web.HttpUtility.dll + System.Windows.dll + System.Xml.dll + System.Xml.Linq.dll + System.Xml.ReaderWriter.dll + System.Xml.Serialization.dll + System.Xml.XDocument.dll + System.Xml.XmlDocument.dll + System.Xml.XmlSerializer.dll + System.Xml.XPath.dll + System.Xml.XPath.XDocument.dll + WindowsBase.dll +/ + automapper/16.1.1/lib/net10.0/AutoMapper.dll + azure.core/1.47.1/lib/net8.0/Azure.Core.dll + azure.identity/1.14.2/lib/net8.0/Azure.Identity.dll + microsoft.aspnetcore.authentication.negotiate/10.0.8/lib/net10.0/Microsoft.AspNetCore.Authentication.Negotiate.dll + microsoft.aspnetcore.jsonpatch/10.0.8/lib/net10.0/Microsoft.AspNetCore.JsonPatch.dll + microsoft.aspnetcore.mvc.newtonsoftjson/10.0.8/lib/net10.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll + microsoft.aspnetcore.openapi/10.0.8/lib/net10.0/Microsoft.AspNetCore.OpenApi.dll + microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll + microsoft.bcl.cryptography/9.0.4/lib/net9.0/Microsoft.Bcl.Cryptography.dll + microsoft.data.sqlclient/6.1.1/ref/net9.0/Microsoft.Data.SqlClient.dll + microsoft.entityframeworkcore.abstractions/10.0.8/lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll + microsoft.entityframeworkcore.relational/10.0.8/lib/net10.0/Microsoft.EntityFrameworkCore.Relational.dll + microsoft.entityframeworkcore.sqlserver/10.0.8/lib/net10.0/Microsoft.EntityFrameworkCore.SqlServer.dll + microsoft.entityframeworkcore/10.0.8/lib/net10.0/Microsoft.EntityFrameworkCore.dll + microsoft.identity.client.extensions.msal/4.73.1/lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll + microsoft.identity.client/4.73.1/lib/net8.0/Microsoft.Identity.Client.dll + microsoft.identitymodel.abstractions/8.14.0/lib/net9.0/Microsoft.IdentityModel.Abstractions.dll + microsoft.identitymodel.jsonwebtokens/8.14.0/lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll + microsoft.identitymodel.logging/8.14.0/lib/net9.0/Microsoft.IdentityModel.Logging.dll + microsoft.identitymodel.protocols.openidconnect/7.7.1/lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + microsoft.identitymodel.protocols/7.7.1/lib/net8.0/Microsoft.IdentityModel.Protocols.dll + microsoft.identitymodel.tokens/8.14.0/lib/net9.0/Microsoft.IdentityModel.Tokens.dll + microsoft.openapi/2.4.1/lib/net8.0/Microsoft.OpenApi.dll + microsoft.sqlserver.server/1.0.0/lib/netstandard2.0/Microsoft.SqlServer.Server.dll + newtonsoft.json.bson/1.0.2/lib/netstandard2.0/Newtonsoft.Json.Bson.dll + newtonsoft.json/13.0.3/lib/net6.0/Newtonsoft.Json.dll + swashbuckle.aspnetcore.swagger/10.1.7/lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll + swashbuckle.aspnetcore.swaggergen/10.1.7/lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll + swashbuckle.aspnetcore.swaggerui/10.1.7/lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll + system.clientmodel/1.5.1/lib/net8.0/System.ClientModel.dll + system.directoryservices.protocols/10.0.8/lib/net10.0/System.DirectoryServices.Protocols.dll + system.identitymodel.tokens.jwt/7.7.1/lib/net8.0/System.IdentityModel.Tokens.Jwt.dll + system.memory.data/8.0.1/lib/net8.0/System.Memory.Data.dll + system.security.cryptography.pkcs/9.0.4/lib/net9.0/System.Security.Cryptography.Pkcs.dll + system.security.cryptography.protecteddata/9.0.4/lib/net9.0/System.Security.Cryptography.ProtectedData.dll + +[analyzerReferences] +/packs/Microsoft.AspNetCore.App.Ref/10.0.8/analyzers/dotnet/cs/ + Microsoft.AspNetCore.App.Analyzers.dll + Microsoft.AspNetCore.App.CodeFixes.dll + Microsoft.AspNetCore.App.SourceGenerators.dll + Microsoft.AspNetCore.Components.Analyzers.dll + Microsoft.Extensions.Logging.Generators.dll + Microsoft.Extensions.Options.SourceGeneration.dll + Microsoft.Extensions.Validation.ValidationsGenerator.dll +/packs/Microsoft.NETCore.App.Ref/10.0.8/analyzers/dotnet/cs/ + Microsoft.Interop.ComInterfaceGenerator.dll + Microsoft.Interop.JavaScript.JSImportGenerator.dll + Microsoft.Interop.LibraryImportGenerator.dll + Microsoft.Interop.SourceGeneration.dll + System.Text.Json.SourceGeneration.dll + System.Text.RegularExpressions.Generator.dll +/sdk/10.0.300/Sdks/Microsoft.NET.Sdk.Razor/source-generators/ + Microsoft.AspNetCore.Razor.Utilities.Shared.dll + Microsoft.CodeAnalysis.Razor.Compiler.dll + Microsoft.Extensions.ObjectPool.dll +/sdk/10.0.300/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/ + Microsoft.AspNetCore.Analyzers.dll + Microsoft.AspNetCore.Mvc.Analyzers.dll +/sdk/10.0.300/Sdks/Microsoft.NET.Sdk/analyzers/ + Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll + Microsoft.CodeAnalysis.NetAnalyzers.dll +/ + microsoft.aspnetcore.openapi/10.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.OpenApi.SourceGenerators.dll + microsoft.codeanalysis.analyzers/3.11.0/analyzers/dotnet/cs/ + Microsoft.CodeAnalysis.Analyzers.dll + Microsoft.CodeAnalysis.CSharp.Analyzers.dll + microsoft.entityframeworkcore.analyzers/10.0.8/analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll + system.clientmodel/1.5.1/analyzers/dotnet/cs/System.ClientModel.SourceGeneration.dll + +[analyzerConfigFiles] +/sdk/10.0.300/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_10_default.globalconfig +obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.GeneratedMSBuildEditorConfig.editorconfig diff --git a/Migrations/20260514210821_AddQueueJobs.Designer.cs b/Migrations/20260514210821_AddQueueJobs.Designer.cs new file mode 100644 index 0000000..469cf6e --- /dev/null +++ b/Migrations/20260514210821_AddQueueJobs.Designer.cs @@ -0,0 +1,1132 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260514210821_AddQueueJobs")] + partial class AddQueueJobs + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudEnabled") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260514210821_AddQueueJobs.cs b/Migrations/20260514210821_AddQueueJobs.cs new file mode 100644 index 0000000..2782766 --- /dev/null +++ b/Migrations/20260514210821_AddQueueJobs.cs @@ -0,0 +1,23 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class AddQueueJobs : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + // No-op migration. Queue schema can already exist from a partial/manual run. + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + // No-op migration. + } + } +} diff --git a/Migrations/20260514210842_AddQueueJobModelSnapshotFix.Designer.cs b/Migrations/20260514210842_AddQueueJobModelSnapshotFix.Designer.cs new file mode 100644 index 0000000..121716c --- /dev/null +++ b/Migrations/20260514210842_AddQueueJobModelSnapshotFix.Designer.cs @@ -0,0 +1,1132 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260514210842_AddQueueJobModelSnapshotFix")] + partial class AddQueueJobModelSnapshotFix + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudEnabled") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260514210842_AddQueueJobModelSnapshotFix.cs b/Migrations/20260514210842_AddQueueJobModelSnapshotFix.cs new file mode 100644 index 0000000..f7b4a89 --- /dev/null +++ b/Migrations/20260514210842_AddQueueJobModelSnapshotFix.cs @@ -0,0 +1,23 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class AddQueueJobModelSnapshotFix : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + // No-op migration. Queue schema is created by AddQueueJobs. + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + // No-op migration. Queue schema rollback is handled by AddQueueJobs. + } + } +} diff --git a/Migrations/20260515195005_AddEnvironmentAndTargetProviderModel.Designer.cs b/Migrations/20260515195005_AddEnvironmentAndTargetProviderModel.Designer.cs new file mode 100644 index 0000000..aa6a7cd --- /dev/null +++ b/Migrations/20260515195005_AddEnvironmentAndTargetProviderModel.Designer.cs @@ -0,0 +1,1170 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260515195005_AddEnvironmentAndTargetProviderModel")] + partial class AddEnvironmentAndTargetProviderModel + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudEnabled") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("TargetType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260515195005_AddEnvironmentAndTargetProviderModel.cs b/Migrations/20260515195005_AddEnvironmentAndTargetProviderModel.cs new file mode 100644 index 0000000..f29d347 --- /dev/null +++ b/Migrations/20260515195005_AddEnvironmentAndTargetProviderModel.cs @@ -0,0 +1,119 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class AddEnvironmentAndTargetProviderModel : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "ExternalId", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 5); + + migrationBuilder.AddColumn( + name: "MetadataJson", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 6); + + migrationBuilder.AddColumn( + name: "ProviderType", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 4); + + migrationBuilder.AddColumn( + name: "TargetType", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: false, + defaultValue: "") + .Annotation("Relational:ColumnOrder", 3); + + migrationBuilder.AddColumn( + name: "EnvironmentType", + table: "Environments", + type: "nvarchar(max)", + nullable: false, + defaultValue: "") + .Annotation("Relational:ColumnOrder", 3); + + migrationBuilder.AddColumn( + name: "MetadataJson", + table: "Environments", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 7); + + migrationBuilder.AddColumn( + name: "ProviderType", + table: "Environments", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 4); + + migrationBuilder.AddColumn( + name: "SubscriptionId", + table: "Environments", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 6); + + migrationBuilder.AddColumn( + name: "TenantId", + table: "Environments", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 5); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ExternalId", + table: "VirtualMachines"); + + migrationBuilder.DropColumn( + name: "MetadataJson", + table: "VirtualMachines"); + + migrationBuilder.DropColumn( + name: "ProviderType", + table: "VirtualMachines"); + + migrationBuilder.DropColumn( + name: "TargetType", + table: "VirtualMachines"); + + migrationBuilder.DropColumn( + name: "EnvironmentType", + table: "Environments"); + + migrationBuilder.DropColumn( + name: "MetadataJson", + table: "Environments"); + + migrationBuilder.DropColumn( + name: "ProviderType", + table: "Environments"); + + migrationBuilder.DropColumn( + name: "SubscriptionId", + table: "Environments"); + + migrationBuilder.DropColumn( + name: "TenantId", + table: "Environments"); + } + } +} diff --git a/Migrations/20260515195742_RemoveCloudEnabledFromEnvironment.Designer.cs b/Migrations/20260515195742_RemoveCloudEnabledFromEnvironment.Designer.cs new file mode 100644 index 0000000..12c1b04 --- /dev/null +++ b/Migrations/20260515195742_RemoveCloudEnabledFromEnvironment.Designer.cs @@ -0,0 +1,1166 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260515195742_RemoveCloudEnabledFromEnvironment")] + partial class RemoveCloudEnabledFromEnvironment + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("TargetType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260515195742_RemoveCloudEnabledFromEnvironment.cs b/Migrations/20260515195742_RemoveCloudEnabledFromEnvironment.cs new file mode 100644 index 0000000..a73ee39 --- /dev/null +++ b/Migrations/20260515195742_RemoveCloudEnabledFromEnvironment.cs @@ -0,0 +1,138 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class RemoveCloudEnabledFromEnvironment : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CloudEnabled", + table: "Environments"); + + migrationBuilder.AlterColumn( + name: "TenantId", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 4) + .OldAnnotation("Relational:ColumnOrder", 5); + + migrationBuilder.AlterColumn( + name: "SubscriptionId", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 5) + .OldAnnotation("Relational:ColumnOrder", 6); + + migrationBuilder.AlterColumn( + name: "ProviderType", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 3) + .OldAnnotation("Relational:ColumnOrder", 4); + + migrationBuilder.AlterColumn( + name: "MetadataJson", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 6) + .OldAnnotation("Relational:ColumnOrder", 7); + + migrationBuilder.AlterColumn( + name: "EnvironmentType", + table: "Environments", + type: "nvarchar(max)", + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(max)") + .Annotation("Relational:ColumnOrder", 2) + .OldAnnotation("Relational:ColumnOrder", 3); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "TenantId", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 5) + .OldAnnotation("Relational:ColumnOrder", 4); + + migrationBuilder.AlterColumn( + name: "SubscriptionId", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 6) + .OldAnnotation("Relational:ColumnOrder", 5); + + migrationBuilder.AlterColumn( + name: "ProviderType", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 4) + .OldAnnotation("Relational:ColumnOrder", 3); + + migrationBuilder.AlterColumn( + name: "MetadataJson", + table: "Environments", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 7) + .OldAnnotation("Relational:ColumnOrder", 6); + + migrationBuilder.AlterColumn( + name: "EnvironmentType", + table: "Environments", + type: "nvarchar(max)", + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(max)") + .Annotation("Relational:ColumnOrder", 3) + .OldAnnotation("Relational:ColumnOrder", 2); + + migrationBuilder.AddColumn( + name: "CloudEnabled", + table: "Environments", + type: "bit", + nullable: false, + defaultValue: false) + .Annotation("Relational:ColumnOrder", 2); + } + } +} diff --git a/Migrations/20260515204426_RemoveVirtualMachineTargetAndProvider.Designer.cs b/Migrations/20260515204426_RemoveVirtualMachineTargetAndProvider.Designer.cs new file mode 100644 index 0000000..e8da95c --- /dev/null +++ b/Migrations/20260515204426_RemoveVirtualMachineTargetAndProvider.Designer.cs @@ -0,0 +1,1157 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260515204426_RemoveVirtualMachineTargetAndProvider")] + partial class RemoveVirtualMachineTargetAndProvider + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260515204426_RemoveVirtualMachineTargetAndProvider.cs b/Migrations/20260515204426_RemoveVirtualMachineTargetAndProvider.cs new file mode 100644 index 0000000..ed66617 --- /dev/null +++ b/Migrations/20260515204426_RemoveVirtualMachineTargetAndProvider.cs @@ -0,0 +1,85 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class RemoveVirtualMachineTargetAndProvider : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ProviderType", + table: "VirtualMachines"); + + migrationBuilder.DropColumn( + name: "TargetType", + table: "VirtualMachines"); + + migrationBuilder.AlterColumn( + name: "MetadataJson", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 4) + .OldAnnotation("Relational:ColumnOrder", 6); + + migrationBuilder.AlterColumn( + name: "ExternalId", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 3) + .OldAnnotation("Relational:ColumnOrder", 5); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "MetadataJson", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 6) + .OldAnnotation("Relational:ColumnOrder", 4); + + migrationBuilder.AlterColumn( + name: "ExternalId", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true) + .Annotation("Relational:ColumnOrder", 5) + .OldAnnotation("Relational:ColumnOrder", 3); + + migrationBuilder.AddColumn( + name: "ProviderType", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 4); + + migrationBuilder.AddColumn( + name: "TargetType", + table: "VirtualMachines", + type: "nvarchar(max)", + nullable: false, + defaultValue: "") + .Annotation("Relational:ColumnOrder", 3); + } + } +} diff --git a/Migrations/20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.Designer.cs b/Migrations/20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.Designer.cs new file mode 100644 index 0000000..0ab94ea --- /dev/null +++ b/Migrations/20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.Designer.cs @@ -0,0 +1,1155 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow")] + partial class MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.cs b/Migrations/20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.cs new file mode 100644 index 0000000..287b545 --- /dev/null +++ b/Migrations/20260515205512_MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow.cs @@ -0,0 +1,60 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class MakeVirtualMachineDomainOptionalAndAddLinkUnlinkFlow : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_VirtualMachines_Domains_DomainID", + table: "VirtualMachines"); + + migrationBuilder.AlterColumn( + name: "DomainID", + table: "VirtualMachines", + type: "uniqueidentifier", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uniqueidentifier"); + + migrationBuilder.AddForeignKey( + name: "FK_VirtualMachines_Domains_DomainID", + table: "VirtualMachines", + column: "DomainID", + principalTable: "Domains", + principalColumn: "Id"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_VirtualMachines_Domains_DomainID", + table: "VirtualMachines"); + + migrationBuilder.AlterColumn( + name: "DomainID", + table: "VirtualMachines", + type: "uniqueidentifier", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uniqueidentifier", + oldNullable: true); + + migrationBuilder.AddForeignKey( + name: "FK_VirtualMachines_Domains_DomainID", + table: "VirtualMachines", + column: "DomainID", + principalTable: "Domains", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/Migrations/20260515215206_AddServiceCloudFlagAndRoleDefinitionsV2.Designer.cs b/Migrations/20260515215206_AddServiceCloudFlagAndRoleDefinitionsV2.Designer.cs new file mode 100644 index 0000000..09ca2ad --- /dev/null +++ b/Migrations/20260515215206_AddServiceCloudFlagAndRoleDefinitionsV2.Designer.cs @@ -0,0 +1,1239 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260515215206_AddServiceCloudFlagAndRoleDefinitionsV2")] + partial class AddServiceCloudFlagAndRoleDefinitionsV2 + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DefaultStageOrder") + .HasColumnType("int") + .HasColumnOrder(7); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MaxCount") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("MinCount") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260515215206_AddServiceCloudFlagAndRoleDefinitionsV2.cs b/Migrations/20260515215206_AddServiceCloudFlagAndRoleDefinitionsV2.cs new file mode 100644 index 0000000..b0a7beb --- /dev/null +++ b/Migrations/20260515215206_AddServiceCloudFlagAndRoleDefinitionsV2.cs @@ -0,0 +1,67 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class AddServiceCloudFlagAndRoleDefinitionsV2 : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "IsCloudService", + table: "Services", + type: "bit", + nullable: false, + defaultValue: false) + .Annotation("Relational:ColumnOrder", 3); + + migrationBuilder.CreateTable( + name: "ServiceRoleDefinitions", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false, defaultValueSql: "NEWID()"), + ServiceId = table.Column(type: "uniqueidentifier", nullable: false), + Key = table.Column(type: "nvarchar(max)", nullable: false), + Name = table.Column(type: "nvarchar(max)", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), + MinCount = table.Column(type: "int", nullable: false), + MaxCount = table.Column(type: "int", nullable: false), + DefaultStageOrder = table.Column(type: "int", nullable: false), + Modified = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + ModifiedBy = table.Column(type: "nvarchar(max)", nullable: false), + Created = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + CreatedBy = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ServiceRoleDefinitions", x => x.Id); + table.ForeignKey( + name: "FK_ServiceRoleDefinitions_Services_ServiceId", + column: x => x.ServiceId, + principalTable: "Services", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_ServiceRoleDefinitions_ServiceId", + table: "ServiceRoleDefinitions", + column: "ServiceId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ServiceRoleDefinitions"); + + migrationBuilder.DropColumn( + name: "IsCloudService", + table: "Services"); + } + } +} diff --git a/Migrations/20260515221746_RemoveRoleDefinitionSizingFields.Designer.cs b/Migrations/20260515221746_RemoveRoleDefinitionSizingFields.Designer.cs new file mode 100644 index 0000000..41db00e --- /dev/null +++ b/Migrations/20260515221746_RemoveRoleDefinitionSizingFields.Designer.cs @@ -0,0 +1,1227 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260515221746_RemoveRoleDefinitionSizingFields")] + partial class RemoveRoleDefinitionSizingFields + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260515221746_RemoveRoleDefinitionSizingFields.cs b/Migrations/20260515221746_RemoveRoleDefinitionSizingFields.cs new file mode 100644 index 0000000..9bcf62f --- /dev/null +++ b/Migrations/20260515221746_RemoveRoleDefinitionSizingFields.cs @@ -0,0 +1,51 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class RemoveRoleDefinitionSizingFields : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "DefaultStageOrder", + table: "ServiceRoleDefinitions"); + + migrationBuilder.DropColumn( + name: "MaxCount", + table: "ServiceRoleDefinitions"); + + migrationBuilder.DropColumn( + name: "MinCount", + table: "ServiceRoleDefinitions"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "DefaultStageOrder", + table: "ServiceRoleDefinitions", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "MaxCount", + table: "ServiceRoleDefinitions", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "MinCount", + table: "ServiceRoleDefinitions", + type: "int", + nullable: false, + defaultValue: 0); + } + } +} diff --git a/Migrations/20260516113515_RemoveTemplateCategoryLegacyFields.Designer.cs b/Migrations/20260516113515_RemoveTemplateCategoryLegacyFields.Designer.cs new file mode 100644 index 0000000..94bc008 --- /dev/null +++ b/Migrations/20260516113515_RemoveTemplateCategoryLegacyFields.Designer.cs @@ -0,0 +1,1218 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260516113515_RemoveTemplateCategoryLegacyFields")] + partial class RemoveTemplateCategoryLegacyFields + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260516113515_RemoveTemplateCategoryLegacyFields.cs b/Migrations/20260516113515_RemoveTemplateCategoryLegacyFields.cs new file mode 100644 index 0000000..0794e9e --- /dev/null +++ b/Migrations/20260516113515_RemoveTemplateCategoryLegacyFields.cs @@ -0,0 +1,40 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class RemoveTemplateCategoryLegacyFields : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ParentCategoryName", + table: "TemplateCategories"); + + migrationBuilder.DropColumn( + name: "showOrder", + table: "TemplateCategories"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "ParentCategoryName", + table: "TemplateCategories", + type: "nvarchar(max)", + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "showOrder", + table: "TemplateCategories", + type: "int", + nullable: false, + defaultValue: 0); + } + } +} diff --git a/Migrations/20260516114627_AddTemplateCategoryMetadataFields.Designer.cs b/Migrations/20260516114627_AddTemplateCategoryMetadataFields.Designer.cs new file mode 100644 index 0000000..5ae46fd --- /dev/null +++ b/Migrations/20260516114627_AddTemplateCategoryMetadataFields.Designer.cs @@ -0,0 +1,1234 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260516114627_AddTemplateCategoryMetadataFields")] + partial class AddTemplateCategoryMetadataFields + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Color") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("IconKey") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(4); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260516114627_AddTemplateCategoryMetadataFields.cs b/Migrations/20260516114627_AddTemplateCategoryMetadataFields.cs new file mode 100644 index 0000000..e87ca56 --- /dev/null +++ b/Migrations/20260516114627_AddTemplateCategoryMetadataFields.cs @@ -0,0 +1,59 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class AddTemplateCategoryMetadataFields : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Color", + table: "TemplateCategories", + type: "nvarchar(max)", + nullable: true); + + migrationBuilder.AddColumn( + name: "Description", + table: "TemplateCategories", + type: "nvarchar(max)", + nullable: true); + + migrationBuilder.AddColumn( + name: "IconKey", + table: "TemplateCategories", + type: "nvarchar(max)", + nullable: true); + + migrationBuilder.AddColumn( + name: "IsActive", + table: "TemplateCategories", + type: "bit", + nullable: false, + defaultValue: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Color", + table: "TemplateCategories"); + + migrationBuilder.DropColumn( + name: "Description", + table: "TemplateCategories"); + + migrationBuilder.DropColumn( + name: "IconKey", + table: "TemplateCategories"); + + migrationBuilder.DropColumn( + name: "IsActive", + table: "TemplateCategories"); + } + } +} diff --git a/Migrations/20260516115934_MoveIconKeyFromTemplateCategoryToService.Designer.cs b/Migrations/20260516115934_MoveIconKeyFromTemplateCategoryToService.Designer.cs new file mode 100644 index 0000000..6758540 --- /dev/null +++ b/Migrations/20260516115934_MoveIconKeyFromTemplateCategoryToService.Designer.cs @@ -0,0 +1,1234 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260516115934_MoveIconKeyFromTemplateCategoryToService")] + partial class MoveIconKeyFromTemplateCategoryToService + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("IconKey") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Color") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("CloudTemplate") + .HasColumnType("bit") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260516115934_MoveIconKeyFromTemplateCategoryToService.cs b/Migrations/20260516115934_MoveIconKeyFromTemplateCategoryToService.cs new file mode 100644 index 0000000..b9c7ca7 --- /dev/null +++ b/Migrations/20260516115934_MoveIconKeyFromTemplateCategoryToService.cs @@ -0,0 +1,38 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class MoveIconKeyFromTemplateCategoryToService : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IconKey", + table: "TemplateCategories"); + + migrationBuilder.AddColumn( + name: "IconKey", + table: "Services", + type: "nvarchar(max)", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IconKey", + table: "Services"); + + migrationBuilder.AddColumn( + name: "IconKey", + table: "TemplateCategories", + type: "nvarchar(max)", + nullable: true); + } + } +} diff --git a/Migrations/20260516121222_RemoveTemplateCloudFlag.Designer.cs b/Migrations/20260516121222_RemoveTemplateCloudFlag.Designer.cs new file mode 100644 index 0000000..09f7379 --- /dev/null +++ b/Migrations/20260516121222_RemoveTemplateCloudFlag.Designer.cs @@ -0,0 +1,1230 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260516121222_RemoveTemplateCloudFlag")] + partial class RemoveTemplateCloudFlag + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IconKey") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Color") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(5); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260516121222_RemoveTemplateCloudFlag.cs b/Migrations/20260516121222_RemoveTemplateCloudFlag.cs new file mode 100644 index 0000000..68c088b --- /dev/null +++ b/Migrations/20260516121222_RemoveTemplateCloudFlag.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class RemoveTemplateCloudFlag : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CloudTemplate", + table: "Templates"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CloudTemplate", + table: "Templates", + type: "bit", + nullable: false, + defaultValue: false); + } + } +} diff --git a/Migrations/20260516140554_AddDeploymentRulesAndQueueJobSteps.Designer.cs b/Migrations/20260516140554_AddDeploymentRulesAndQueueJobSteps.Designer.cs new file mode 100644 index 0000000..cdb0fa1 --- /dev/null +++ b/Migrations/20260516140554_AddDeploymentRulesAndQueueJobSteps.Designer.cs @@ -0,0 +1,1479 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260516140554_AddDeploymentRulesAndQueueJobSteps")] + partial class AddDeploymentRulesAndQueueJobSteps + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentGroups"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("DeploymentRules"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RequiresApproval") + .HasColumnType("bit") + .HasColumnOrder(5); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(2); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("DeploymentRuleId"); + + b.ToTable("DeploymentRuleSteps"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(11); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RuleSnapshotJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(12); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("QueueJobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("ApprovalComment") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("ApprovedAt") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("ApprovedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DependsOnQueueJobStepId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.HasKey("Id"); + + b.HasIndex("DependsOnQueueJobStepId"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobSteps"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("QueueJobTargets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IconKey") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Color") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(5); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DeploymentRuleId"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany("Steps") + .HasForeignKey("DeploymentRuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentRule"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", "DependsOnQueueJobStep") + .WithMany() + .HasForeignKey("DependsOnQueueJobStepId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Steps") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DependsOnQueueJobStep"); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany() + .HasForeignKey("DeploymentRuleId"); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentRule"); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Navigation("Steps"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Steps"); + + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260516140554_AddDeploymentRulesAndQueueJobSteps.cs b/Migrations/20260516140554_AddDeploymentRulesAndQueueJobSteps.cs new file mode 100644 index 0000000..6b922c1 --- /dev/null +++ b/Migrations/20260516140554_AddDeploymentRulesAndQueueJobSteps.cs @@ -0,0 +1,178 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class AddDeploymentRulesAndQueueJobSteps : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "DeploymentRuleId", + table: "Templates", + type: "uniqueidentifier", + nullable: true) + .Annotation("Relational:ColumnOrder", 6); + + migrationBuilder.AddColumn( + name: "MetadataJson", + table: "QueueJobs", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 11); + + migrationBuilder.AddColumn( + name: "RuleSnapshotJson", + table: "QueueJobs", + type: "nvarchar(max)", + nullable: true) + .Annotation("Relational:ColumnOrder", 12); + + migrationBuilder.CreateTable( + name: "DeploymentRules", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false, defaultValueSql: "NEWID()"), + Name = table.Column(type: "nvarchar(max)", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), + IsActive = table.Column(type: "bit", nullable: false), + Modified = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + ModifiedBy = table.Column(type: "nvarchar(max)", nullable: false), + Created = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + CreatedBy = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_DeploymentRules", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "QueueJobSteps", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false, defaultValueSql: "NEWID()"), + QueueJobId = table.Column(type: "uniqueidentifier", nullable: false), + DependsOnQueueJobStepId = table.Column(type: "uniqueidentifier", nullable: true), + SortOrder = table.Column(type: "int", nullable: false), + Name = table.Column(type: "nvarchar(max)", nullable: false), + StepType = table.Column(type: "nvarchar(max)", nullable: false), + Status = table.Column(type: "nvarchar(max)", nullable: false), + MetadataJson = table.Column(type: "nvarchar(max)", nullable: true), + ApprovedAt = table.Column(type: "datetime2", nullable: true), + ApprovedBy = table.Column(type: "nvarchar(max)", nullable: true), + ApprovalComment = table.Column(type: "nvarchar(max)", nullable: true), + Modified = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + ModifiedBy = table.Column(type: "nvarchar(max)", nullable: false), + Created = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + CreatedBy = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_QueueJobSteps", x => x.Id); + table.ForeignKey( + name: "FK_QueueJobSteps_QueueJobSteps_DependsOnQueueJobStepId", + column: x => x.DependsOnQueueJobStepId, + principalTable: "QueueJobSteps", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_QueueJobSteps_QueueJobs_QueueJobId", + column: x => x.QueueJobId, + principalTable: "QueueJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "DeploymentRuleSteps", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false, defaultValueSql: "NEWID()"), + DeploymentRuleId = table.Column(type: "uniqueidentifier", nullable: false), + SortOrder = table.Column(type: "int", nullable: false), + Name = table.Column(type: "nvarchar(max)", nullable: false), + StepType = table.Column(type: "nvarchar(max)", nullable: false), + RequiresApproval = table.Column(type: "bit", nullable: false), + MetadataJson = table.Column(type: "nvarchar(max)", nullable: true), + Modified = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + ModifiedBy = table.Column(type: "nvarchar(max)", nullable: false), + Created = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETDATE()"), + CreatedBy = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_DeploymentRuleSteps", x => x.Id); + table.ForeignKey( + name: "FK_DeploymentRuleSteps_DeploymentRules_DeploymentRuleId", + column: x => x.DeploymentRuleId, + principalTable: "DeploymentRules", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Templates_DeploymentRuleId", + table: "Templates", + column: "DeploymentRuleId"); + + migrationBuilder.CreateIndex( + name: "IX_DeploymentRuleSteps_DeploymentRuleId", + table: "DeploymentRuleSteps", + column: "DeploymentRuleId"); + + migrationBuilder.CreateIndex( + name: "IX_QueueJobSteps_DependsOnQueueJobStepId", + table: "QueueJobSteps", + column: "DependsOnQueueJobStepId"); + + migrationBuilder.CreateIndex( + name: "IX_QueueJobSteps_QueueJobId", + table: "QueueJobSteps", + column: "QueueJobId"); + + migrationBuilder.AddForeignKey( + name: "FK_Templates_DeploymentRules_DeploymentRuleId", + table: "Templates", + column: "DeploymentRuleId", + principalTable: "DeploymentRules", + principalColumn: "Id"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Templates_DeploymentRules_DeploymentRuleId", + table: "Templates"); + + migrationBuilder.DropTable( + name: "DeploymentRuleSteps"); + + migrationBuilder.DropTable( + name: "QueueJobSteps"); + + migrationBuilder.DropTable( + name: "DeploymentRules"); + + migrationBuilder.DropIndex( + name: "IX_Templates_DeploymentRuleId", + table: "Templates"); + + migrationBuilder.DropColumn( + name: "DeploymentRuleId", + table: "Templates"); + + migrationBuilder.DropColumn( + name: "MetadataJson", + table: "QueueJobs"); + + migrationBuilder.DropColumn( + name: "RuleSnapshotJson", + table: "QueueJobs"); + } + } +} diff --git a/Migrations/20260516141653_RenameDeploymentAndJobTables.Designer.cs b/Migrations/20260516141653_RenameDeploymentAndJobTables.Designer.cs new file mode 100644 index 0000000..d460872 --- /dev/null +++ b/Migrations/20260516141653_RenameDeploymentAndJobTables.Designer.cs @@ -0,0 +1,1479 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260516141653_RenameDeploymentAndJobTables")] + partial class RenameDeploymentAndJobTables + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentBatches", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("DeploymentExecutions", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("DeploymentRules"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RequiresApproval") + .HasColumnType("bit") + .HasColumnOrder(5); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(2); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("DeploymentRuleId"); + + b.ToTable("DeploymentRuleSteps"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(11); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RuleSnapshotJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(12); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("DeploymentJobs", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("ApprovalComment") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("ApprovedAt") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("ApprovedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DependsOnQueueJobStepId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.HasKey("Id"); + + b.HasIndex("DependsOnQueueJobStepId"); + + b.HasIndex("QueueJobId"); + + b.ToTable("DeploymentJobSteps", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("DeploymentJobTargets", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IconKey") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Color") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(5); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DeploymentRuleId"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany("Steps") + .HasForeignKey("DeploymentRuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentRule"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", "DependsOnQueueJobStep") + .WithMany() + .HasForeignKey("DependsOnQueueJobStepId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Steps") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DependsOnQueueJobStep"); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany() + .HasForeignKey("DeploymentRuleId"); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentRule"); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Navigation("Steps"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Steps"); + + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260516141653_RenameDeploymentAndJobTables.cs b/Migrations/20260516141653_RenameDeploymentAndJobTables.cs new file mode 100644 index 0000000..fae8172 --- /dev/null +++ b/Migrations/20260516141653_RenameDeploymentAndJobTables.cs @@ -0,0 +1,384 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class RenameDeploymentAndJobTables : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_DeploymentGroups_Templates_TemplateId", + table: "DeploymentGroups"); + + migrationBuilder.DropForeignKey( + name: "FK_Deployments_DeploymentGroups_DeploymentGroupId", + table: "Deployments"); + + migrationBuilder.DropForeignKey( + name: "FK_Deployments_VirtualMachines_VirtualMachineId", + table: "Deployments"); + + migrationBuilder.DropForeignKey( + name: "FK_Jobs_Deployments_DeploymentId", + table: "Jobs"); + + migrationBuilder.DropForeignKey( + name: "FK_QueueJobSteps_QueueJobSteps_DependsOnQueueJobStepId", + table: "QueueJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_QueueJobSteps_QueueJobs_QueueJobId", + table: "QueueJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_QueueJobTargets_QueueJobs_QueueJobId", + table: "QueueJobTargets"); + + migrationBuilder.DropPrimaryKey( + name: "PK_QueueJobTargets", + table: "QueueJobTargets"); + + migrationBuilder.DropPrimaryKey( + name: "PK_QueueJobSteps", + table: "QueueJobSteps"); + + migrationBuilder.DropPrimaryKey( + name: "PK_QueueJobs", + table: "QueueJobs"); + + migrationBuilder.DropUniqueConstraint( + name: "AK_Deployments_Id", + table: "Deployments"); + + migrationBuilder.DropPrimaryKey( + name: "PK_Deployments", + table: "Deployments"); + + migrationBuilder.DropPrimaryKey( + name: "PK_DeploymentGroups", + table: "DeploymentGroups"); + + migrationBuilder.RenameTable( + name: "QueueJobTargets", + newName: "DeploymentJobTargets"); + + migrationBuilder.RenameTable( + name: "QueueJobSteps", + newName: "DeploymentJobSteps"); + + migrationBuilder.RenameTable( + name: "QueueJobs", + newName: "DeploymentJobs"); + + migrationBuilder.RenameTable( + name: "Deployments", + newName: "DeploymentExecutions"); + + migrationBuilder.RenameTable( + name: "DeploymentGroups", + newName: "DeploymentBatches"); + + migrationBuilder.RenameIndex( + name: "IX_QueueJobTargets_QueueJobId", + table: "DeploymentJobTargets", + newName: "IX_DeploymentJobTargets_QueueJobId"); + + migrationBuilder.RenameIndex( + name: "IX_QueueJobSteps_QueueJobId", + table: "DeploymentJobSteps", + newName: "IX_DeploymentJobSteps_QueueJobId"); + + migrationBuilder.RenameIndex( + name: "IX_QueueJobSteps_DependsOnQueueJobStepId", + table: "DeploymentJobSteps", + newName: "IX_DeploymentJobSteps_DependsOnQueueJobStepId"); + + migrationBuilder.RenameIndex( + name: "IX_Deployments_DeploymentGroupId", + table: "DeploymentExecutions", + newName: "IX_DeploymentExecutions_DeploymentGroupId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentGroups_TemplateId", + table: "DeploymentBatches", + newName: "IX_DeploymentBatches_TemplateId"); + + migrationBuilder.AddPrimaryKey( + name: "PK_DeploymentJobTargets", + table: "DeploymentJobTargets", + column: "Id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_DeploymentJobSteps", + table: "DeploymentJobSteps", + column: "Id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_DeploymentJobs", + table: "DeploymentJobs", + column: "Id"); + + migrationBuilder.AddUniqueConstraint( + name: "AK_DeploymentExecutions_Id", + table: "DeploymentExecutions", + column: "Id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_DeploymentExecutions", + table: "DeploymentExecutions", + columns: new[] { "VirtualMachineId", "DeploymentGroupId" }); + + migrationBuilder.AddPrimaryKey( + name: "PK_DeploymentBatches", + table: "DeploymentBatches", + column: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentBatches_Templates_TemplateId", + table: "DeploymentBatches", + column: "TemplateId", + principalTable: "Templates", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentExecutions_DeploymentBatches_DeploymentGroupId", + table: "DeploymentExecutions", + column: "DeploymentGroupId", + principalTable: "DeploymentBatches", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentExecutions_VirtualMachines_VirtualMachineId", + table: "DeploymentExecutions", + column: "VirtualMachineId", + principalTable: "VirtualMachines", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobSteps_DependsOnQueueJobStepId", + table: "DeploymentJobSteps", + column: "DependsOnQueueJobStepId", + principalTable: "DeploymentJobSteps", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobs_QueueJobId", + table: "DeploymentJobSteps", + column: "QueueJobId", + principalTable: "DeploymentJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobTargets_DeploymentJobs_QueueJobId", + table: "DeploymentJobTargets", + column: "QueueJobId", + principalTable: "DeploymentJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_Jobs_DeploymentExecutions_DeploymentId", + table: "Jobs", + column: "DeploymentId", + principalTable: "DeploymentExecutions", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_DeploymentBatches_Templates_TemplateId", + table: "DeploymentBatches"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentExecutions_DeploymentBatches_DeploymentGroupId", + table: "DeploymentExecutions"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentExecutions_VirtualMachines_VirtualMachineId", + table: "DeploymentExecutions"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobSteps_DependsOnQueueJobStepId", + table: "DeploymentJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobs_QueueJobId", + table: "DeploymentJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobTargets_DeploymentJobs_QueueJobId", + table: "DeploymentJobTargets"); + + migrationBuilder.DropForeignKey( + name: "FK_Jobs_DeploymentExecutions_DeploymentId", + table: "Jobs"); + + migrationBuilder.DropPrimaryKey( + name: "PK_DeploymentJobTargets", + table: "DeploymentJobTargets"); + + migrationBuilder.DropPrimaryKey( + name: "PK_DeploymentJobSteps", + table: "DeploymentJobSteps"); + + migrationBuilder.DropPrimaryKey( + name: "PK_DeploymentJobs", + table: "DeploymentJobs"); + + migrationBuilder.DropUniqueConstraint( + name: "AK_DeploymentExecutions_Id", + table: "DeploymentExecutions"); + + migrationBuilder.DropPrimaryKey( + name: "PK_DeploymentExecutions", + table: "DeploymentExecutions"); + + migrationBuilder.DropPrimaryKey( + name: "PK_DeploymentBatches", + table: "DeploymentBatches"); + + migrationBuilder.RenameTable( + name: "DeploymentJobTargets", + newName: "QueueJobTargets"); + + migrationBuilder.RenameTable( + name: "DeploymentJobSteps", + newName: "QueueJobSteps"); + + migrationBuilder.RenameTable( + name: "DeploymentJobs", + newName: "QueueJobs"); + + migrationBuilder.RenameTable( + name: "DeploymentExecutions", + newName: "Deployments"); + + migrationBuilder.RenameTable( + name: "DeploymentBatches", + newName: "DeploymentGroups"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobTargets_QueueJobId", + table: "QueueJobTargets", + newName: "IX_QueueJobTargets_QueueJobId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobSteps_QueueJobId", + table: "QueueJobSteps", + newName: "IX_QueueJobSteps_QueueJobId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobSteps_DependsOnQueueJobStepId", + table: "QueueJobSteps", + newName: "IX_QueueJobSteps_DependsOnQueueJobStepId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentExecutions_DeploymentGroupId", + table: "Deployments", + newName: "IX_Deployments_DeploymentGroupId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentBatches_TemplateId", + table: "DeploymentGroups", + newName: "IX_DeploymentGroups_TemplateId"); + + migrationBuilder.AddPrimaryKey( + name: "PK_QueueJobTargets", + table: "QueueJobTargets", + column: "Id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_QueueJobSteps", + table: "QueueJobSteps", + column: "Id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_QueueJobs", + table: "QueueJobs", + column: "Id"); + + migrationBuilder.AddUniqueConstraint( + name: "AK_Deployments_Id", + table: "Deployments", + column: "Id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_Deployments", + table: "Deployments", + columns: new[] { "VirtualMachineId", "DeploymentGroupId" }); + + migrationBuilder.AddPrimaryKey( + name: "PK_DeploymentGroups", + table: "DeploymentGroups", + column: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentGroups_Templates_TemplateId", + table: "DeploymentGroups", + column: "TemplateId", + principalTable: "Templates", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_Deployments_DeploymentGroups_DeploymentGroupId", + table: "Deployments", + column: "DeploymentGroupId", + principalTable: "DeploymentGroups", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_Deployments_VirtualMachines_VirtualMachineId", + table: "Deployments", + column: "VirtualMachineId", + principalTable: "VirtualMachines", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_Jobs_Deployments_DeploymentId", + table: "Jobs", + column: "DeploymentId", + principalTable: "Deployments", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_QueueJobSteps_QueueJobSteps_DependsOnQueueJobStepId", + table: "QueueJobSteps", + column: "DependsOnQueueJobStepId", + principalTable: "QueueJobSteps", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_QueueJobSteps_QueueJobs_QueueJobId", + table: "QueueJobSteps", + column: "QueueJobId", + principalTable: "QueueJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_QueueJobTargets_QueueJobs_QueueJobId", + table: "QueueJobTargets", + column: "QueueJobId", + principalTable: "QueueJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/Migrations/20260516141719_RenameDeploymentAndJobColumns.Designer.cs b/Migrations/20260516141719_RenameDeploymentAndJobColumns.Designer.cs new file mode 100644 index 0000000..10a59e0 --- /dev/null +++ b/Migrations/20260516141719_RenameDeploymentAndJobColumns.Designer.cs @@ -0,0 +1,1484 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.SelfService.Portal.Core.API.Context; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20260516141719_RenameDeploymentAndJobColumns")] + partial class RenameDeploymentAndJobColumns + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4) + .HasDefaultValueSql("'New'"); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("DeploymentBatches", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(3); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentBatchId") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("VirtualMachineId", "DeploymentGroupId"); + + b.HasIndex("DeploymentGroupId"); + + b.ToTable("DeploymentExecutions", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("DeploymentRules"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RequiresApproval") + .HasColumnType("bit") + .HasColumnOrder(5); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(2); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("DeploymentRuleId"); + + b.ToTable("DeploymentRuleSteps"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("FQDN") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("NetBIOS") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("Domains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.Property("EnvironmentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("DomainId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("EnvironmentId", "DomainId"); + + b.HasIndex("DomainId"); + + b.ToTable("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.ToTable("Environments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Class") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Method") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("RestEndpointMethod") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("RestEndpointOperation") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("RunbookId"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.Property("RunbookId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.Property("DeploymentId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.HasKey("RunbookId", "DeploymentId"); + + b.HasIndex("DeploymentId"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("ParentCategoryName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("showOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.ToTable("OptionCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("OptionCategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptionType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("OptionValue") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.HasKey("Id"); + + b.HasIndex("OptionCategoryId"); + + b.ToTable("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(11); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RuleSnapshotJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(12); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("DeploymentJobs", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("ApprovalComment") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("ApprovedAt") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("ApprovedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DependsOnQueueJobStepId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DependsOnDeploymentJobStepId") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentJobId") + .HasColumnOrder(1); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.HasKey("Id"); + + b.HasIndex("DependsOnQueueJobStepId"); + + b.HasIndex("QueueJobId"); + + b.ToTable("DeploymentJobSteps", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentBatchId") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentJobId") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("DeploymentJobTargets", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Runbooks"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IconKey") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Color") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("JSONData") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.Property("TemplateCategoryId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(5); + + b.Property("Version") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DeploymentRuleId"); + + b.HasIndex("TemplateCategoryId"); + + b.ToTable("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.Property("OptionId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0); + + b.Property("Created") + .HasColumnType("datetime2") + .HasColumnOrder(52); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Modified") + .HasColumnType("datetime2") + .HasColumnOrder(50); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("OptionId", "TemplateId"); + + b.HasIndex("TemplateId"); + + b.ToTable("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DomainID") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("DomainID"); + + b.ToTable("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("DeploymentGroups") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") + .WithMany("Deployments") + .HasForeignKey("DeploymentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", "VirtualMachine") + .WithMany("Deployments") + .HasForeignKey("VirtualMachineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentGroup"); + + b.Navigation("VirtualMachine"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany("Steps") + .HasForeignKey("DeploymentRuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentRule"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("EnvironmentDomains") + .HasForeignKey("DomainId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") + .WithMany("EnvironmentDomains") + .HasForeignKey("EnvironmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Domain"); + + b.Navigation("Environment"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EventModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Events") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.JobModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") + .WithMany("Jobs") + .HasForeignKey("DeploymentId") + .HasPrincipalKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", "Runbook") + .WithMany("Jobs") + .HasForeignKey("RunbookId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Deployment"); + + b.Navigation("Runbook"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") + .WithMany("Options") + .HasForeignKey("OptionCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OptionCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", "DependsOnQueueJobStep") + .WithMany() + .HasForeignKey("DependsOnQueueJobStepId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Steps") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DependsOnQueueJobStep"); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("TemplateCategories") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany() + .HasForeignKey("DeploymentRuleId"); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") + .WithMany("Templates") + .HasForeignKey("TemplateCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentRule"); + + b.Navigation("TemplateCategory"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") + .WithMany("TemplateOptions") + .HasForeignKey("OptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") + .WithMany("TemplateOptions") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Option"); + + b.Navigation("Template"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") + .WithMany("VirtualMachines") + .HasForeignKey("DomainID"); + + b.Navigation("Domain"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => + { + b.Navigation("Deployments"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => + { + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Navigation("Steps"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => + { + b.Navigation("EnvironmentDomains"); + + b.Navigation("VirtualMachines"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => + { + b.Navigation("EnvironmentDomains"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => + { + b.Navigation("Options"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => + { + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Steps"); + + b.Navigation("Targets"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => + { + b.Navigation("Events"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => + { + b.Navigation("RoleDefinitions"); + + b.Navigation("TemplateCategories"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Navigation("Templates"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => + { + b.Navigation("DeploymentGroups"); + + b.Navigation("TemplateOptions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.VirtualMachineModel", b => + { + b.Navigation("Deployments"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20260516141719_RenameDeploymentAndJobColumns.cs b/Migrations/20260516141719_RenameDeploymentAndJobColumns.cs new file mode 100644 index 0000000..bddffa1 --- /dev/null +++ b/Migrations/20260516141719_RenameDeploymentAndJobColumns.cs @@ -0,0 +1,204 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Microsoft.SelfService.Portal.Core.API.Migrations +{ + /// + public partial class RenameDeploymentAndJobColumns : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_DeploymentExecutions_DeploymentBatches_DeploymentGroupId", + table: "DeploymentExecutions"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobSteps_DependsOnQueueJobStepId", + table: "DeploymentJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobs_QueueJobId", + table: "DeploymentJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobTargets_DeploymentJobs_QueueJobId", + table: "DeploymentJobTargets"); + + migrationBuilder.RenameColumn( + name: "QueueJobId", + table: "DeploymentJobTargets", + newName: "DeploymentJobId"); + + migrationBuilder.RenameColumn( + name: "DeploymentGroupId", + table: "DeploymentJobTargets", + newName: "DeploymentBatchId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobTargets_QueueJobId", + table: "DeploymentJobTargets", + newName: "IX_DeploymentJobTargets_DeploymentJobId"); + + migrationBuilder.RenameColumn( + name: "QueueJobId", + table: "DeploymentJobSteps", + newName: "DeploymentJobId"); + + migrationBuilder.RenameColumn( + name: "DependsOnQueueJobStepId", + table: "DeploymentJobSteps", + newName: "DependsOnDeploymentJobStepId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobSteps_QueueJobId", + table: "DeploymentJobSteps", + newName: "IX_DeploymentJobSteps_DeploymentJobId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobSteps_DependsOnQueueJobStepId", + table: "DeploymentJobSteps", + newName: "IX_DeploymentJobSteps_DependsOnDeploymentJobStepId"); + + migrationBuilder.RenameColumn( + name: "DeploymentGroupId", + table: "DeploymentExecutions", + newName: "DeploymentBatchId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentExecutions_DeploymentGroupId", + table: "DeploymentExecutions", + newName: "IX_DeploymentExecutions_DeploymentBatchId"); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentExecutions_DeploymentBatches_DeploymentBatchId", + table: "DeploymentExecutions", + column: "DeploymentBatchId", + principalTable: "DeploymentBatches", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobSteps_DependsOnDeploymentJobStepId", + table: "DeploymentJobSteps", + column: "DependsOnDeploymentJobStepId", + principalTable: "DeploymentJobSteps", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobs_DeploymentJobId", + table: "DeploymentJobSteps", + column: "DeploymentJobId", + principalTable: "DeploymentJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobTargets_DeploymentJobs_DeploymentJobId", + table: "DeploymentJobTargets", + column: "DeploymentJobId", + principalTable: "DeploymentJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_DeploymentExecutions_DeploymentBatches_DeploymentBatchId", + table: "DeploymentExecutions"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobSteps_DependsOnDeploymentJobStepId", + table: "DeploymentJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobs_DeploymentJobId", + table: "DeploymentJobSteps"); + + migrationBuilder.DropForeignKey( + name: "FK_DeploymentJobTargets_DeploymentJobs_DeploymentJobId", + table: "DeploymentJobTargets"); + + migrationBuilder.RenameColumn( + name: "DeploymentJobId", + table: "DeploymentJobTargets", + newName: "QueueJobId"); + + migrationBuilder.RenameColumn( + name: "DeploymentBatchId", + table: "DeploymentJobTargets", + newName: "DeploymentGroupId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobTargets_DeploymentJobId", + table: "DeploymentJobTargets", + newName: "IX_DeploymentJobTargets_QueueJobId"); + + migrationBuilder.RenameColumn( + name: "DeploymentJobId", + table: "DeploymentJobSteps", + newName: "QueueJobId"); + + migrationBuilder.RenameColumn( + name: "DependsOnDeploymentJobStepId", + table: "DeploymentJobSteps", + newName: "DependsOnQueueJobStepId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobSteps_DeploymentJobId", + table: "DeploymentJobSteps", + newName: "IX_DeploymentJobSteps_QueueJobId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentJobSteps_DependsOnDeploymentJobStepId", + table: "DeploymentJobSteps", + newName: "IX_DeploymentJobSteps_DependsOnQueueJobStepId"); + + migrationBuilder.RenameColumn( + name: "DeploymentBatchId", + table: "DeploymentExecutions", + newName: "DeploymentGroupId"); + + migrationBuilder.RenameIndex( + name: "IX_DeploymentExecutions_DeploymentBatchId", + table: "DeploymentExecutions", + newName: "IX_DeploymentExecutions_DeploymentGroupId"); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentExecutions_DeploymentBatches_DeploymentGroupId", + table: "DeploymentExecutions", + column: "DeploymentGroupId", + principalTable: "DeploymentBatches", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobSteps_DependsOnQueueJobStepId", + table: "DeploymentJobSteps", + column: "DependsOnQueueJobStepId", + principalTable: "DeploymentJobSteps", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobSteps_DeploymentJobs_QueueJobId", + table: "DeploymentJobSteps", + column: "QueueJobId", + principalTable: "DeploymentJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "FK_DeploymentJobTargets_DeploymentJobs_QueueJobId", + table: "DeploymentJobTargets", + column: "QueueJobId", + principalTable: "DeploymentJobs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/Migrations/DataContextModelSnapshot.cs b/Migrations/DataContextModelSnapshot.cs index 14b1d37..3021327 100644 --- a/Migrations/DataContextModelSnapshot.cs +++ b/Migrations/DataContextModelSnapshot.cs @@ -17,7 +17,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "7.0.9") + .HasAnnotation("ProductVersion", "10.0.8") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -67,7 +67,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.HasIndex("TemplateId"); - b.ToTable("DeploymentGroups"); + b.ToTable("DeploymentBatches", (string)null); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => @@ -78,6 +78,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.Property("DeploymentGroupId") .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentBatchId") .HasColumnOrder(2); b.Property("Created") @@ -122,7 +123,118 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.HasIndex("DeploymentGroupId"); - b.ToTable("Deployments"); + b.ToTable("DeploymentExecutions", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(3); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("DeploymentRules"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RequiresApproval") + .HasColumnType("bit") + .HasColumnOrder(5); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(2); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.HasKey("Id"); + + b.HasIndex("DeploymentRuleId"); + + b.ToTable("DeploymentRuleSteps"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => @@ -218,10 +330,6 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); - b.Property("CloudEnabled") - .HasColumnType("bit") - .HasColumnOrder(2); - b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") @@ -233,6 +341,15 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnType("nvarchar(max)") .HasColumnOrder(53); + b.Property("EnvironmentType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") @@ -249,6 +366,18 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnType("nvarchar(max)") .HasColumnOrder(1); + b.Property("ProviderType") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("SubscriptionId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TenantId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + b.HasKey("Id"); b.ToTable("Environments"); @@ -464,6 +593,244 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.ToTable("Options"); }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(4); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("Finished") + .HasColumnType("datetime2") + .HasColumnOrder(7); + + b.Property("LockedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("LockedUntil") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("MaxAttempts") + .HasColumnType("int") + .HasColumnOrder(5); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(11); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("PayloadJson") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("RuleSnapshotJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(12); + + b.Property("Started") + .HasColumnType("datetime2") + .HasColumnOrder(6); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.ToTable("DeploymentJobs", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("ApprovalComment") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(10); + + b.Property("ApprovedAt") + .HasColumnType("datetime2") + .HasColumnOrder(8); + + b.Property("ApprovedBy") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(9); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DependsOnQueueJobStepId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DependsOnDeploymentJobStepId") + .HasColumnOrder(2); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentJobId") + .HasColumnOrder(1); + + b.Property("SortOrder") + .HasColumnType("int") + .HasColumnOrder(3); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(6); + + b.Property("StepType") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.HasKey("Id"); + + b.HasIndex("DependsOnQueueJobStepId"); + + b.HasIndex("QueueJobId"); + + b.ToTable("DeploymentJobSteps", (string)null); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Attempts") + .HasColumnType("int") + .HasColumnOrder(6); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("DeploymentGroupId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentBatchId") + .HasColumnOrder(3); + + b.Property("ErrorMessage") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(7); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("QueueJobId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeploymentJobId") + .HasColumnOrder(1); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("TemplateId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(4); + + b.Property("VirtualMachineId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(2); + + b.HasKey("Id"); + + b.HasIndex("QueueJobId"); + + b.ToTable("DeploymentJobTargets", (string)null); + }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => { b.Property("Id") @@ -533,6 +900,14 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnType("nvarchar(max)") .HasColumnOrder(2); + b.Property("IconKey") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("IsCloudService") + .HasColumnType("bit") + .HasColumnOrder(3); + b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") @@ -554,7 +929,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.ToTable("Services"); }); - modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -573,6 +948,73 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnType("nvarchar(max)") .HasColumnOrder(53); + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(2); + + b.Property("Modified") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(50) + .HasDefaultValueSql("GETDATE()"); + + b.Property("ModifiedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(51); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("ServiceId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(1); + + b.HasKey("Id"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceRoleDefinitions"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier") + .HasColumnOrder(0) + .HasDefaultValueSql("NEWID()"); + + b.Property("Color") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(5); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2") + .HasColumnOrder(52) + .HasDefaultValueSql("GETDATE()"); + + b.Property("CreatedBy") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnOrder(53); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnOrder(4); + b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") @@ -589,19 +1031,10 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnType("nvarchar(max)") .HasColumnOrder(2); - b.Property("ParentCategoryName") - .IsRequired() - .HasColumnType("nvarchar(max)") - .HasColumnOrder(3); - b.Property("ServiceId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); - b.Property("showOrder") - .HasColumnType("int") - .HasColumnOrder(4); - b.HasKey("Id"); b.HasIndex("ServiceId"); @@ -617,10 +1050,6 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); - b.Property("CloudTemplate") - .HasColumnType("bit") - .HasColumnOrder(2); - b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") @@ -632,15 +1061,19 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnType("nvarchar(max)") .HasColumnOrder(53); + b.Property("DeploymentRuleId") + .HasColumnType("uniqueidentifier") + .HasColumnOrder(6); + b.Property("Description") .IsRequired() .HasColumnType("nvarchar(max)") - .HasColumnOrder(4); + .HasColumnOrder(3); b.Property("JSONData") .IsRequired() .HasColumnType("nvarchar(max)") - .HasColumnOrder(5); + .HasColumnOrder(4); b.Property("Modified") .ValueGeneratedOnAdd() @@ -659,15 +1092,18 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnOrder(1); b.Property("TemplateCategoryId") - .HasColumnType("uniqueidentifier"); + .HasColumnType("uniqueidentifier") + .HasColumnOrder(5); b.Property("Version") .IsRequired() .HasColumnType("nvarchar(max)") - .HasColumnOrder(3); + .HasColumnOrder(2); b.HasKey("Id"); + b.HasIndex("DeploymentRuleId"); + b.HasIndex("TemplateCategoryId"); b.ToTable("Templates"); @@ -732,10 +1168,18 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations .HasColumnType("nvarchar(max)") .HasColumnOrder(53); - b.Property("DomainID") + b.Property("DomainID") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); + b.Property("ExternalId") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(3); + + b.Property("MetadataJson") + .HasColumnType("nvarchar(max)") + .HasColumnOrder(4); + b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") @@ -789,6 +1233,17 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.Navigation("VirtualMachine"); }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany("Steps") + .HasForeignKey("DeploymentRuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DeploymentRule"); + }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") @@ -850,6 +1305,46 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.Navigation("OptionCategory"); }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", "DependsOnQueueJobStep") + .WithMany() + .HasForeignKey("DependsOnQueueJobStepId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Steps") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DependsOnQueueJobStep"); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") + .WithMany("Targets") + .HasForeignKey("QueueJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("QueueJob"); + }); + + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => + { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") + .WithMany("RoleDefinitions") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Service"); + }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") @@ -863,12 +1358,18 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => { + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") + .WithMany() + .HasForeignKey("DeploymentRuleId"); + b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") .WithMany("Templates") .HasForeignKey("TemplateCategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); + b.Navigation("DeploymentRule"); + b.Navigation("TemplateCategory"); }); @@ -895,9 +1396,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") .WithMany("VirtualMachines") - .HasForeignKey("DomainID") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + .HasForeignKey("DomainID"); b.Navigation("Domain"); }); @@ -912,6 +1411,11 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.Navigation("Jobs"); }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => + { + b.Navigation("Steps"); + }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => { b.Navigation("EnvironmentDomains"); @@ -934,6 +1438,13 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations b.Navigation("TemplateOptions"); }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => + { + b.Navigation("Steps"); + + b.Navigation("Targets"); + }); + modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.RunbookModel", b => { b.Navigation("Events"); @@ -943,6 +1454,8 @@ namespace Microsoft.SelfService.Portal.Core.API.Migrations modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => { + b.Navigation("RoleDefinitions"); + b.Navigation("TemplateCategories"); }); diff --git a/Models/DeploymentGroupModel.cs b/Models/DeploymentBatchModel.cs similarity index 100% rename from Models/DeploymentGroupModel.cs rename to Models/DeploymentBatchModel.cs diff --git a/Models/DeploymentJobModel.cs b/Models/DeploymentJobModel.cs new file mode 100644 index 0000000..04192db --- /dev/null +++ b/Models/DeploymentJobModel.cs @@ -0,0 +1,46 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public class QueueJobModel : BaseModel + { + [Column(Order = 1)] + public string Type { get; set; } + + [Column(Order = 2)] + public string Status { get; set; } = QueueJobStatus.Pending; + + [Column(Order = 3)] + public string PayloadJson { get; set; } + + [Column(Order = 4)] + public int Attempts { get; set; } + + [Column(Order = 5)] + public int MaxAttempts { get; set; } = 3; + + [Column(Order = 6)] + public DateTime? Started { get; set; } + + [Column(Order = 7)] + public DateTime? Finished { get; set; } + + [Column(Order = 8)] + public DateTime? LockedUntil { get; set; } + + [Column(Order = 9)] + public string? LockedBy { get; set; } + + [Column(Order = 10)] + public string? ErrorMessage { get; set; } + + [Column(Order = 11)] + public string? MetadataJson { get; set; } + + [Column(Order = 12)] + public string? RuleSnapshotJson { get; set; } + + public ICollection Targets { get; set; } = new List(); + public ICollection Steps { get; set; } = new List(); + } +} diff --git a/Models/DeploymentJobStepModel.cs b/Models/DeploymentJobStepModel.cs new file mode 100644 index 0000000..f2997b0 --- /dev/null +++ b/Models/DeploymentJobStepModel.cs @@ -0,0 +1,40 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public class QueueJobStepModel : BaseModel + { + [Column(Order = 1)] + public Guid QueueJobId { get; set; } + + [Column(Order = 2)] + public Guid? DependsOnQueueJobStepId { get; set; } + + [Column(Order = 3)] + public int SortOrder { get; set; } + + [Column(Order = 4)] + public string Name { get; set; } + + [Column(Order = 5)] + public string StepType { get; set; } = QueueJobStepType.Provision; + + [Column(Order = 6)] + public string Status { get; set; } = QueueJobStatus.Pending; + + [Column(Order = 7)] + public string? MetadataJson { get; set; } + + [Column(Order = 8)] + public DateTime? ApprovedAt { get; set; } + + [Column(Order = 9)] + public string? ApprovedBy { get; set; } + + [Column(Order = 10)] + public string? ApprovalComment { get; set; } + + public QueueJobModel QueueJob { get; set; } + public QueueJobStepModel? DependsOnQueueJobStep { get; set; } + } +} diff --git a/Models/DeploymentJobTargetModel.cs b/Models/DeploymentJobTargetModel.cs new file mode 100644 index 0000000..07d3638 --- /dev/null +++ b/Models/DeploymentJobTargetModel.cs @@ -0,0 +1,30 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public class QueueJobTargetModel : BaseModel + { + [Column(Order = 1)] + public Guid QueueJobId { get; set; } + + [Column(Order = 2)] + public Guid VirtualMachineId { get; set; } + + [Column(Order = 3)] + public Guid DeploymentGroupId { get; set; } + + [Column(Order = 4)] + public Guid TemplateId { get; set; } + + [Column(Order = 5)] + public string Status { get; set; } = QueueJobStatus.Pending; + + [Column(Order = 6)] + public int Attempts { get; set; } + + [Column(Order = 7)] + public string? ErrorMessage { get; set; } + + public QueueJobModel QueueJob { get; set; } + } +} diff --git a/Models/DeploymentRuleModel.cs b/Models/DeploymentRuleModel.cs new file mode 100644 index 0000000..23b0f33 --- /dev/null +++ b/Models/DeploymentRuleModel.cs @@ -0,0 +1,18 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public class DeploymentRuleModel : BaseModel + { + [Column(Order = 1)] + public string Name { get; set; } + + [Column(Order = 2)] + public string? Description { get; set; } + + [Column(Order = 3)] + public bool IsActive { get; set; } = true; + + public ICollection Steps { get; set; } = new List(); + } +} diff --git a/Models/DeploymentRuleStepModel.cs b/Models/DeploymentRuleStepModel.cs new file mode 100644 index 0000000..0416bf7 --- /dev/null +++ b/Models/DeploymentRuleStepModel.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public class DeploymentRuleStepModel : BaseModel + { + [Column(Order = 1)] + public Guid DeploymentRuleId { get; set; } + + [Column(Order = 2)] + public int SortOrder { get; set; } + + [Column(Order = 3)] + public string Name { get; set; } + + [Column(Order = 4)] + public string StepType { get; set; } = QueueJobStepType.Provision; + + [Column(Order = 5)] + public bool RequiresApproval { get; set; } + + [Column(Order = 6)] + public string? MetadataJson { get; set; } + + public DeploymentRuleModel DeploymentRule { get; set; } + } +} diff --git a/Models/DeploymentModel.cs b/Models/DeploymentTargetModel.cs similarity index 100% rename from Models/DeploymentModel.cs rename to Models/DeploymentTargetModel.cs diff --git a/Models/EnvironmentModel.cs b/Models/EnvironmentModel.cs index 0bb14bd..a5a7bb7 100644 --- a/Models/EnvironmentModel.cs +++ b/Models/EnvironmentModel.cs @@ -8,7 +8,19 @@ namespace Microsoft.SelfService.Portal.Core.API.Models public string Name { get; set; } [Column(Order = 2)] - public bool CloudEnabled { get; set; } + public string EnvironmentType { get; set; } = EnvironmentTypes.OnPrem; + + [Column(Order = 3)] + public string? ProviderType { get; set; } + + [Column(Order = 4)] + public string? TenantId { get; set; } + + [Column(Order = 5)] + public string? SubscriptionId { get; set; } + + [Column(Order = 6)] + public string? MetadataJson { get; set; } public ICollection EnvironmentDomains { get; set; } } diff --git a/Models/EnvironmentTypes.cs b/Models/EnvironmentTypes.cs new file mode 100644 index 0000000..b35884f --- /dev/null +++ b/Models/EnvironmentTypes.cs @@ -0,0 +1,9 @@ +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public static class EnvironmentTypes + { + public const string OnPrem = "OnPrem"; + public const string AzureTenant = "AzureTenant"; + public const string M365Tenant = "M365Tenant"; + } +} diff --git a/Models/QueueJobStatus.cs b/Models/QueueJobStatus.cs new file mode 100644 index 0000000..22851d7 --- /dev/null +++ b/Models/QueueJobStatus.cs @@ -0,0 +1,13 @@ +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public static class QueueJobStatus + { + public const string Pending = "Pending"; + public const string Running = "Running"; + public const string WaitingForApproval = "WaitingForApproval"; + public const string Succeeded = "Succeeded"; + public const string Failed = "Failed"; + public const string Rejected = "Rejected"; + public const string Cancelled = "Cancelled"; + } +} diff --git a/Models/QueueJobStepType.cs b/Models/QueueJobStepType.cs new file mode 100644 index 0000000..27f85eb --- /dev/null +++ b/Models/QueueJobStepType.cs @@ -0,0 +1,8 @@ +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public static class QueueJobStepType + { + public const string Provision = "Provision"; + public const string Approval = "Approval"; + } +} diff --git a/Models/QueueJobType.cs b/Models/QueueJobType.cs new file mode 100644 index 0000000..07f5dda --- /dev/null +++ b/Models/QueueJobType.cs @@ -0,0 +1,8 @@ +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public static class QueueJobType + { + public const string TemplateJsonChanged = "TemplateJsonChanged"; + public const string DeploymentRequested = "DeploymentRequested"; + } +} diff --git a/Models/ServiceModel.cs b/Models/ServiceModel.cs index d54fe71..dff8803 100644 --- a/Models/ServiceModel.cs +++ b/Models/ServiceModel.cs @@ -8,7 +8,13 @@ namespace Microsoft.SelfService.Portal.Core.API.Models public string Name { get; set; } [Column(Order = 2)] public string Description { get; set; } + + [Column(Order = 3)] + public bool IsCloudService { get; set; } + [Column(Order = 4)] + public string? IconKey { get; set; } - public ICollection TemplateCategories { get; set; } + public ICollection TemplateCategories { get; set; } = new List(); + public ICollection RoleDefinitions { get; set; } = new List(); } } diff --git a/Models/ServiceRoleDefinitionModel.cs b/Models/ServiceRoleDefinitionModel.cs new file mode 100644 index 0000000..b6fac45 --- /dev/null +++ b/Models/ServiceRoleDefinitionModel.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace Microsoft.SelfService.Portal.Core.API.Models +{ + public class ServiceRoleDefinitionModel : BaseModel + { + [Column(Order = 1)] + public Guid ServiceId { get; set; } + + [Column(Order = 2)] + public string Key { get; set; } = string.Empty; + + [Column(Order = 3)] + public string Name { get; set; } = string.Empty; + + [Column(Order = 4)] + public string? Description { get; set; } + + public ServiceModel Service { get; set; } = null!; + } +} diff --git a/Models/TemplateCategoryModel.cs b/Models/TemplateCategoryModel.cs index de6d3f0..6314dfd 100644 --- a/Models/TemplateCategoryModel.cs +++ b/Models/TemplateCategoryModel.cs @@ -7,14 +7,16 @@ namespace Microsoft.SelfService.Portal.Core.API.Models [Column(Order = 1)] public Guid ServiceId { get; set; } [Column(Order = 2)] - public string Name { get; set; } + public string Name { get; set; } = string.Empty; [Column(Order = 3)] - public string ParentCategoryName { get; set; } + public string? Description { get; set; } [Column(Order = 4)] - public int showOrder { get; set; } + public bool IsActive { get; set; } = true; + [Column(Order = 5)] + public string? Color { get; set; } - public ServiceModel Service { get; set; } + public ServiceModel Service { get; set; } = null!; - public ICollection Templates { get; set; } + public ICollection Templates { get; set; } = new List(); } } diff --git a/Models/TemplateModel.cs b/Models/TemplateModel.cs index 77deed6..db80aaa 100644 --- a/Models/TemplateModel.cs +++ b/Models/TemplateModel.cs @@ -10,16 +10,20 @@ namespace Microsoft.SelfService.Portal.Core.API.Models [Column(Order = 1)] public string Name { get; set; } [Column(Order = 2)] - [RegularExpression("On Premise|Hybrid|Cloud")] - public bool CloudTemplate { get; set; } - [Column(Order = 3)] public string Version { get; set; } - [Column(Order = 4)] + [Column(Order = 3)] public string Description { get; set; } - [Column(Order = 5)] + [Column(Order = 4)] public string JSONData { get; set; } - + + [Column(Order = 5)] + public Guid TemplateCategoryId { get; set; } + + [Column(Order = 6)] + public Guid? DeploymentRuleId { get; set; } + public TemplateCategoryModel TemplateCategory { get; set; } + public DeploymentRuleModel? DeploymentRule { get; set; } public ICollection DeploymentGroups { get; set; } public ICollection TemplateOptions { get; set; } diff --git a/Models/VirtualMachineModel.cs b/Models/VirtualMachineModel.cs index 6e6fec5..d41408b 100644 --- a/Models/VirtualMachineModel.cs +++ b/Models/VirtualMachineModel.cs @@ -6,12 +6,18 @@ namespace Microsoft.SelfService.Portal.Core.API.Models public class VirtualMachineModel : BaseModel { [Column(Order = 1)] - public Guid DomainID { get; set; } + public Guid? DomainID { get; set; } [Column(Order = 2)] public string Name { get; set; } + + [Column(Order = 3)] + public string? ExternalId { get; set; } + + [Column(Order = 4)] + public string? MetadataJson { get; set; } - public DomainModel Domain { get; set; } + public DomainModel? Domain { get; set; } public ICollection Deployments { get; set; } diff --git a/Program.cs b/Program.cs index 3d0a838..141db0c 100644 --- a/Program.cs +++ b/Program.cs @@ -5,6 +5,7 @@ using Microsoft.SelfService.Portal.Core.API.Events; using Microsoft.SelfService.Portal.Core.API.Events.Interfaces; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Repository; +using Microsoft.SelfService.Portal.Core.API.Services; using Microsoft.Extensions.FileProviders; using System.Text.Json.Serialization; @@ -29,6 +30,8 @@ builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); diff --git a/Repository/DeploymentGroupRepository.cs b/Repository/DeploymentGroupRepository.cs index 66b4ab5..201262b 100644 --- a/Repository/DeploymentGroupRepository.cs +++ b/Repository/DeploymentGroupRepository.cs @@ -30,10 +30,70 @@ namespace Microsoft.SelfService.Portal.Core.API.Repository .Where(dg => dg.Id == Id).FirstOrDefault(); } - public bool AddDeploymentGroupById(DeploymentGroupModel deploymentgroup) + public bool AddDeploymentGroupById(DeploymentGroupModel deploymentgroup, ICollection? virtualMachineIds) { + if (deploymentgroup.Id == Guid.Empty) + { + deploymentgroup.Id = Guid.NewGuid(); + } + + var template = _context.Templates + .Include(existing => existing.TemplateCategory) + .ThenInclude(existing => existing.Service) + .FirstOrDefault(existing => existing.Id == deploymentgroup.TemplateId); + + if (template == null) + { + return false; + } + + var isCloudService = template.TemplateCategory.Service.IsCloudService; + var selectedVirtualMachineIds = (virtualMachineIds ?? Array.Empty()) + .Distinct() + .ToList(); + + if (!isCloudService && selectedVirtualMachineIds.Count == 0) + { + return false; + } + + if (selectedVirtualMachineIds.Count > 0) + { + var existingVirtualMachineIds = _context.VirtualMachines + .Where(existing => selectedVirtualMachineIds.Contains(existing.Id)) + .Select(existing => existing.Id) + .ToHashSet(); + + if (existingVirtualMachineIds.Count != selectedVirtualMachineIds.Count) + { + return false; + } + } + _context.Add(deploymentgroup); - return SaveChanges(); + + if (!SaveChanges()) + { + return false; + } + + if (!isCloudService) + { + foreach (var virtualMachineId in selectedVirtualMachineIds) + { + _context.Deployments.Add(new DeploymentModel + { + DeploymentGroupId = deploymentgroup.Id, + VirtualMachineId = virtualMachineId, + Status = QueueJobStatus.Pending, + JSONData = "{}" + }); + } + + return SaveChanges(); + } + + return true; } public bool DeleteDeploymentGroupById(DeploymentGroupModel deploymentgroup) diff --git a/Repository/EnvironmentRepository.cs b/Repository/EnvironmentRepository.cs index b04d6b7..6a96183 100644 --- a/Repository/EnvironmentRepository.cs +++ b/Repository/EnvironmentRepository.cs @@ -51,8 +51,14 @@ namespace Microsoft.SelfService.Portal.Core.API.Repository public ICollection GetAvailableTemplatesByEnvironmentId(Guid Id) { var environment = _context.Environments.Where(e => e.Id == Id).FirstOrDefault(); + var isCloudEnvironment = environment != null + && environment.EnvironmentType != EnvironmentTypes.OnPrem; - return _context.Templates.Where(t => t.CloudTemplate == environment.CloudEnabled).ToList(); + return _context.Templates + .Include(t => t.TemplateCategory) + .ThenInclude(tc => tc.Service) + .Where(t => t.TemplateCategory.Service.IsCloudService == isCloudEnvironment) + .ToList(); } public bool CheckEnvironmentById(Guid Id) diff --git a/Repository/ServiceRepository.cs b/Repository/ServiceRepository.cs index 0c59ddd..5b167c2 100644 --- a/Repository/ServiceRepository.cs +++ b/Repository/ServiceRepository.cs @@ -1,4 +1,5 @@ -using Microsoft.SelfService.Portal.Core.API.Context; +using Microsoft.EntityFrameworkCore; +using Microsoft.SelfService.Portal.Core.API.Context; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; @@ -15,34 +16,103 @@ namespace Microsoft.SelfService.Portal.Core.API.Repository public ICollection GetServices() { - return _context.Services - .ToList(); + return _context.Services.ToList(); } public ServiceModel GetServiceById(Guid Id) { return _context.Services - .Where(s=>s.Id == Id) - .FirstOrDefault(); + .Include(service => service.RoleDefinitions) + .FirstOrDefault(service => service.Id == Id); + } + + public bool AddServiceById(ServiceModel service) + { + _context.Add(service); + return SaveChanges(); + } + + public bool EditServiceById(ServiceModel service) + { + _context.Update(service); + return SaveChanges(); + } + + public bool DeleteServiceById(ServiceModel service) + { + _context.Remove(service); + return SaveChanges(); } public bool CheckServiceById(Guid Id) { - return _context.Services - .Any(s =>s.Id == Id); + return _context.Services.Any(service => service.Id == Id); } public ServiceModel GetServiceByName(string Name) { - return _context.Services - .Where(s => s.Name == Name) - .FirstOrDefault(); + return _context.Services.FirstOrDefault(service => service.Name == Name); } public bool CheckServiceByName(string Name) { - return _context.Services - .Any(s => s.Name == Name); + return _context.Services.Any(service => service.Name == Name); + } + + public ICollection GetRoleDefinitionsByServiceId(Guid serviceId) + { + return _context.ServiceRoleDefinitions + .Where(roleDefinition => roleDefinition.ServiceId == serviceId) + .OrderBy(roleDefinition => roleDefinition.Name) + .ToList(); + } + + public ServiceRoleDefinitionModel GetRoleDefinitionById(Guid roleDefinitionId) + { + return _context.ServiceRoleDefinitions + .FirstOrDefault(roleDefinition => roleDefinition.Id == roleDefinitionId); + } + + public bool AddRoleDefinition(ServiceRoleDefinitionModel roleDefinition) + { + _context.ServiceRoleDefinitions.Add(roleDefinition); + return SaveChanges(); + } + + public bool EditRoleDefinition(ServiceRoleDefinitionModel roleDefinition) + { + _context.ServiceRoleDefinitions.Update(roleDefinition); + return SaveChanges(); + } + + public bool DeleteRoleDefinition(ServiceRoleDefinitionModel roleDefinition) + { + _context.ServiceRoleDefinitions.Remove(roleDefinition); + return SaveChanges(); + } + + public bool CheckRoleDefinitionById(Guid roleDefinitionId) + { + return _context.ServiceRoleDefinitions.Any(roleDefinition => roleDefinition.Id == roleDefinitionId); + } + + public bool CheckRoleDefinitionKey(Guid serviceId, string key, Guid? excludeRoleDefinitionId = null) + { + var query = _context.ServiceRoleDefinitions + .Where(roleDefinition => roleDefinition.ServiceId == serviceId && roleDefinition.Key == key); + + if (excludeRoleDefinitionId.HasValue) + { + query = query.Where(roleDefinition => roleDefinition.Id != excludeRoleDefinitionId.Value); + } + + return query.Any(); + } + + public bool SaveChanges() + { + var saved = _context.SaveChanges(); + return saved > 0; } } } diff --git a/Repository/TemplateCategoryRepository.cs b/Repository/TemplateCategoryRepository.cs new file mode 100644 index 0000000..f8a0e05 --- /dev/null +++ b/Repository/TemplateCategoryRepository.cs @@ -0,0 +1,76 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.SelfService.Portal.Core.API.Context; +using Microsoft.SelfService.Portal.Core.API.Interfaces; +using Microsoft.SelfService.Portal.Core.API.Models; + +namespace Microsoft.SelfService.Portal.Core.API.Repository +{ + public class TemplateCategoryRepository : ITemplateCategoryInterface + { + private readonly DataContext _context; + + public TemplateCategoryRepository(DataContext context) + { + _context = context; + } + + public ICollection GetTemplateCategories() + { + return _context.TemplateCategories + .AsNoTracking() + .ToList(); + } + + public TemplateCategoryModel GetTemplateCategoryById(Guid Id) + { + return _context.TemplateCategories + .AsNoTracking() + .Where(tc => tc.Id == Id) + .FirstOrDefault(); + } + + public bool AddTemplateCategoryById(TemplateCategoryModel templateCategory) + { + _context.Add(templateCategory); + return SaveChanges(); + } + + public bool EditTemplateCategoryById(TemplateCategoryModel templateCategory) + { + _context.Update(templateCategory); + return SaveChanges(); + } + + public bool DeleteTemplateCategoryById(TemplateCategoryModel templateCategory) + { + _context.Remove(templateCategory); + return SaveChanges(); + } + + public bool CheckTemplateCategoryById(Guid Id) + { + return _context.TemplateCategories + .Any(tc => tc.Id == Id); + } + + public TemplateCategoryModel GetTemplateCategoryByName(string Name) + { + return _context.TemplateCategories + .AsNoTracking() + .Where(tc => tc.Name == Name) + .FirstOrDefault(); + } + + public bool CheckTemplateCategoryByName(string Name) + { + return _context.TemplateCategories + .Any(tc => tc.Name == Name); + } + + public bool SaveChanges() + { + var saved = _context.SaveChanges(); + return saved > 0 ? true : false; + } + } +} diff --git a/Repository/TemplateRepository.cs b/Repository/TemplateRepository.cs index 14cf7fb..ea2893c 100644 --- a/Repository/TemplateRepository.cs +++ b/Repository/TemplateRepository.cs @@ -1,4 +1,5 @@ -using Microsoft.SelfService.Portal.Core.API.Context; +using Microsoft.EntityFrameworkCore; +using Microsoft.SelfService.Portal.Core.API.Context; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; @@ -16,20 +17,60 @@ namespace Microsoft.SelfService.Portal.Core.API.Repository public ICollection GetTemplates() { return _context.Templates + .AsNoTracking() .ToList(); } public TemplateModel GetTemplateById(Guid Id) { return _context.Templates + .AsNoTracking() .Where(t => t.Id == Id) .FirstOrDefault(); } + public bool AddTemplateById(TemplateModel template) + { + _context.Add(template); + return SaveChanges(); + } + + public bool EditTemplateById(TemplateModel template) + { + _context.Update(template); + return SaveChanges(); + } + + public bool DeleteTemplateById(TemplateModel template) + { + _context.Remove(template); + return SaveChanges(); + } + public bool CheckTemplateById(Guid Id) { return _context.Templates .Any(t => t.Id == Id); } - } + + public TemplateModel GetTemplateByName(string Name) + { + return _context.Templates + .AsNoTracking() + .Where(t => t.Name == Name) + .FirstOrDefault(); + } + + public bool CheckTemplateByName(string Name) + { + return _context.Templates + .Any(t => t.Name == Name); + } + + public bool SaveChanges() + { + var saved = _context.SaveChanges(); + return saved > 0 ? true : false; + } + } } diff --git a/Repository/VirtualMachineRepository.cs b/Repository/VirtualMachineRepository.cs index 6ee52d2..7b4b9cb 100644 --- a/Repository/VirtualMachineRepository.cs +++ b/Repository/VirtualMachineRepository.cs @@ -17,6 +17,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Repository public ICollection GetVirtualMachines() { return _context.VirtualMachines + .Include(virtualMachine => virtualMachine.Domain) .ToList(); } @@ -29,6 +30,31 @@ namespace Microsoft.SelfService.Portal.Core.API.Repository .FirstOrDefault(); } + public bool AddVirtualMachineById(VirtualMachineModel virtualMachine) + { + _context.Add(virtualMachine); + return SaveChanges(); + } + + public bool EditVirtualMachineById(VirtualMachineModel virtualMachine) + { + _context.Update(virtualMachine); + return SaveChanges(); + } + + public bool DeleteVirtualMachineById(VirtualMachineModel virtualMachine) + { + _context.Remove(virtualMachine); + return SaveChanges(); + } + + public VirtualMachineModel GetVirtualMachineByName(string Name) + { + return _context.VirtualMachines + .Where(v => v.Name == Name) + .FirstOrDefault(); + } + public bool CheckVirtualMachineById(Guid Id) { return _context.VirtualMachines @@ -40,5 +66,11 @@ namespace Microsoft.SelfService.Portal.Core.API.Repository return _context.VirtualMachines .Any(v => v.Name == Name); } + + public bool SaveChanges() + { + var saved = _context.SaveChanges(); + return saved > 0 ? true : false; + } } } diff --git a/Services/QueueJobService.cs b/Services/QueueJobService.cs new file mode 100644 index 0000000..c99f668 --- /dev/null +++ b/Services/QueueJobService.cs @@ -0,0 +1,315 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.SelfService.Portal.Core.API.Context; +using Microsoft.SelfService.Portal.Core.API.Interfaces; +using Microsoft.SelfService.Portal.Core.API.Models; +using System.Text.Json; + +namespace Microsoft.SelfService.Portal.Core.API.Services +{ + public class QueueJobService : IQueueJobService + { + private readonly DataContext _context; + + public QueueJobService(DataContext context) + { + _context = context; + } + + public Guid EnqueueTemplateJsonChanged(Guid templateId, string oldJsonData, string newJsonData) + { + var deployments = _context.Deployments + .AsNoTracking() + .Include(deployment => deployment.DeploymentGroup) + .Where(deployment => deployment.DeploymentGroup.TemplateId == templateId) + .ToList(); + + var payload = new + { + TemplateId = templateId, + OldJsonData = oldJsonData, + NewJsonData = newJsonData, + TargetCount = deployments.Count, + Created = DateTime.UtcNow + }; + + var queueJob = new QueueJobModel + { + Type = QueueJobType.TemplateJsonChanged, + Status = QueueJobStatus.Pending, + PayloadJson = JsonSerializer.Serialize(payload), + Targets = deployments.Select(deployment => new QueueJobTargetModel + { + VirtualMachineId = deployment.VirtualMachineId, + DeploymentGroupId = deployment.DeploymentGroupId, + TemplateId = templateId, + Status = QueueJobStatus.Pending + }).ToList() + }; + queueJob.Steps = BuildDefaultJobSteps(); + + _context.QueueJobs.Add(queueJob); + _context.SaveChanges(); + + return queueJob.Id; + } + + public Guid EnqueueDeploymentRequest(Guid deploymentGroupId, ICollection virtualMachineIds, string jsonData) + { + var deploymentGroup = _context.DeploymentGroups + .AsNoTracking() + .Include(group => group.Template) + .ThenInclude(template => template.DeploymentRule) + .ThenInclude(rule => rule.Steps) + .FirstOrDefault(group => group.Id == deploymentGroupId); + + if (deploymentGroup == null) + { + throw new InvalidOperationException("DeploymentGroup does not exist."); + } + + var templateId = deploymentGroup.TemplateId; + var resolvedVirtualMachineIds = virtualMachineIds + .Distinct() + .ToList(); + + if (resolvedVirtualMachineIds.Count == 0) + { + throw new InvalidOperationException("No target VirtualMachines provided."); + } + + var existingVirtualMachines = _context.VirtualMachines + .AsNoTracking() + .Where(virtualMachine => resolvedVirtualMachineIds.Contains(virtualMachine.Id)) + .Select(virtualMachine => virtualMachine.Id) + .ToHashSet(); + + var missingVirtualMachines = resolvedVirtualMachineIds + .Where(virtualMachineId => !existingVirtualMachines.Contains(virtualMachineId)) + .ToList(); + + if (missingVirtualMachines.Count > 0) + { + throw new InvalidOperationException($"Unknown VirtualMachine IDs: {string.Join(", ", missingVirtualMachines)}"); + } + + foreach (var virtualMachineId in resolvedVirtualMachineIds) + { + var deployment = _context.Deployments + .FirstOrDefault(existing => + existing.DeploymentGroupId == deploymentGroupId + && existing.VirtualMachineId == virtualMachineId); + + if (deployment == null) + { + deployment = new DeploymentModel + { + DeploymentGroupId = deploymentGroupId, + VirtualMachineId = virtualMachineId, + Status = QueueJobStatus.Pending, + JSONData = jsonData + }; + + _context.Deployments.Add(deployment); + } + else + { + deployment.Status = QueueJobStatus.Pending; + deployment.JSONData = jsonData; + } + } + + var payload = new + { + DeploymentGroupId = deploymentGroupId, + TemplateId = templateId, + VirtualMachineIds = resolvedVirtualMachineIds, + JsonData = jsonData, + TargetCount = resolvedVirtualMachineIds.Count, + Created = DateTime.UtcNow + }; + + var queueJob = new QueueJobModel + { + Type = QueueJobType.DeploymentRequested, + Status = QueueJobStatus.Pending, + PayloadJson = JsonSerializer.Serialize(payload), + RuleSnapshotJson = deploymentGroup.Template?.DeploymentRuleId.HasValue == true + ? SerializeRuleSnapshot(deploymentGroup.Template!.DeploymentRule) + : null, + Targets = resolvedVirtualMachineIds.Select(virtualMachineId => new QueueJobTargetModel + { + VirtualMachineId = virtualMachineId, + DeploymentGroupId = deploymentGroupId, + TemplateId = templateId, + Status = QueueJobStatus.Pending + }).ToList() + }; + queueJob.Steps = BuildDeploymentSteps(deploymentGroup.Template?.DeploymentRule); + + _context.QueueJobs.Add(queueJob); + _context.SaveChanges(); + + return queueJob.Id; + } + + public bool RetryQueueJob(Guid queueJobId) + { + var queueJob = _context.QueueJobs + .Include(job => job.Targets) + .FirstOrDefault(job => job.Id == queueJobId); + + if (queueJob == null) + { + return false; + } + + queueJob.Status = QueueJobStatus.Pending; + queueJob.ErrorMessage = null; + queueJob.Finished = null; + queueJob.LockedUntil = null; + queueJob.LockedBy = null; + queueJob.Steps ??= new List(); + + foreach (var target in queueJob.Targets) + { + if (target.Status == QueueJobStatus.Failed || target.Status == QueueJobStatus.Cancelled) + { + target.Status = QueueJobStatus.Pending; + target.ErrorMessage = null; + } + } + foreach (var step in queueJob.Steps) + { + if (step.Status == QueueJobStatus.Failed + || step.Status == QueueJobStatus.Cancelled + || step.Status == QueueJobStatus.WaitingForApproval + || step.Status == QueueJobStatus.Rejected) + { + step.Status = QueueJobStatus.Pending; + step.ApprovedAt = null; + step.ApprovedBy = null; + step.ApprovalComment = null; + } + } + + return _context.SaveChanges() > 0; + } + + public bool ApproveQueueJobStep(Guid queueJobStepId, string approvedBy, string? comment) + { + var step = _context.QueueJobSteps + .Include(existing => existing.QueueJob) + .FirstOrDefault(existing => existing.Id == queueJobStepId); + + if (step == null || step.StepType != QueueJobStepType.Approval) + { + return false; + } + + step.Status = QueueJobStatus.Succeeded; + step.ApprovedAt = DateTime.UtcNow; + step.ApprovedBy = approvedBy; + step.ApprovalComment = comment; + step.QueueJob.Status = QueueJobStatus.Pending; + step.QueueJob.LockedUntil = null; + step.QueueJob.LockedBy = null; + step.QueueJob.ErrorMessage = null; + + return _context.SaveChanges() > 0; + } + + public bool RejectQueueJobStep(Guid queueJobStepId, string approvedBy, string? comment) + { + var step = _context.QueueJobSteps + .Include(existing => existing.QueueJob) + .FirstOrDefault(existing => existing.Id == queueJobStepId); + + if (step == null || step.StepType != QueueJobStepType.Approval) + { + return false; + } + + step.Status = QueueJobStatus.Rejected; + step.ApprovedAt = DateTime.UtcNow; + step.ApprovedBy = approvedBy; + step.ApprovalComment = comment; + step.QueueJob.Status = QueueJobStatus.Rejected; + step.QueueJob.Finished = DateTime.UtcNow; + step.QueueJob.LockedUntil = null; + step.QueueJob.LockedBy = null; + step.QueueJob.ErrorMessage = comment ?? "Deployment step rejected."; + + return _context.SaveChanges() > 0; + } + + private static List BuildDefaultJobSteps() + { + return new List + { + new() + { + Id = Guid.NewGuid(), + SortOrder = 1, + Name = "Provision", + StepType = QueueJobStepType.Provision, + Status = QueueJobStatus.Pending + } + }; + } + + private static List BuildDeploymentSteps(DeploymentRuleModel? deploymentRule) + { + if (deploymentRule?.Steps == null || deploymentRule.Steps.Count == 0) + { + return BuildDefaultJobSteps(); + } + + var steps = deploymentRule.Steps + .OrderBy(step => step.SortOrder) + .Select(step => new QueueJobStepModel + { + Id = Guid.NewGuid(), + SortOrder = step.SortOrder, + Name = step.Name, + StepType = step.RequiresApproval ? QueueJobStepType.Approval : step.StepType, + Status = QueueJobStatus.Pending, + MetadataJson = step.MetadataJson + }) + .ToList(); + + for (var i = 1; i < steps.Count; i++) + { + steps[i].DependsOnQueueJobStepId = steps[i - 1].Id; + } + + return steps; + } + + private static string? SerializeRuleSnapshot(DeploymentRuleModel? rule) + { + if (rule == null) + { + return null; + } + + var snapshot = new + { + rule.Id, + rule.Name, + Steps = rule.Steps + .OrderBy(step => step.SortOrder) + .Select(step => new + { + step.Id, + step.SortOrder, + step.Name, + step.StepType, + step.RequiresApproval, + step.MetadataJson + }) + }; + + return JsonSerializer.Serialize(snapshot); + } + } +} diff --git a/appsettings.json b/appsettings.json index 005b7be..d6527c3 100644 --- a/appsettings.json +++ b/appsettings.json @@ -7,6 +7,6 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "Context": "Server=RZ1VCMSQL001\\MSSSP;Database=SSP;TrustServerCertificate=True;Encrypt=False;Integrated Security=SSPI" + "Context": "Server=.;Database=SSP;TrustServerCertificate=True;Encrypt=False;Trusted_Connection=True" } -} \ No newline at end of file +} diff --git a/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll b/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll index 80e72ad..266cd81 100644 Binary files a/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll and b/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll differ diff --git a/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.exe b/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.exe index b0fc955..86ae051 100644 Binary files a/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.exe and b/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.exe differ diff --git a/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb b/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb index d2eb363..e65ce7c 100644 Binary files a/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb and b/bin/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb differ diff --git a/bin/Debug/net10.0/appsettings.json b/bin/Debug/net10.0/appsettings.json index 005b7be..d6527c3 100644 --- a/bin/Debug/net10.0/appsettings.json +++ b/bin/Debug/net10.0/appsettings.json @@ -7,6 +7,6 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "Context": "Server=RZ1VCMSQL001\\MSSSP;Database=SSP;TrustServerCertificate=True;Encrypt=False;Integrated Security=SSPI" + "Context": "Server=.;Database=SSP;TrustServerCertificate=True;Encrypt=False;Trusted_Connection=True" } -} \ No newline at end of file +} diff --git a/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json b/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json new file mode 100644 index 0000000..c0e0bd0 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json @@ -0,0 +1,1290 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "dependencies": { + "AutoMapper": "16.1.1", + "Microsoft.AspNetCore.Authentication.Negotiate": "10.0.8", + "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "10.0.8", + "Microsoft.AspNetCore.OpenApi": "10.0.8", + "Microsoft.EntityFrameworkCore": "10.0.8", + "Microsoft.EntityFrameworkCore.Design": "10.0.8", + "Microsoft.EntityFrameworkCore.SqlServer": "10.0.8", + "Swashbuckle.AspNetCore": "10.1.7" + }, + "runtime": { + "Microsoft.SelfService.Portal.Core.API.dll": {} + } + }, + "AutoMapper/16.1.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0" + }, + "runtime": { + "lib/net10.0/AutoMapper.dll": { + "assemblyVersion": "16.0.0.0", + "fileVersion": "16.1.1.0" + } + } + }, + "Azure.Core/1.47.1": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "System.ClientModel": "1.5.1", + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/Azure.Core.dll": { + "assemblyVersion": "1.47.1.0", + "fileVersion": "1.4700.125.36505" + } + } + }, + "Azure.Identity/1.14.2": { + "dependencies": { + "Azure.Core": "1.47.1", + "Microsoft.Identity.Client": "4.73.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.73.1" + }, + "runtime": { + "lib/net8.0/Azure.Identity.dll": { + "assemblyVersion": "1.14.2.0", + "fileVersion": "1.1400.225.36004" + } + } + }, + "Humanizer.Core/2.14.1": { + "runtime": { + "lib/net6.0/Humanizer.dll": { + "assemblyVersion": "2.14.0.0", + "fileVersion": "2.14.1.48190" + } + } + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "dependencies": { + "System.DirectoryServices.Protocols": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Authentication.Negotiate.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.JsonPatch.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "dependencies": { + "Microsoft.AspNetCore.JsonPatch": "10.0.8", + "Newtonsoft.Json": "13.0.3", + "Newtonsoft.Json.Bson": "1.0.2" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.OpenApi.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "runtime": { + "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { + "assemblyVersion": "9.0.0.4", + "fileVersion": "9.0.425.16305" + } + } + }, + "Microsoft.Build.Framework/18.0.2": { + "runtime": { + "lib/net10.0/Microsoft.Build.Framework.dll": { + "assemblyVersion": "15.1.0.0", + "fileVersion": "18.0.2.52102" + } + } + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "5.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "Microsoft.VisualStudio.SolutionPersistence": "1.0.52", + "Newtonsoft.Json": "13.0.3", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + }, + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.Data.SqlClient/6.1.1": { + "dependencies": { + "Azure.Core": "1.47.1", + "Azure.Identity": "1.14.2", + "Microsoft.Bcl.Cryptography": "9.0.4", + "Microsoft.Data.SqlClient.SNI.runtime": "6.0.2", + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.7.1", + "Microsoft.SqlServer.Server": "1.0.0", + "System.Configuration.ConfigurationManager": "9.0.4" + }, + "runtime": { + "lib/net9.0/Microsoft.Data.SqlClient.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hant" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + }, + "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + } + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "runtimeTargets": { + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "6.2.0.0" + } + } + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.MSBuild": "5.0.0", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8", + "Microsoft.Extensions.DependencyModel": "10.0.8", + "Mono.TextTemplating": "3.0.0", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Design.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "dependencies": { + "Microsoft.Data.SqlClient": "6.1.1", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.SqlServer.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Identity.Client/4.73.1": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "dependencies": { + "Microsoft.Identity.Client": "4.73.1", + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.7.1", + "System.IdentityModel.Tokens.Jwt": "7.7.1" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.OpenApi/2.4.1": { + "runtime": { + "lib/net8.0/Microsoft.OpenApi.dll": { + "assemblyVersion": "2.4.1.0", + "fileVersion": "2.4.1.0" + } + } + }, + "Microsoft.SqlServer.Server/1.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "runtime": { + "lib/net8.0/Microsoft.VisualStudio.SolutionPersistence.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.52.6595" + } + } + }, + "Mono.TextTemplating/3.0.0": { + "dependencies": { + "System.CodeDom": "6.0.0" + }, + "runtime": { + "lib/net6.0/Mono.TextTemplating.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.1" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "Newtonsoft.Json.Bson/1.0.2": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.Bson.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.2.22727" + } + } + }, + "Swashbuckle.AspNetCore/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7" + } + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "System.ClientModel/1.5.1": { + "dependencies": { + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/System.ClientModel.dll": { + "assemblyVersion": "1.5.1.0", + "fileVersion": "1.500.125.36405" + } + } + }, + "System.CodeDom/6.0.0": { + "runtime": { + "lib/net6.0/System.CodeDom.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Convention": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0", + "System.Composition.TypedParts": "9.0.0" + } + }, + "System.Composition.AttributedModel/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Convention/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Convention.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Hosting/9.0.0": { + "dependencies": { + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Hosting.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Runtime/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.Runtime.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.TypedParts/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net9.0/System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + }, + "System.DirectoryServices.Protocols/10.0.8": { + "runtime": { + "lib/net10.0/System.DirectoryServices.Protocols.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "System.Memory.Data/8.0.1": { + "runtime": { + "lib/net8.0/System.Memory.Data.dll": { + "assemblyVersion": "8.0.0.1", + "fileVersion": "8.0.1024.46610" + } + } + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "runtime": { + "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + } + } + }, + "libraries": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AutoMapper/16.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VNEky8JA15ci+oIDRGHITOGOpV4dILsf8pnn24QhDl2urtqgJ2IXiS/V2EtGU17P/+f6OeFQPJETaZXV9QOIZg==", + "path": "automapper/16.1.1", + "hashPath": "automapper.16.1.1.nupkg.sha512" + }, + "Azure.Core/1.47.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oPcncSsDHuxB8SC522z47xbp2+ttkcKv2YZ90KXhRKN0YQd2+7l1UURT9EBzUNEXtkLZUOAB5xbByMTrYRh3yA==", + "path": "azure.core/1.47.1", + "hashPath": "azure.core.1.47.1.nupkg.sha512" + }, + "Azure.Identity/1.14.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YhNMwOTwT+I2wIcJKSdP0ADyB2aK+JaYWZxO8LSRDm5w77LFr0ykR9xmt2ZV5T1gaI7xU6iNFIh/yW1dAlpddQ==", + "path": "azure.identity/1.14.2", + "hashPath": "azure.identity.1.14.2.nupkg.sha512" + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "path": "humanizer.core/2.14.1", + "hashPath": "humanizer.core.2.14.1.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PkNdrRbU4togx1Eg3/0kcqpRLbtkfqhZ3aHudMQwbXnwcGJgxEgu65YLjqRD/tSp8szrH1XdefyyymTrfi0WPQ==", + "path": "microsoft.aspnetcore.authentication.negotiate/10.0.8", + "hashPath": "microsoft.aspnetcore.authentication.negotiate.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xGMQwR06DxQSpSUdYvUPLQkjcQUAXnFIUbNoafAcLvUXDnmKNEuddxKvrGoWDT7svt90wWet2Xve5uacO/pVtw==", + "path": "microsoft.aspnetcore.jsonpatch/10.0.8", + "hashPath": "microsoft.aspnetcore.jsonpatch.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LAZmDrEsExc11l7nyQ+efQHTKp4MOskAuPSgkW64LoxrJv2YnElc4IM1VGfIHNRspqVguO5TY5kz2YTRcNSHeQ==", + "path": "microsoft.aspnetcore.mvc.newtonsoftjson/10.0.8", + "hashPath": "microsoft.aspnetcore.mvc.newtonsoftjson.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cw24xHE2QaWwyEG9GQwFbjboyabub6Vd80DIItUGENzcQOa/BEnTrXsg2GADqWTmY/3ycqk9ToLGjgvF/VRlGA==", + "path": "microsoft.aspnetcore.openapi/10.0.8", + "hashPath": "microsoft.aspnetcore.openapi.10.0.8.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YgZYAWzyNuPVtPq6WNm0bqOWNjYaWgl5mBWTGZyNoXitYBUYSp6iUB9AwK0V1mo793qRJUXz2t6UZrWITZSvuQ==", + "path": "microsoft.bcl.cryptography/9.0.4", + "hashPath": "microsoft.bcl.cryptography.9.0.4.nupkg.sha512" + }, + "Microsoft.Build.Framework/18.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sOSb+0J4G/jCBW/YqmRuL0eOMXgfw1KQLdC9TkbvfA5xs7uNm+PBQXJCOzSJGXtZcZrtXozcwxPmUiRUbmd7FA==", + "path": "microsoft.build.framework/18.0.2", + "hashPath": "microsoft.build.framework.18.0.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZXRAdvH6GiDeHRyd3q/km8Z44RoM6FBWHd+gen/la81mVnAdHTEsEkO5J0TCNXBymAcx5UYKt5TvgKBhaLJEow==", + "path": "microsoft.codeanalysis.common/5.0.0", + "hashPath": "microsoft.codeanalysis.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DSyJ9bk+ATuDy7fp2Zt0mJStDVKbBoiz1DyfAwSa+k4H4IwykAUcV3URelw5b8/iVbfSaOwkwmPUZH6opZKCw==", + "path": "microsoft.codeanalysis.csharp/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Al/Q8B+yO8odSqGVpSvrShMFDvlQdIBU//F3E6Rb0YdiLSALE9wh/pvozPNnfmh5HDnvU+mkmSjpz4hQO++jaA==", + "path": "microsoft.codeanalysis.csharp.workspaces/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.workspaces.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZbUmIvT6lqTNKiv06Jl5wf0MTMi1vQ1oH7ou4CLcs2C/no/L7EhP3T8y3XXvn9VbqMcJaJnEsNA1jwYUMgc5jg==", + "path": "microsoft.codeanalysis.workspaces.common/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/G+LVoAGMz6Ae8nm+PGLxSw+F5RjYx/J7irbTO5uKAPw1bxHyQJLc/YOnpDxt+EpPtYxvC9wvBsg/kETZp1F9Q==", + "path": "microsoft.codeanalysis.workspaces.msbuild/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.msbuild.5.0.0.nupkg.sha512" + }, + "Microsoft.Data.SqlClient/6.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-syGQmIUPAYYHAHyTD8FCkTNThpQWvoA7crnIQRMfp8dyB5A2cWU3fQexlRTFkVmV7S0TjVmthi0LJEFVjHo8AQ==", + "path": "microsoft.data.sqlclient/6.1.1", + "hashPath": "microsoft.data.sqlclient.6.1.1.nupkg.sha512" + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f+pRODTWX7Y67jXO3T5S2dIPZ9qMJNySjlZT/TKmWVNWe19N8jcWmHaqHnnchaq3gxEKv1SWVY5EFzOD06l41w==", + "path": "microsoft.data.sqlclient.sni.runtime/6.0.2", + "hashPath": "microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EJx+fIBMgBlgD+ublKCn+GTOJkw3UqV7xOjYWBRVdUYyIm8UfvAsmSOPFiIInsWTHyMEYUJ9gCJY1jwX+6UB7w==", + "path": "microsoft.entityframeworkcore/10.0.8", + "hashPath": "microsoft.entityframeworkcore.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jbKDXWPZQhuPHygMnwzNOqxBADVcpRVytcKYZsA++QqhPkpF93Ta8o5mbJQGrARSjlkr9WtOaADV97EDMOZ7DA==", + "path": "microsoft.entityframeworkcore.abstractions/10.0.8", + "hashPath": "microsoft.entityframeworkcore.abstractions.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LlUUXdfqKFk7RlGExojVP8GI6hN9O21WjpxFnp5mLeGjd9iYdwywIgK9WOLvPM2hrknrRyHR/i43FQdw/oCrOw==", + "path": "microsoft.entityframeworkcore.design/10.0.8", + "hashPath": "microsoft.entityframeworkcore.design.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UU3diAD2wwZveye2rnrwaF/wvJ9tm5iL2fuY9TTap6/iGQK1OO29M1BzXZRlRPVH/dByt5w/pISBSFtyR7hTqw==", + "path": "microsoft.entityframeworkcore.relational/10.0.8", + "hashPath": "microsoft.entityframeworkcore.relational.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-A+FLIsTH9l5DG2iD6QW6Mfwlvr+BjWme/jJ2hvwmmENTr7lR1UWmgCtKCjDYcHxqdAD15bb4PgQnSzw12DV/pw==", + "path": "microsoft.entityframeworkcore.sqlserver/10.0.8", + "hashPath": "microsoft.entityframeworkcore.sqlserver.10.0.8.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vLyZVpxmduO2jx+76ggqnsA3m81kwMY3NkWciNTj5E+Nvqb0VihqCvQP89QsGONWp0AJwMZG+u9GzaCjDdFGNw==", + "path": "microsoft.extensions.dependencymodel/10.0.8", + "hashPath": "microsoft.extensions.dependencymodel.10.0.8.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NnDLS8QwYqO5ZZecL2oioi1LUqjh5Ewk4bMLzbgiXJbQmZhDLtKwLxL3DpGMlQAJ2G4KgEnvGPKa+OOgffeJbw==", + "path": "microsoft.identity.client/4.73.1", + "hashPath": "microsoft.identity.client.4.73.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xDztAiV2F0wI0W8FLKv5cbaBefyLD6JVaAsvgSN7bjWNCzGYzHbcOEIP5s4TJXUpQzMfUyBsFl1mC6Zmgpz0PQ==", + "path": "microsoft.identity.client.extensions.msal/4.73.1", + "hashPath": "microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", + "path": "microsoft.identitymodel.abstractions/8.14.0", + "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", + "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", + "path": "microsoft.identitymodel.logging/8.14.0", + "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h+fHHBGokepmCX+QZXJk4Ij8OApCb2n2ktoDkNX5CXteXsOxTHMNgjPGpAwdJMFvAL7TtGarUnk3o97NmBq2QQ==", + "path": "microsoft.identitymodel.protocols/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yT2Hdj8LpPbcT9C9KlLVxXl09C8zjFaVSaApdOwuecMuoV4s6Sof/mnTDz/+F/lILPIBvrWugR9CC7iRVZgbfQ==", + "path": "microsoft.identitymodel.protocols.openidconnect/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", + "path": "microsoft.identitymodel.tokens/8.14.0", + "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" + }, + "Microsoft.OpenApi/2.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw==", + "path": "microsoft.openapi/2.4.1", + "hashPath": "microsoft.openapi.2.4.1.nupkg.sha512" + }, + "Microsoft.SqlServer.Server/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug==", + "path": "microsoft.sqlserver.server/1.0.0", + "hashPath": "microsoft.sqlserver.server.1.0.0.nupkg.sha512" + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oNv2JtYXhpdJrX63nibx1JT3uCESOBQ1LAk7Dtz/sr0+laW0KRM6eKp4CZ3MHDR2siIkKsY8MmUkeP5DKkQQ5w==", + "path": "microsoft.visualstudio.solutionpersistence/1.0.52", + "hashPath": "microsoft.visualstudio.solutionpersistence.1.0.52.nupkg.sha512" + }, + "Mono.TextTemplating/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YqueG52R/Xej4VVbKuRIodjiAhV0HR/XVbLbNrJhCZnzjnSjgMJ/dCdV0akQQxavX6hp/LC6rqLGLcXeQYU7XA==", + "path": "mono.texttemplating/3.0.0", + "hashPath": "mono.texttemplating.3.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "Newtonsoft.Json.Bson/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QYFyxhaABwmq3p/21VrZNYvCg3DaEoN/wUuw5nmfAf0X3HLjgupwhkEWdgfb9nvGAUIv3osmZoD3kKl4jxEmYQ==", + "path": "newtonsoft.json.bson/1.0.2", + "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==", + "path": "swashbuckle.aspnetcore/10.1.7", + "hashPath": "swashbuckle.aspnetcore.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==", + "path": "swashbuckle.aspnetcore.swagger/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swagger.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==", + "path": "swashbuckle.aspnetcore.swaggergen/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggergen.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw==", + "path": "swashbuckle.aspnetcore.swaggerui/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggerui.10.1.7.nupkg.sha512" + }, + "System.ClientModel/1.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k2jKSO0X45IqhVOT9iQB4xralNN9foRQsRvXBTyRpAVxyzCJlG895T9qYrQWbcJ6OQXxOouJQ37x5nZH5XKK+A==", + "path": "system.clientmodel/1.5.1", + "hashPath": "system.clientmodel.1.5.1.nupkg.sha512" + }, + "System.CodeDom/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==", + "path": "system.codedom/6.0.0", + "hashPath": "system.codedom.6.0.0.nupkg.sha512" + }, + "System.Composition/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==", + "path": "system.composition/9.0.0", + "hashPath": "system.composition.9.0.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA==", + "path": "system.composition.attributedmodel/9.0.0", + "hashPath": "system.composition.attributedmodel.9.0.0.nupkg.sha512" + }, + "System.Composition.Convention/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==", + "path": "system.composition.convention/9.0.0", + "hashPath": "system.composition.convention.9.0.0.nupkg.sha512" + }, + "System.Composition.Hosting/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==", + "path": "system.composition.hosting/9.0.0", + "hashPath": "system.composition.hosting.9.0.0.nupkg.sha512" + }, + "System.Composition.Runtime/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA==", + "path": "system.composition.runtime/9.0.0", + "hashPath": "system.composition.runtime.9.0.0.nupkg.sha512" + }, + "System.Composition.TypedParts/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==", + "path": "system.composition.typedparts/9.0.0", + "hashPath": "system.composition.typedparts.9.0.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dvjqKp+2LpGid6phzrdrS/2mmEPxFl3jE1+L7614q4ZChKbLJCpHXg6sBILlCCED1t//EE+un/UdAetzIMpqnw==", + "path": "system.configuration.configurationmanager/9.0.4", + "hashPath": "system.configuration.configurationmanager.9.0.4.nupkg.sha512" + }, + "System.DirectoryServices.Protocols/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VmFO1CBCUvWu9cV2XQSeKXRW2Gn76oZmuhhOk7GPDIvzaPoy3lVWHFExFyKNNJlQbGySUbor1bqa1Fc8CJCF/A==", + "path": "system.directoryservices.protocols/10.0.8", + "hashPath": "system.directoryservices.protocols.10.0.8.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rQkO1YbAjLwnDJSMpRhRtrc6XwIcEOcUvoEcge+evurpzSZM3UNK+MZfD3sKyTlYsvknZ6eJjSBfnmXqwOsT9Q==", + "path": "system.identitymodel.tokens.jwt/7.7.1", + "hashPath": "system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512" + }, + "System.Memory.Data/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BVYuec3jV23EMRDeR7Dr1/qhx7369dZzJ9IWy2xylvb4YfXsrUxspWc4UWYid/tj4zZK58uGZqn2WQiaDMhmAg==", + "path": "system.memory.data/8.0.1", + "hashPath": "system.memory.data.8.0.1.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o94k2RKuAce3GeDMlUvIXlhVa1kWpJw95E6C9LwW0KlG0nj5+SgCiIxJ2Eroqb9sLtG1mEMbFttZIBZ13EJPvQ==", + "path": "system.security.cryptography.protecteddata/9.0.4", + "hashPath": "system.security.cryptography.protecteddata.9.0.4.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json b/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json new file mode 100644 index 0000000..bf15a00 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json @@ -0,0 +1,20 @@ +{ + "runtimeOptions": { + "tfm": "net10.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "10.0.0" + }, + { + "name": "Microsoft.AspNetCore.App", + "version": "10.0.0" + } + ], + "configProperties": { + "System.GC.Server": true, + "System.Reflection.NullabilityInfoContext.IsSupported": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json b/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json new file mode 100644 index 0000000..5576e88 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json @@ -0,0 +1 @@ +{"Version":1,"ManifestType":"Build","Endpoints":[]} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck/appsettings.Development.json b/bin/Debug/net10.0/buildcheck/appsettings.Development.json new file mode 100644 index 0000000..cf398c2 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck/appsettings.Development.json @@ -0,0 +1,5 @@ +{ + "ConnectionStrings": { + "Context": "Server=.;Database=SSP;TrustServerCertificate=True;Encrypt=False;Trusted_Connection=True" + } +} diff --git a/bin/Debug/net10.0/buildcheck/appsettings.json b/bin/Debug/net10.0/buildcheck/appsettings.json new file mode 100644 index 0000000..005b7be --- /dev/null +++ b/bin/Debug/net10.0/buildcheck/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "Context": "Server=RZ1VCMSQL001\\MSSSP;Database=SSP;TrustServerCertificate=True;Encrypt=False;Integrated Security=SSPI" + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/AutoMapper.dll b/bin/Debug/net10.0/buildcheck3/AutoMapper.dll new file mode 100644 index 0000000..e031ec9 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/AutoMapper.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Azure.Core.dll b/bin/Debug/net10.0/buildcheck3/Azure.Core.dll new file mode 100644 index 0000000..8883ec9 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Azure.Core.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Azure.Identity.dll b/bin/Debug/net10.0/buildcheck3/Azure.Identity.dll new file mode 100644 index 0000000..ea19200 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Azure.Identity.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Humanizer.dll b/bin/Debug/net10.0/buildcheck3/Humanizer.dll new file mode 100644 index 0000000..c9a7ef8 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Humanizer.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.Authentication.Negotiate.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.Authentication.Negotiate.dll new file mode 100644 index 0000000..3c68db6 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.Authentication.Negotiate.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.JsonPatch.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.JsonPatch.dll new file mode 100644 index 0000000..a9c3e6a Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.JsonPatch.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll new file mode 100644 index 0000000..ff5873c Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.OpenApi.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.OpenApi.dll new file mode 100644 index 0000000..b0a2772 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.AspNetCore.OpenApi.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.Bcl.AsyncInterfaces.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 0000000..421e812 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.Bcl.Cryptography.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.Bcl.Cryptography.dll new file mode 100644 index 0000000..e0a506a Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.Bcl.Cryptography.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.Build.Framework.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.Build.Framework.dll new file mode 100644 index 0000000..a1a97aa Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.Build.Framework.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.CSharp.Workspaces.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.CSharp.Workspaces.dll new file mode 100644 index 0000000..ab1265c Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.CSharp.Workspaces.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.CSharp.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.CSharp.dll new file mode 100644 index 0000000..dc1f35d Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.CSharp.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll new file mode 100644 index 0000000..e6f90df Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll new file mode 100644 index 0000000..5356a08 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.Workspaces.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.Workspaces.dll new file mode 100644 index 0000000..7135704 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.Workspaces.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.dll new file mode 100644 index 0000000..f54bd93 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.CodeAnalysis.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.Data.SqlClient.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.Data.SqlClient.dll new file mode 100644 index 0000000..e355a91 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.Data.SqlClient.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Abstractions.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Abstractions.dll new file mode 100644 index 0000000..f457791 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Abstractions.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Design.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Design.dll new file mode 100644 index 0000000..8395269 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Design.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Relational.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Relational.dll new file mode 100644 index 0000000..a82e568 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.Relational.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.SqlServer.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.SqlServer.dll new file mode 100644 index 0000000..394a48c Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.SqlServer.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.dll new file mode 100644 index 0000000..3ccc5ec Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.EntityFrameworkCore.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.Extensions.DependencyModel.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.Extensions.DependencyModel.dll new file mode 100644 index 0000000..a8bf201 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.Extensions.DependencyModel.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.Identity.Client.Extensions.Msal.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.Identity.Client.Extensions.Msal.dll new file mode 100644 index 0000000..15201c7 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.Identity.Client.Extensions.Msal.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.Identity.Client.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.Identity.Client.dll new file mode 100644 index 0000000..aa7367f Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.Identity.Client.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Abstractions.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 0000000..f85ae59 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Abstractions.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.JsonWebTokens.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 0000000..4c4d3ab Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Logging.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..170078a Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Logging.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll new file mode 100644 index 0000000..9c70235 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Protocols.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Protocols.dll new file mode 100644 index 0000000..01432af Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Protocols.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Tokens.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 0000000..009ce65 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.IdentityModel.Tokens.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.OpenApi.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.OpenApi.dll new file mode 100644 index 0000000..58b6245 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.OpenApi.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.deps.json b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.deps.json new file mode 100644 index 0000000..c0e0bd0 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.deps.json @@ -0,0 +1,1290 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "dependencies": { + "AutoMapper": "16.1.1", + "Microsoft.AspNetCore.Authentication.Negotiate": "10.0.8", + "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "10.0.8", + "Microsoft.AspNetCore.OpenApi": "10.0.8", + "Microsoft.EntityFrameworkCore": "10.0.8", + "Microsoft.EntityFrameworkCore.Design": "10.0.8", + "Microsoft.EntityFrameworkCore.SqlServer": "10.0.8", + "Swashbuckle.AspNetCore": "10.1.7" + }, + "runtime": { + "Microsoft.SelfService.Portal.Core.API.dll": {} + } + }, + "AutoMapper/16.1.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0" + }, + "runtime": { + "lib/net10.0/AutoMapper.dll": { + "assemblyVersion": "16.0.0.0", + "fileVersion": "16.1.1.0" + } + } + }, + "Azure.Core/1.47.1": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "System.ClientModel": "1.5.1", + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/Azure.Core.dll": { + "assemblyVersion": "1.47.1.0", + "fileVersion": "1.4700.125.36505" + } + } + }, + "Azure.Identity/1.14.2": { + "dependencies": { + "Azure.Core": "1.47.1", + "Microsoft.Identity.Client": "4.73.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.73.1" + }, + "runtime": { + "lib/net8.0/Azure.Identity.dll": { + "assemblyVersion": "1.14.2.0", + "fileVersion": "1.1400.225.36004" + } + } + }, + "Humanizer.Core/2.14.1": { + "runtime": { + "lib/net6.0/Humanizer.dll": { + "assemblyVersion": "2.14.0.0", + "fileVersion": "2.14.1.48190" + } + } + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "dependencies": { + "System.DirectoryServices.Protocols": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Authentication.Negotiate.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.JsonPatch.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "dependencies": { + "Microsoft.AspNetCore.JsonPatch": "10.0.8", + "Newtonsoft.Json": "13.0.3", + "Newtonsoft.Json.Bson": "1.0.2" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.OpenApi.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "runtime": { + "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { + "assemblyVersion": "9.0.0.4", + "fileVersion": "9.0.425.16305" + } + } + }, + "Microsoft.Build.Framework/18.0.2": { + "runtime": { + "lib/net10.0/Microsoft.Build.Framework.dll": { + "assemblyVersion": "15.1.0.0", + "fileVersion": "18.0.2.52102" + } + } + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "5.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "Microsoft.VisualStudio.SolutionPersistence": "1.0.52", + "Newtonsoft.Json": "13.0.3", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + }, + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.Data.SqlClient/6.1.1": { + "dependencies": { + "Azure.Core": "1.47.1", + "Azure.Identity": "1.14.2", + "Microsoft.Bcl.Cryptography": "9.0.4", + "Microsoft.Data.SqlClient.SNI.runtime": "6.0.2", + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.7.1", + "Microsoft.SqlServer.Server": "1.0.0", + "System.Configuration.ConfigurationManager": "9.0.4" + }, + "runtime": { + "lib/net9.0/Microsoft.Data.SqlClient.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hant" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + }, + "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + } + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "runtimeTargets": { + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "6.2.0.0" + } + } + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.MSBuild": "5.0.0", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8", + "Microsoft.Extensions.DependencyModel": "10.0.8", + "Mono.TextTemplating": "3.0.0", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Design.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "dependencies": { + "Microsoft.Data.SqlClient": "6.1.1", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.SqlServer.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Identity.Client/4.73.1": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "dependencies": { + "Microsoft.Identity.Client": "4.73.1", + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.7.1", + "System.IdentityModel.Tokens.Jwt": "7.7.1" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.OpenApi/2.4.1": { + "runtime": { + "lib/net8.0/Microsoft.OpenApi.dll": { + "assemblyVersion": "2.4.1.0", + "fileVersion": "2.4.1.0" + } + } + }, + "Microsoft.SqlServer.Server/1.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "runtime": { + "lib/net8.0/Microsoft.VisualStudio.SolutionPersistence.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.52.6595" + } + } + }, + "Mono.TextTemplating/3.0.0": { + "dependencies": { + "System.CodeDom": "6.0.0" + }, + "runtime": { + "lib/net6.0/Mono.TextTemplating.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.1" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "Newtonsoft.Json.Bson/1.0.2": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.Bson.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.2.22727" + } + } + }, + "Swashbuckle.AspNetCore/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7" + } + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "System.ClientModel/1.5.1": { + "dependencies": { + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/System.ClientModel.dll": { + "assemblyVersion": "1.5.1.0", + "fileVersion": "1.500.125.36405" + } + } + }, + "System.CodeDom/6.0.0": { + "runtime": { + "lib/net6.0/System.CodeDom.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Convention": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0", + "System.Composition.TypedParts": "9.0.0" + } + }, + "System.Composition.AttributedModel/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Convention/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Convention.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Hosting/9.0.0": { + "dependencies": { + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Hosting.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Runtime/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.Runtime.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.TypedParts/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net9.0/System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + }, + "System.DirectoryServices.Protocols/10.0.8": { + "runtime": { + "lib/net10.0/System.DirectoryServices.Protocols.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "System.Memory.Data/8.0.1": { + "runtime": { + "lib/net8.0/System.Memory.Data.dll": { + "assemblyVersion": "8.0.0.1", + "fileVersion": "8.0.1024.46610" + } + } + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "runtime": { + "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + } + } + }, + "libraries": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AutoMapper/16.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VNEky8JA15ci+oIDRGHITOGOpV4dILsf8pnn24QhDl2urtqgJ2IXiS/V2EtGU17P/+f6OeFQPJETaZXV9QOIZg==", + "path": "automapper/16.1.1", + "hashPath": "automapper.16.1.1.nupkg.sha512" + }, + "Azure.Core/1.47.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oPcncSsDHuxB8SC522z47xbp2+ttkcKv2YZ90KXhRKN0YQd2+7l1UURT9EBzUNEXtkLZUOAB5xbByMTrYRh3yA==", + "path": "azure.core/1.47.1", + "hashPath": "azure.core.1.47.1.nupkg.sha512" + }, + "Azure.Identity/1.14.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YhNMwOTwT+I2wIcJKSdP0ADyB2aK+JaYWZxO8LSRDm5w77LFr0ykR9xmt2ZV5T1gaI7xU6iNFIh/yW1dAlpddQ==", + "path": "azure.identity/1.14.2", + "hashPath": "azure.identity.1.14.2.nupkg.sha512" + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "path": "humanizer.core/2.14.1", + "hashPath": "humanizer.core.2.14.1.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PkNdrRbU4togx1Eg3/0kcqpRLbtkfqhZ3aHudMQwbXnwcGJgxEgu65YLjqRD/tSp8szrH1XdefyyymTrfi0WPQ==", + "path": "microsoft.aspnetcore.authentication.negotiate/10.0.8", + "hashPath": "microsoft.aspnetcore.authentication.negotiate.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xGMQwR06DxQSpSUdYvUPLQkjcQUAXnFIUbNoafAcLvUXDnmKNEuddxKvrGoWDT7svt90wWet2Xve5uacO/pVtw==", + "path": "microsoft.aspnetcore.jsonpatch/10.0.8", + "hashPath": "microsoft.aspnetcore.jsonpatch.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LAZmDrEsExc11l7nyQ+efQHTKp4MOskAuPSgkW64LoxrJv2YnElc4IM1VGfIHNRspqVguO5TY5kz2YTRcNSHeQ==", + "path": "microsoft.aspnetcore.mvc.newtonsoftjson/10.0.8", + "hashPath": "microsoft.aspnetcore.mvc.newtonsoftjson.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cw24xHE2QaWwyEG9GQwFbjboyabub6Vd80DIItUGENzcQOa/BEnTrXsg2GADqWTmY/3ycqk9ToLGjgvF/VRlGA==", + "path": "microsoft.aspnetcore.openapi/10.0.8", + "hashPath": "microsoft.aspnetcore.openapi.10.0.8.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YgZYAWzyNuPVtPq6WNm0bqOWNjYaWgl5mBWTGZyNoXitYBUYSp6iUB9AwK0V1mo793qRJUXz2t6UZrWITZSvuQ==", + "path": "microsoft.bcl.cryptography/9.0.4", + "hashPath": "microsoft.bcl.cryptography.9.0.4.nupkg.sha512" + }, + "Microsoft.Build.Framework/18.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sOSb+0J4G/jCBW/YqmRuL0eOMXgfw1KQLdC9TkbvfA5xs7uNm+PBQXJCOzSJGXtZcZrtXozcwxPmUiRUbmd7FA==", + "path": "microsoft.build.framework/18.0.2", + "hashPath": "microsoft.build.framework.18.0.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZXRAdvH6GiDeHRyd3q/km8Z44RoM6FBWHd+gen/la81mVnAdHTEsEkO5J0TCNXBymAcx5UYKt5TvgKBhaLJEow==", + "path": "microsoft.codeanalysis.common/5.0.0", + "hashPath": "microsoft.codeanalysis.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DSyJ9bk+ATuDy7fp2Zt0mJStDVKbBoiz1DyfAwSa+k4H4IwykAUcV3URelw5b8/iVbfSaOwkwmPUZH6opZKCw==", + "path": "microsoft.codeanalysis.csharp/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Al/Q8B+yO8odSqGVpSvrShMFDvlQdIBU//F3E6Rb0YdiLSALE9wh/pvozPNnfmh5HDnvU+mkmSjpz4hQO++jaA==", + "path": "microsoft.codeanalysis.csharp.workspaces/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.workspaces.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZbUmIvT6lqTNKiv06Jl5wf0MTMi1vQ1oH7ou4CLcs2C/no/L7EhP3T8y3XXvn9VbqMcJaJnEsNA1jwYUMgc5jg==", + "path": "microsoft.codeanalysis.workspaces.common/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/G+LVoAGMz6Ae8nm+PGLxSw+F5RjYx/J7irbTO5uKAPw1bxHyQJLc/YOnpDxt+EpPtYxvC9wvBsg/kETZp1F9Q==", + "path": "microsoft.codeanalysis.workspaces.msbuild/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.msbuild.5.0.0.nupkg.sha512" + }, + "Microsoft.Data.SqlClient/6.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-syGQmIUPAYYHAHyTD8FCkTNThpQWvoA7crnIQRMfp8dyB5A2cWU3fQexlRTFkVmV7S0TjVmthi0LJEFVjHo8AQ==", + "path": "microsoft.data.sqlclient/6.1.1", + "hashPath": "microsoft.data.sqlclient.6.1.1.nupkg.sha512" + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f+pRODTWX7Y67jXO3T5S2dIPZ9qMJNySjlZT/TKmWVNWe19N8jcWmHaqHnnchaq3gxEKv1SWVY5EFzOD06l41w==", + "path": "microsoft.data.sqlclient.sni.runtime/6.0.2", + "hashPath": "microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EJx+fIBMgBlgD+ublKCn+GTOJkw3UqV7xOjYWBRVdUYyIm8UfvAsmSOPFiIInsWTHyMEYUJ9gCJY1jwX+6UB7w==", + "path": "microsoft.entityframeworkcore/10.0.8", + "hashPath": "microsoft.entityframeworkcore.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jbKDXWPZQhuPHygMnwzNOqxBADVcpRVytcKYZsA++QqhPkpF93Ta8o5mbJQGrARSjlkr9WtOaADV97EDMOZ7DA==", + "path": "microsoft.entityframeworkcore.abstractions/10.0.8", + "hashPath": "microsoft.entityframeworkcore.abstractions.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LlUUXdfqKFk7RlGExojVP8GI6hN9O21WjpxFnp5mLeGjd9iYdwywIgK9WOLvPM2hrknrRyHR/i43FQdw/oCrOw==", + "path": "microsoft.entityframeworkcore.design/10.0.8", + "hashPath": "microsoft.entityframeworkcore.design.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UU3diAD2wwZveye2rnrwaF/wvJ9tm5iL2fuY9TTap6/iGQK1OO29M1BzXZRlRPVH/dByt5w/pISBSFtyR7hTqw==", + "path": "microsoft.entityframeworkcore.relational/10.0.8", + "hashPath": "microsoft.entityframeworkcore.relational.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-A+FLIsTH9l5DG2iD6QW6Mfwlvr+BjWme/jJ2hvwmmENTr7lR1UWmgCtKCjDYcHxqdAD15bb4PgQnSzw12DV/pw==", + "path": "microsoft.entityframeworkcore.sqlserver/10.0.8", + "hashPath": "microsoft.entityframeworkcore.sqlserver.10.0.8.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vLyZVpxmduO2jx+76ggqnsA3m81kwMY3NkWciNTj5E+Nvqb0VihqCvQP89QsGONWp0AJwMZG+u9GzaCjDdFGNw==", + "path": "microsoft.extensions.dependencymodel/10.0.8", + "hashPath": "microsoft.extensions.dependencymodel.10.0.8.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NnDLS8QwYqO5ZZecL2oioi1LUqjh5Ewk4bMLzbgiXJbQmZhDLtKwLxL3DpGMlQAJ2G4KgEnvGPKa+OOgffeJbw==", + "path": "microsoft.identity.client/4.73.1", + "hashPath": "microsoft.identity.client.4.73.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xDztAiV2F0wI0W8FLKv5cbaBefyLD6JVaAsvgSN7bjWNCzGYzHbcOEIP5s4TJXUpQzMfUyBsFl1mC6Zmgpz0PQ==", + "path": "microsoft.identity.client.extensions.msal/4.73.1", + "hashPath": "microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", + "path": "microsoft.identitymodel.abstractions/8.14.0", + "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", + "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", + "path": "microsoft.identitymodel.logging/8.14.0", + "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h+fHHBGokepmCX+QZXJk4Ij8OApCb2n2ktoDkNX5CXteXsOxTHMNgjPGpAwdJMFvAL7TtGarUnk3o97NmBq2QQ==", + "path": "microsoft.identitymodel.protocols/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yT2Hdj8LpPbcT9C9KlLVxXl09C8zjFaVSaApdOwuecMuoV4s6Sof/mnTDz/+F/lILPIBvrWugR9CC7iRVZgbfQ==", + "path": "microsoft.identitymodel.protocols.openidconnect/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", + "path": "microsoft.identitymodel.tokens/8.14.0", + "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" + }, + "Microsoft.OpenApi/2.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw==", + "path": "microsoft.openapi/2.4.1", + "hashPath": "microsoft.openapi.2.4.1.nupkg.sha512" + }, + "Microsoft.SqlServer.Server/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug==", + "path": "microsoft.sqlserver.server/1.0.0", + "hashPath": "microsoft.sqlserver.server.1.0.0.nupkg.sha512" + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oNv2JtYXhpdJrX63nibx1JT3uCESOBQ1LAk7Dtz/sr0+laW0KRM6eKp4CZ3MHDR2siIkKsY8MmUkeP5DKkQQ5w==", + "path": "microsoft.visualstudio.solutionpersistence/1.0.52", + "hashPath": "microsoft.visualstudio.solutionpersistence.1.0.52.nupkg.sha512" + }, + "Mono.TextTemplating/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YqueG52R/Xej4VVbKuRIodjiAhV0HR/XVbLbNrJhCZnzjnSjgMJ/dCdV0akQQxavX6hp/LC6rqLGLcXeQYU7XA==", + "path": "mono.texttemplating/3.0.0", + "hashPath": "mono.texttemplating.3.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "Newtonsoft.Json.Bson/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QYFyxhaABwmq3p/21VrZNYvCg3DaEoN/wUuw5nmfAf0X3HLjgupwhkEWdgfb9nvGAUIv3osmZoD3kKl4jxEmYQ==", + "path": "newtonsoft.json.bson/1.0.2", + "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==", + "path": "swashbuckle.aspnetcore/10.1.7", + "hashPath": "swashbuckle.aspnetcore.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==", + "path": "swashbuckle.aspnetcore.swagger/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swagger.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==", + "path": "swashbuckle.aspnetcore.swaggergen/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggergen.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw==", + "path": "swashbuckle.aspnetcore.swaggerui/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggerui.10.1.7.nupkg.sha512" + }, + "System.ClientModel/1.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k2jKSO0X45IqhVOT9iQB4xralNN9foRQsRvXBTyRpAVxyzCJlG895T9qYrQWbcJ6OQXxOouJQ37x5nZH5XKK+A==", + "path": "system.clientmodel/1.5.1", + "hashPath": "system.clientmodel.1.5.1.nupkg.sha512" + }, + "System.CodeDom/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==", + "path": "system.codedom/6.0.0", + "hashPath": "system.codedom.6.0.0.nupkg.sha512" + }, + "System.Composition/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==", + "path": "system.composition/9.0.0", + "hashPath": "system.composition.9.0.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA==", + "path": "system.composition.attributedmodel/9.0.0", + "hashPath": "system.composition.attributedmodel.9.0.0.nupkg.sha512" + }, + "System.Composition.Convention/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==", + "path": "system.composition.convention/9.0.0", + "hashPath": "system.composition.convention.9.0.0.nupkg.sha512" + }, + "System.Composition.Hosting/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==", + "path": "system.composition.hosting/9.0.0", + "hashPath": "system.composition.hosting.9.0.0.nupkg.sha512" + }, + "System.Composition.Runtime/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA==", + "path": "system.composition.runtime/9.0.0", + "hashPath": "system.composition.runtime.9.0.0.nupkg.sha512" + }, + "System.Composition.TypedParts/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==", + "path": "system.composition.typedparts/9.0.0", + "hashPath": "system.composition.typedparts.9.0.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dvjqKp+2LpGid6phzrdrS/2mmEPxFl3jE1+L7614q4ZChKbLJCpHXg6sBILlCCED1t//EE+un/UdAetzIMpqnw==", + "path": "system.configuration.configurationmanager/9.0.4", + "hashPath": "system.configuration.configurationmanager.9.0.4.nupkg.sha512" + }, + "System.DirectoryServices.Protocols/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VmFO1CBCUvWu9cV2XQSeKXRW2Gn76oZmuhhOk7GPDIvzaPoy3lVWHFExFyKNNJlQbGySUbor1bqa1Fc8CJCF/A==", + "path": "system.directoryservices.protocols/10.0.8", + "hashPath": "system.directoryservices.protocols.10.0.8.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rQkO1YbAjLwnDJSMpRhRtrc6XwIcEOcUvoEcge+evurpzSZM3UNK+MZfD3sKyTlYsvknZ6eJjSBfnmXqwOsT9Q==", + "path": "system.identitymodel.tokens.jwt/7.7.1", + "hashPath": "system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512" + }, + "System.Memory.Data/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BVYuec3jV23EMRDeR7Dr1/qhx7369dZzJ9IWy2xylvb4YfXsrUxspWc4UWYid/tj4zZK58uGZqn2WQiaDMhmAg==", + "path": "system.memory.data/8.0.1", + "hashPath": "system.memory.data.8.0.1.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o94k2RKuAce3GeDMlUvIXlhVa1kWpJw95E6C9LwW0KlG0nj5+SgCiIxJ2Eroqb9sLtG1mEMbFttZIBZ13EJPvQ==", + "path": "system.security.cryptography.protecteddata/9.0.4", + "hashPath": "system.security.cryptography.protecteddata.9.0.4.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.dll new file mode 100644 index 0000000..0f1eb5e Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.exe b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.exe new file mode 100644 index 0000000..86ae051 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.exe differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.pdb b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.pdb new file mode 100644 index 0000000..09e4788 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.pdb differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json new file mode 100644 index 0000000..bf15a00 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json @@ -0,0 +1,20 @@ +{ + "runtimeOptions": { + "tfm": "net10.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "10.0.0" + }, + { + "name": "Microsoft.AspNetCore.App", + "version": "10.0.0" + } + ], + "configProperties": { + "System.GC.Server": true, + "System.Reflection.NullabilityInfoContext.IsSupported": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json new file mode 100644 index 0000000..5576e88 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json @@ -0,0 +1 @@ +{"Version":1,"ManifestType":"Build","Endpoints":[]} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.SqlServer.Server.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.SqlServer.Server.dll new file mode 100644 index 0000000..ddeaa86 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.SqlServer.Server.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Microsoft.VisualStudio.SolutionPersistence.dll b/bin/Debug/net10.0/buildcheck3/Microsoft.VisualStudio.SolutionPersistence.dll new file mode 100644 index 0000000..16a2843 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Microsoft.VisualStudio.SolutionPersistence.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Mono.TextTemplating.dll b/bin/Debug/net10.0/buildcheck3/Mono.TextTemplating.dll new file mode 100644 index 0000000..4a76511 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Mono.TextTemplating.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Newtonsoft.Json.Bson.dll b/bin/Debug/net10.0/buildcheck3/Newtonsoft.Json.Bson.dll new file mode 100644 index 0000000..e9b1dd2 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Newtonsoft.Json.Bson.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Newtonsoft.Json.dll b/bin/Debug/net10.0/buildcheck3/Newtonsoft.Json.dll new file mode 100644 index 0000000..d035c38 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Newtonsoft.Json.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.Swagger.dll b/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.Swagger.dll new file mode 100644 index 0000000..adc65c3 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.Swagger.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.SwaggerGen.dll b/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.SwaggerGen.dll new file mode 100644 index 0000000..7365f07 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.SwaggerGen.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.SwaggerUI.dll b/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.SwaggerUI.dll new file mode 100644 index 0000000..af2c3c2 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/Swashbuckle.AspNetCore.SwaggerUI.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.ClientModel.dll b/bin/Debug/net10.0/buildcheck3/System.ClientModel.dll new file mode 100644 index 0000000..0caead2 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.ClientModel.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.CodeDom.dll b/bin/Debug/net10.0/buildcheck3/System.CodeDom.dll new file mode 100644 index 0000000..54c82b6 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.CodeDom.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Composition.AttributedModel.dll b/bin/Debug/net10.0/buildcheck3/System.Composition.AttributedModel.dll new file mode 100644 index 0000000..2664688 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Composition.AttributedModel.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Composition.Convention.dll b/bin/Debug/net10.0/buildcheck3/System.Composition.Convention.dll new file mode 100644 index 0000000..40f6537 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Composition.Convention.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Composition.Hosting.dll b/bin/Debug/net10.0/buildcheck3/System.Composition.Hosting.dll new file mode 100644 index 0000000..b1cce85 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Composition.Hosting.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Composition.Runtime.dll b/bin/Debug/net10.0/buildcheck3/System.Composition.Runtime.dll new file mode 100644 index 0000000..c30bbbb Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Composition.Runtime.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Composition.TypedParts.dll b/bin/Debug/net10.0/buildcheck3/System.Composition.TypedParts.dll new file mode 100644 index 0000000..1556319 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Composition.TypedParts.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Configuration.ConfigurationManager.dll b/bin/Debug/net10.0/buildcheck3/System.Configuration.ConfigurationManager.dll new file mode 100644 index 0000000..505f649 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Configuration.ConfigurationManager.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.DirectoryServices.Protocols.dll b/bin/Debug/net10.0/buildcheck3/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..9eefb2d Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.DirectoryServices.Protocols.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.IdentityModel.Tokens.Jwt.dll b/bin/Debug/net10.0/buildcheck3/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..c2d8ecb Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Memory.Data.dll b/bin/Debug/net10.0/buildcheck3/System.Memory.Data.dll new file mode 100644 index 0000000..9282c37 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Memory.Data.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/System.Security.Cryptography.ProtectedData.dll b/bin/Debug/net10.0/buildcheck3/System.Security.Cryptography.ProtectedData.dll new file mode 100644 index 0000000..4151fc8 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/System.Security.Cryptography.ProtectedData.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/appsettings.Development.json b/bin/Debug/net10.0/buildcheck3/appsettings.Development.json new file mode 100644 index 0000000..cf398c2 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/appsettings.Development.json @@ -0,0 +1,5 @@ +{ + "ConnectionStrings": { + "Context": "Server=.;Database=SSP;TrustServerCertificate=True;Encrypt=False;Trusted_Connection=True" + } +} diff --git a/bin/Debug/net10.0/buildcheck3/appsettings.json b/bin/Debug/net10.0/buildcheck3/appsettings.json new file mode 100644 index 0000000..005b7be --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "Context": "Server=RZ1VCMSQL001\\MSSSP;Database=SSP;TrustServerCertificate=True;Encrypt=False;Integrated Security=SSPI" + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json b/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json new file mode 100644 index 0000000..c0e0bd0 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json @@ -0,0 +1,1290 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "dependencies": { + "AutoMapper": "16.1.1", + "Microsoft.AspNetCore.Authentication.Negotiate": "10.0.8", + "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "10.0.8", + "Microsoft.AspNetCore.OpenApi": "10.0.8", + "Microsoft.EntityFrameworkCore": "10.0.8", + "Microsoft.EntityFrameworkCore.Design": "10.0.8", + "Microsoft.EntityFrameworkCore.SqlServer": "10.0.8", + "Swashbuckle.AspNetCore": "10.1.7" + }, + "runtime": { + "Microsoft.SelfService.Portal.Core.API.dll": {} + } + }, + "AutoMapper/16.1.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0" + }, + "runtime": { + "lib/net10.0/AutoMapper.dll": { + "assemblyVersion": "16.0.0.0", + "fileVersion": "16.1.1.0" + } + } + }, + "Azure.Core/1.47.1": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "System.ClientModel": "1.5.1", + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/Azure.Core.dll": { + "assemblyVersion": "1.47.1.0", + "fileVersion": "1.4700.125.36505" + } + } + }, + "Azure.Identity/1.14.2": { + "dependencies": { + "Azure.Core": "1.47.1", + "Microsoft.Identity.Client": "4.73.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.73.1" + }, + "runtime": { + "lib/net8.0/Azure.Identity.dll": { + "assemblyVersion": "1.14.2.0", + "fileVersion": "1.1400.225.36004" + } + } + }, + "Humanizer.Core/2.14.1": { + "runtime": { + "lib/net6.0/Humanizer.dll": { + "assemblyVersion": "2.14.0.0", + "fileVersion": "2.14.1.48190" + } + } + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "dependencies": { + "System.DirectoryServices.Protocols": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Authentication.Negotiate.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.JsonPatch.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "dependencies": { + "Microsoft.AspNetCore.JsonPatch": "10.0.8", + "Newtonsoft.Json": "13.0.3", + "Newtonsoft.Json.Bson": "1.0.2" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.OpenApi.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "runtime": { + "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { + "assemblyVersion": "9.0.0.4", + "fileVersion": "9.0.425.16305" + } + } + }, + "Microsoft.Build.Framework/18.0.2": { + "runtime": { + "lib/net10.0/Microsoft.Build.Framework.dll": { + "assemblyVersion": "15.1.0.0", + "fileVersion": "18.0.2.52102" + } + } + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "5.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "Microsoft.VisualStudio.SolutionPersistence": "1.0.52", + "Newtonsoft.Json": "13.0.3", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + }, + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.Data.SqlClient/6.1.1": { + "dependencies": { + "Azure.Core": "1.47.1", + "Azure.Identity": "1.14.2", + "Microsoft.Bcl.Cryptography": "9.0.4", + "Microsoft.Data.SqlClient.SNI.runtime": "6.0.2", + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.7.1", + "Microsoft.SqlServer.Server": "1.0.0", + "System.Configuration.ConfigurationManager": "9.0.4" + }, + "runtime": { + "lib/net9.0/Microsoft.Data.SqlClient.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hant" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + }, + "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + } + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "runtimeTargets": { + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "6.2.0.0" + } + } + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.MSBuild": "5.0.0", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8", + "Microsoft.Extensions.DependencyModel": "10.0.8", + "Mono.TextTemplating": "3.0.0", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Design.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "dependencies": { + "Microsoft.Data.SqlClient": "6.1.1", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.SqlServer.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Identity.Client/4.73.1": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "dependencies": { + "Microsoft.Identity.Client": "4.73.1", + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.7.1", + "System.IdentityModel.Tokens.Jwt": "7.7.1" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.OpenApi/2.4.1": { + "runtime": { + "lib/net8.0/Microsoft.OpenApi.dll": { + "assemblyVersion": "2.4.1.0", + "fileVersion": "2.4.1.0" + } + } + }, + "Microsoft.SqlServer.Server/1.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "runtime": { + "lib/net8.0/Microsoft.VisualStudio.SolutionPersistence.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.52.6595" + } + } + }, + "Mono.TextTemplating/3.0.0": { + "dependencies": { + "System.CodeDom": "6.0.0" + }, + "runtime": { + "lib/net6.0/Mono.TextTemplating.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.1" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "Newtonsoft.Json.Bson/1.0.2": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.Bson.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.2.22727" + } + } + }, + "Swashbuckle.AspNetCore/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7" + } + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "System.ClientModel/1.5.1": { + "dependencies": { + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/System.ClientModel.dll": { + "assemblyVersion": "1.5.1.0", + "fileVersion": "1.500.125.36405" + } + } + }, + "System.CodeDom/6.0.0": { + "runtime": { + "lib/net6.0/System.CodeDom.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Convention": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0", + "System.Composition.TypedParts": "9.0.0" + } + }, + "System.Composition.AttributedModel/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Convention/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Convention.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Hosting/9.0.0": { + "dependencies": { + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Hosting.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Runtime/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.Runtime.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.TypedParts/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net9.0/System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + }, + "System.DirectoryServices.Protocols/10.0.8": { + "runtime": { + "lib/net10.0/System.DirectoryServices.Protocols.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "System.Memory.Data/8.0.1": { + "runtime": { + "lib/net8.0/System.Memory.Data.dll": { + "assemblyVersion": "8.0.0.1", + "fileVersion": "8.0.1024.46610" + } + } + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "runtime": { + "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + } + } + }, + "libraries": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AutoMapper/16.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VNEky8JA15ci+oIDRGHITOGOpV4dILsf8pnn24QhDl2urtqgJ2IXiS/V2EtGU17P/+f6OeFQPJETaZXV9QOIZg==", + "path": "automapper/16.1.1", + "hashPath": "automapper.16.1.1.nupkg.sha512" + }, + "Azure.Core/1.47.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oPcncSsDHuxB8SC522z47xbp2+ttkcKv2YZ90KXhRKN0YQd2+7l1UURT9EBzUNEXtkLZUOAB5xbByMTrYRh3yA==", + "path": "azure.core/1.47.1", + "hashPath": "azure.core.1.47.1.nupkg.sha512" + }, + "Azure.Identity/1.14.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YhNMwOTwT+I2wIcJKSdP0ADyB2aK+JaYWZxO8LSRDm5w77LFr0ykR9xmt2ZV5T1gaI7xU6iNFIh/yW1dAlpddQ==", + "path": "azure.identity/1.14.2", + "hashPath": "azure.identity.1.14.2.nupkg.sha512" + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "path": "humanizer.core/2.14.1", + "hashPath": "humanizer.core.2.14.1.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PkNdrRbU4togx1Eg3/0kcqpRLbtkfqhZ3aHudMQwbXnwcGJgxEgu65YLjqRD/tSp8szrH1XdefyyymTrfi0WPQ==", + "path": "microsoft.aspnetcore.authentication.negotiate/10.0.8", + "hashPath": "microsoft.aspnetcore.authentication.negotiate.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xGMQwR06DxQSpSUdYvUPLQkjcQUAXnFIUbNoafAcLvUXDnmKNEuddxKvrGoWDT7svt90wWet2Xve5uacO/pVtw==", + "path": "microsoft.aspnetcore.jsonpatch/10.0.8", + "hashPath": "microsoft.aspnetcore.jsonpatch.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LAZmDrEsExc11l7nyQ+efQHTKp4MOskAuPSgkW64LoxrJv2YnElc4IM1VGfIHNRspqVguO5TY5kz2YTRcNSHeQ==", + "path": "microsoft.aspnetcore.mvc.newtonsoftjson/10.0.8", + "hashPath": "microsoft.aspnetcore.mvc.newtonsoftjson.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cw24xHE2QaWwyEG9GQwFbjboyabub6Vd80DIItUGENzcQOa/BEnTrXsg2GADqWTmY/3ycqk9ToLGjgvF/VRlGA==", + "path": "microsoft.aspnetcore.openapi/10.0.8", + "hashPath": "microsoft.aspnetcore.openapi.10.0.8.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YgZYAWzyNuPVtPq6WNm0bqOWNjYaWgl5mBWTGZyNoXitYBUYSp6iUB9AwK0V1mo793qRJUXz2t6UZrWITZSvuQ==", + "path": "microsoft.bcl.cryptography/9.0.4", + "hashPath": "microsoft.bcl.cryptography.9.0.4.nupkg.sha512" + }, + "Microsoft.Build.Framework/18.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sOSb+0J4G/jCBW/YqmRuL0eOMXgfw1KQLdC9TkbvfA5xs7uNm+PBQXJCOzSJGXtZcZrtXozcwxPmUiRUbmd7FA==", + "path": "microsoft.build.framework/18.0.2", + "hashPath": "microsoft.build.framework.18.0.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZXRAdvH6GiDeHRyd3q/km8Z44RoM6FBWHd+gen/la81mVnAdHTEsEkO5J0TCNXBymAcx5UYKt5TvgKBhaLJEow==", + "path": "microsoft.codeanalysis.common/5.0.0", + "hashPath": "microsoft.codeanalysis.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DSyJ9bk+ATuDy7fp2Zt0mJStDVKbBoiz1DyfAwSa+k4H4IwykAUcV3URelw5b8/iVbfSaOwkwmPUZH6opZKCw==", + "path": "microsoft.codeanalysis.csharp/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Al/Q8B+yO8odSqGVpSvrShMFDvlQdIBU//F3E6Rb0YdiLSALE9wh/pvozPNnfmh5HDnvU+mkmSjpz4hQO++jaA==", + "path": "microsoft.codeanalysis.csharp.workspaces/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.workspaces.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZbUmIvT6lqTNKiv06Jl5wf0MTMi1vQ1oH7ou4CLcs2C/no/L7EhP3T8y3XXvn9VbqMcJaJnEsNA1jwYUMgc5jg==", + "path": "microsoft.codeanalysis.workspaces.common/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/G+LVoAGMz6Ae8nm+PGLxSw+F5RjYx/J7irbTO5uKAPw1bxHyQJLc/YOnpDxt+EpPtYxvC9wvBsg/kETZp1F9Q==", + "path": "microsoft.codeanalysis.workspaces.msbuild/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.msbuild.5.0.0.nupkg.sha512" + }, + "Microsoft.Data.SqlClient/6.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-syGQmIUPAYYHAHyTD8FCkTNThpQWvoA7crnIQRMfp8dyB5A2cWU3fQexlRTFkVmV7S0TjVmthi0LJEFVjHo8AQ==", + "path": "microsoft.data.sqlclient/6.1.1", + "hashPath": "microsoft.data.sqlclient.6.1.1.nupkg.sha512" + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f+pRODTWX7Y67jXO3T5S2dIPZ9qMJNySjlZT/TKmWVNWe19N8jcWmHaqHnnchaq3gxEKv1SWVY5EFzOD06l41w==", + "path": "microsoft.data.sqlclient.sni.runtime/6.0.2", + "hashPath": "microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EJx+fIBMgBlgD+ublKCn+GTOJkw3UqV7xOjYWBRVdUYyIm8UfvAsmSOPFiIInsWTHyMEYUJ9gCJY1jwX+6UB7w==", + "path": "microsoft.entityframeworkcore/10.0.8", + "hashPath": "microsoft.entityframeworkcore.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jbKDXWPZQhuPHygMnwzNOqxBADVcpRVytcKYZsA++QqhPkpF93Ta8o5mbJQGrARSjlkr9WtOaADV97EDMOZ7DA==", + "path": "microsoft.entityframeworkcore.abstractions/10.0.8", + "hashPath": "microsoft.entityframeworkcore.abstractions.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LlUUXdfqKFk7RlGExojVP8GI6hN9O21WjpxFnp5mLeGjd9iYdwywIgK9WOLvPM2hrknrRyHR/i43FQdw/oCrOw==", + "path": "microsoft.entityframeworkcore.design/10.0.8", + "hashPath": "microsoft.entityframeworkcore.design.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UU3diAD2wwZveye2rnrwaF/wvJ9tm5iL2fuY9TTap6/iGQK1OO29M1BzXZRlRPVH/dByt5w/pISBSFtyR7hTqw==", + "path": "microsoft.entityframeworkcore.relational/10.0.8", + "hashPath": "microsoft.entityframeworkcore.relational.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-A+FLIsTH9l5DG2iD6QW6Mfwlvr+BjWme/jJ2hvwmmENTr7lR1UWmgCtKCjDYcHxqdAD15bb4PgQnSzw12DV/pw==", + "path": "microsoft.entityframeworkcore.sqlserver/10.0.8", + "hashPath": "microsoft.entityframeworkcore.sqlserver.10.0.8.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vLyZVpxmduO2jx+76ggqnsA3m81kwMY3NkWciNTj5E+Nvqb0VihqCvQP89QsGONWp0AJwMZG+u9GzaCjDdFGNw==", + "path": "microsoft.extensions.dependencymodel/10.0.8", + "hashPath": "microsoft.extensions.dependencymodel.10.0.8.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NnDLS8QwYqO5ZZecL2oioi1LUqjh5Ewk4bMLzbgiXJbQmZhDLtKwLxL3DpGMlQAJ2G4KgEnvGPKa+OOgffeJbw==", + "path": "microsoft.identity.client/4.73.1", + "hashPath": "microsoft.identity.client.4.73.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xDztAiV2F0wI0W8FLKv5cbaBefyLD6JVaAsvgSN7bjWNCzGYzHbcOEIP5s4TJXUpQzMfUyBsFl1mC6Zmgpz0PQ==", + "path": "microsoft.identity.client.extensions.msal/4.73.1", + "hashPath": "microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", + "path": "microsoft.identitymodel.abstractions/8.14.0", + "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", + "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", + "path": "microsoft.identitymodel.logging/8.14.0", + "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h+fHHBGokepmCX+QZXJk4Ij8OApCb2n2ktoDkNX5CXteXsOxTHMNgjPGpAwdJMFvAL7TtGarUnk3o97NmBq2QQ==", + "path": "microsoft.identitymodel.protocols/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yT2Hdj8LpPbcT9C9KlLVxXl09C8zjFaVSaApdOwuecMuoV4s6Sof/mnTDz/+F/lILPIBvrWugR9CC7iRVZgbfQ==", + "path": "microsoft.identitymodel.protocols.openidconnect/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", + "path": "microsoft.identitymodel.tokens/8.14.0", + "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" + }, + "Microsoft.OpenApi/2.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw==", + "path": "microsoft.openapi/2.4.1", + "hashPath": "microsoft.openapi.2.4.1.nupkg.sha512" + }, + "Microsoft.SqlServer.Server/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug==", + "path": "microsoft.sqlserver.server/1.0.0", + "hashPath": "microsoft.sqlserver.server.1.0.0.nupkg.sha512" + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oNv2JtYXhpdJrX63nibx1JT3uCESOBQ1LAk7Dtz/sr0+laW0KRM6eKp4CZ3MHDR2siIkKsY8MmUkeP5DKkQQ5w==", + "path": "microsoft.visualstudio.solutionpersistence/1.0.52", + "hashPath": "microsoft.visualstudio.solutionpersistence.1.0.52.nupkg.sha512" + }, + "Mono.TextTemplating/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YqueG52R/Xej4VVbKuRIodjiAhV0HR/XVbLbNrJhCZnzjnSjgMJ/dCdV0akQQxavX6hp/LC6rqLGLcXeQYU7XA==", + "path": "mono.texttemplating/3.0.0", + "hashPath": "mono.texttemplating.3.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "Newtonsoft.Json.Bson/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QYFyxhaABwmq3p/21VrZNYvCg3DaEoN/wUuw5nmfAf0X3HLjgupwhkEWdgfb9nvGAUIv3osmZoD3kKl4jxEmYQ==", + "path": "newtonsoft.json.bson/1.0.2", + "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==", + "path": "swashbuckle.aspnetcore/10.1.7", + "hashPath": "swashbuckle.aspnetcore.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==", + "path": "swashbuckle.aspnetcore.swagger/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swagger.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==", + "path": "swashbuckle.aspnetcore.swaggergen/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggergen.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw==", + "path": "swashbuckle.aspnetcore.swaggerui/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggerui.10.1.7.nupkg.sha512" + }, + "System.ClientModel/1.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k2jKSO0X45IqhVOT9iQB4xralNN9foRQsRvXBTyRpAVxyzCJlG895T9qYrQWbcJ6OQXxOouJQ37x5nZH5XKK+A==", + "path": "system.clientmodel/1.5.1", + "hashPath": "system.clientmodel.1.5.1.nupkg.sha512" + }, + "System.CodeDom/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==", + "path": "system.codedom/6.0.0", + "hashPath": "system.codedom.6.0.0.nupkg.sha512" + }, + "System.Composition/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==", + "path": "system.composition/9.0.0", + "hashPath": "system.composition.9.0.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA==", + "path": "system.composition.attributedmodel/9.0.0", + "hashPath": "system.composition.attributedmodel.9.0.0.nupkg.sha512" + }, + "System.Composition.Convention/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==", + "path": "system.composition.convention/9.0.0", + "hashPath": "system.composition.convention.9.0.0.nupkg.sha512" + }, + "System.Composition.Hosting/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==", + "path": "system.composition.hosting/9.0.0", + "hashPath": "system.composition.hosting.9.0.0.nupkg.sha512" + }, + "System.Composition.Runtime/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA==", + "path": "system.composition.runtime/9.0.0", + "hashPath": "system.composition.runtime.9.0.0.nupkg.sha512" + }, + "System.Composition.TypedParts/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==", + "path": "system.composition.typedparts/9.0.0", + "hashPath": "system.composition.typedparts.9.0.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dvjqKp+2LpGid6phzrdrS/2mmEPxFl3jE1+L7614q4ZChKbLJCpHXg6sBILlCCED1t//EE+un/UdAetzIMpqnw==", + "path": "system.configuration.configurationmanager/9.0.4", + "hashPath": "system.configuration.configurationmanager.9.0.4.nupkg.sha512" + }, + "System.DirectoryServices.Protocols/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VmFO1CBCUvWu9cV2XQSeKXRW2Gn76oZmuhhOk7GPDIvzaPoy3lVWHFExFyKNNJlQbGySUbor1bqa1Fc8CJCF/A==", + "path": "system.directoryservices.protocols/10.0.8", + "hashPath": "system.directoryservices.protocols.10.0.8.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rQkO1YbAjLwnDJSMpRhRtrc6XwIcEOcUvoEcge+evurpzSZM3UNK+MZfD3sKyTlYsvknZ6eJjSBfnmXqwOsT9Q==", + "path": "system.identitymodel.tokens.jwt/7.7.1", + "hashPath": "system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512" + }, + "System.Memory.Data/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BVYuec3jV23EMRDeR7Dr1/qhx7369dZzJ9IWy2xylvb4YfXsrUxspWc4UWYid/tj4zZK58uGZqn2WQiaDMhmAg==", + "path": "system.memory.data/8.0.1", + "hashPath": "system.memory.data.8.0.1.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o94k2RKuAce3GeDMlUvIXlhVa1kWpJw95E6C9LwW0KlG0nj5+SgCiIxJ2Eroqb9sLtG1mEMbFttZIBZ13EJPvQ==", + "path": "system.security.cryptography.protecteddata/9.0.4", + "hashPath": "system.security.cryptography.protecteddata.9.0.4.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json b/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json new file mode 100644 index 0000000..bf15a00 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json @@ -0,0 +1,20 @@ +{ + "runtimeOptions": { + "tfm": "net10.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "10.0.0" + }, + { + "name": "Microsoft.AspNetCore.App", + "version": "10.0.0" + } + ], + "configProperties": { + "System.GC.Server": true, + "System.Reflection.NullabilityInfoContext.IsSupported": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json b/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json new file mode 100644 index 0000000..5576e88 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json @@ -0,0 +1 @@ +{"Version":1,"ManifestType":"Build","Endpoints":[]} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/buildcheck/appsettings.Development.json b/bin/Debug/net10.0/buildcheck3/buildcheck/appsettings.Development.json new file mode 100644 index 0000000..cf398c2 --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/buildcheck/appsettings.Development.json @@ -0,0 +1,5 @@ +{ + "ConnectionStrings": { + "Context": "Server=.;Database=SSP;TrustServerCertificate=True;Encrypt=False;Trusted_Connection=True" + } +} diff --git a/bin/Debug/net10.0/buildcheck3/buildcheck/appsettings.json b/bin/Debug/net10.0/buildcheck3/buildcheck/appsettings.json new file mode 100644 index 0000000..005b7be --- /dev/null +++ b/bin/Debug/net10.0/buildcheck3/buildcheck/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "Context": "Server=RZ1VCMSQL001\\MSSSP;Database=SSP;TrustServerCertificate=True;Encrypt=False;Integrated Security=SSPI" + } +} \ No newline at end of file diff --git a/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..fa3b62e Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..de0032e Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..52ddf61 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..9c9e5c3 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..fe7a8c8 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/cs/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..0b81da6 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/cs/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..3a2887c Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..3bef0e7 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..19c9b77 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..5e1cc23 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..71227fc Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/de/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/de/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/de/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..76ca46d Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/de/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..3a50733 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..7b14221 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..59c80c7 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..de991ad Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..ffe4e81 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/es/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/es/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/es/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..e340c59 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/es/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..4eb6122 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..35b8d36 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..44e0af4 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..ae46f62 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..2870de8 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/fr/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..85be381 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/fr/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..31d7841 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..4f5ea19 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..f29a9ee Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..c62df50 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..738856c Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/it/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/it/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/it/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..4297c71 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/it/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..118b9b8 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..8d5c43a Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..0a04bbf Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..c88dd66 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..7400f4a Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ja/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..613a787 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ja/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..036e931 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..7305396 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..7735e46 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..adead79 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..9f8ffe3 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ko/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..c98361b Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ko/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..e318959 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..89c6efc Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..62dda99 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..82b3fa2 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..9db06d4 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pl/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..20086f0 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pl/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..8be5aa7 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..a263248 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..04f70a6 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..3a16748 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..8b9f7ce Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..5b4bd1b Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/pt-BR/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..bd7b2a2 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..6feb49f Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..0b35a9d Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..413ac6a Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..b5e3f64 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/ru/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..67159aa Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/ru/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll b/bin/Debug/net10.0/buildcheck3/runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..09206c0 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll b/bin/Debug/net10.0/buildcheck3/runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..7aaf95e Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll b/bin/Debug/net10.0/buildcheck3/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll new file mode 100644 index 0000000..0baeb08 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll b/bin/Debug/net10.0/buildcheck3/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll new file mode 100644 index 0000000..ce09630 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll b/bin/Debug/net10.0/buildcheck3/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll new file mode 100644 index 0000000..a0083b1 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll b/bin/Debug/net10.0/buildcheck3/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll new file mode 100644 index 0000000..36a2409 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll b/bin/Debug/net10.0/buildcheck3/runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..63ab7ba Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll b/bin/Debug/net10.0/buildcheck3/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll new file mode 100644 index 0000000..f983fa9 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..c219a07 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..6697523 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..79301b0 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..28739df Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..e5f35c2 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/tr/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..1111f9a Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/tr/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..215fe77 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..53d30cc Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..62e7fc1 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..c1b4544 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..712df48 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..7eeebbc Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hans/Microsoft.Data.SqlClient.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..d96f8c8 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..23c31b7 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..65f24ab Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..7d3ed5d Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..14fee21 Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.CodeAnalysis.resources.dll differ diff --git a/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.Data.SqlClient.resources.dll b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..c1aa37b Binary files /dev/null and b/bin/Debug/net10.0/buildcheck3/zh-Hant/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/AutoMapper.dll b/buildcheck/AutoMapper.dll new file mode 100644 index 0000000..e031ec9 Binary files /dev/null and b/buildcheck/AutoMapper.dll differ diff --git a/buildcheck/Azure.Core.dll b/buildcheck/Azure.Core.dll new file mode 100644 index 0000000..8883ec9 Binary files /dev/null and b/buildcheck/Azure.Core.dll differ diff --git a/buildcheck/Azure.Identity.dll b/buildcheck/Azure.Identity.dll new file mode 100644 index 0000000..ea19200 Binary files /dev/null and b/buildcheck/Azure.Identity.dll differ diff --git a/buildcheck/Humanizer.dll b/buildcheck/Humanizer.dll new file mode 100644 index 0000000..c9a7ef8 Binary files /dev/null and b/buildcheck/Humanizer.dll differ diff --git a/buildcheck/Microsoft.AspNetCore.Authentication.Negotiate.dll b/buildcheck/Microsoft.AspNetCore.Authentication.Negotiate.dll new file mode 100644 index 0000000..3c68db6 Binary files /dev/null and b/buildcheck/Microsoft.AspNetCore.Authentication.Negotiate.dll differ diff --git a/buildcheck/Microsoft.AspNetCore.JsonPatch.dll b/buildcheck/Microsoft.AspNetCore.JsonPatch.dll new file mode 100644 index 0000000..a9c3e6a Binary files /dev/null and b/buildcheck/Microsoft.AspNetCore.JsonPatch.dll differ diff --git a/buildcheck/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll b/buildcheck/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll new file mode 100644 index 0000000..ff5873c Binary files /dev/null and b/buildcheck/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll differ diff --git a/buildcheck/Microsoft.AspNetCore.OpenApi.dll b/buildcheck/Microsoft.AspNetCore.OpenApi.dll new file mode 100644 index 0000000..b0a2772 Binary files /dev/null and b/buildcheck/Microsoft.AspNetCore.OpenApi.dll differ diff --git a/buildcheck/Microsoft.Bcl.AsyncInterfaces.dll b/buildcheck/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 0000000..421e812 Binary files /dev/null and b/buildcheck/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/buildcheck/Microsoft.Bcl.Cryptography.dll b/buildcheck/Microsoft.Bcl.Cryptography.dll new file mode 100644 index 0000000..e0a506a Binary files /dev/null and b/buildcheck/Microsoft.Bcl.Cryptography.dll differ diff --git a/buildcheck/Microsoft.Build.Framework.dll b/buildcheck/Microsoft.Build.Framework.dll new file mode 100644 index 0000000..a1a97aa Binary files /dev/null and b/buildcheck/Microsoft.Build.Framework.dll differ diff --git a/buildcheck/Microsoft.CodeAnalysis.CSharp.Workspaces.dll b/buildcheck/Microsoft.CodeAnalysis.CSharp.Workspaces.dll new file mode 100644 index 0000000..ab1265c Binary files /dev/null and b/buildcheck/Microsoft.CodeAnalysis.CSharp.Workspaces.dll differ diff --git a/buildcheck/Microsoft.CodeAnalysis.CSharp.dll b/buildcheck/Microsoft.CodeAnalysis.CSharp.dll new file mode 100644 index 0000000..dc1f35d Binary files /dev/null and b/buildcheck/Microsoft.CodeAnalysis.CSharp.dll differ diff --git a/buildcheck/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll b/buildcheck/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll new file mode 100644 index 0000000..e6f90df Binary files /dev/null and b/buildcheck/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll differ diff --git a/buildcheck/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll b/buildcheck/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll new file mode 100644 index 0000000..5356a08 Binary files /dev/null and b/buildcheck/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll differ diff --git a/buildcheck/Microsoft.CodeAnalysis.Workspaces.dll b/buildcheck/Microsoft.CodeAnalysis.Workspaces.dll new file mode 100644 index 0000000..7135704 Binary files /dev/null and b/buildcheck/Microsoft.CodeAnalysis.Workspaces.dll differ diff --git a/buildcheck/Microsoft.CodeAnalysis.dll b/buildcheck/Microsoft.CodeAnalysis.dll new file mode 100644 index 0000000..f54bd93 Binary files /dev/null and b/buildcheck/Microsoft.CodeAnalysis.dll differ diff --git a/buildcheck/Microsoft.Data.SqlClient.dll b/buildcheck/Microsoft.Data.SqlClient.dll new file mode 100644 index 0000000..e355a91 Binary files /dev/null and b/buildcheck/Microsoft.Data.SqlClient.dll differ diff --git a/buildcheck/Microsoft.EntityFrameworkCore.Abstractions.dll b/buildcheck/Microsoft.EntityFrameworkCore.Abstractions.dll new file mode 100644 index 0000000..f457791 Binary files /dev/null and b/buildcheck/Microsoft.EntityFrameworkCore.Abstractions.dll differ diff --git a/buildcheck/Microsoft.EntityFrameworkCore.Design.dll b/buildcheck/Microsoft.EntityFrameworkCore.Design.dll new file mode 100644 index 0000000..8395269 Binary files /dev/null and b/buildcheck/Microsoft.EntityFrameworkCore.Design.dll differ diff --git a/buildcheck/Microsoft.EntityFrameworkCore.Relational.dll b/buildcheck/Microsoft.EntityFrameworkCore.Relational.dll new file mode 100644 index 0000000..a82e568 Binary files /dev/null and b/buildcheck/Microsoft.EntityFrameworkCore.Relational.dll differ diff --git a/buildcheck/Microsoft.EntityFrameworkCore.SqlServer.dll b/buildcheck/Microsoft.EntityFrameworkCore.SqlServer.dll new file mode 100644 index 0000000..394a48c Binary files /dev/null and b/buildcheck/Microsoft.EntityFrameworkCore.SqlServer.dll differ diff --git a/buildcheck/Microsoft.EntityFrameworkCore.dll b/buildcheck/Microsoft.EntityFrameworkCore.dll new file mode 100644 index 0000000..3ccc5ec Binary files /dev/null and b/buildcheck/Microsoft.EntityFrameworkCore.dll differ diff --git a/buildcheck/Microsoft.Extensions.DependencyModel.dll b/buildcheck/Microsoft.Extensions.DependencyModel.dll new file mode 100644 index 0000000..a8bf201 Binary files /dev/null and b/buildcheck/Microsoft.Extensions.DependencyModel.dll differ diff --git a/buildcheck/Microsoft.Identity.Client.Extensions.Msal.dll b/buildcheck/Microsoft.Identity.Client.Extensions.Msal.dll new file mode 100644 index 0000000..15201c7 Binary files /dev/null and b/buildcheck/Microsoft.Identity.Client.Extensions.Msal.dll differ diff --git a/buildcheck/Microsoft.Identity.Client.dll b/buildcheck/Microsoft.Identity.Client.dll new file mode 100644 index 0000000..aa7367f Binary files /dev/null and b/buildcheck/Microsoft.Identity.Client.dll differ diff --git a/buildcheck/Microsoft.IdentityModel.Abstractions.dll b/buildcheck/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 0000000..f85ae59 Binary files /dev/null and b/buildcheck/Microsoft.IdentityModel.Abstractions.dll differ diff --git a/buildcheck/Microsoft.IdentityModel.JsonWebTokens.dll b/buildcheck/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 0000000..4c4d3ab Binary files /dev/null and b/buildcheck/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/buildcheck/Microsoft.IdentityModel.Logging.dll b/buildcheck/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 0000000..170078a Binary files /dev/null and b/buildcheck/Microsoft.IdentityModel.Logging.dll differ diff --git a/buildcheck/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll b/buildcheck/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll new file mode 100644 index 0000000..9c70235 Binary files /dev/null and b/buildcheck/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll differ diff --git a/buildcheck/Microsoft.IdentityModel.Protocols.dll b/buildcheck/Microsoft.IdentityModel.Protocols.dll new file mode 100644 index 0000000..01432af Binary files /dev/null and b/buildcheck/Microsoft.IdentityModel.Protocols.dll differ diff --git a/buildcheck/Microsoft.IdentityModel.Tokens.dll b/buildcheck/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 0000000..009ce65 Binary files /dev/null and b/buildcheck/Microsoft.IdentityModel.Tokens.dll differ diff --git a/buildcheck/Microsoft.OpenApi.dll b/buildcheck/Microsoft.OpenApi.dll new file mode 100644 index 0000000..58b6245 Binary files /dev/null and b/buildcheck/Microsoft.OpenApi.dll differ diff --git a/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json b/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json new file mode 100644 index 0000000..c0e0bd0 --- /dev/null +++ b/buildcheck/Microsoft.SelfService.Portal.Core.API.deps.json @@ -0,0 +1,1290 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "dependencies": { + "AutoMapper": "16.1.1", + "Microsoft.AspNetCore.Authentication.Negotiate": "10.0.8", + "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "10.0.8", + "Microsoft.AspNetCore.OpenApi": "10.0.8", + "Microsoft.EntityFrameworkCore": "10.0.8", + "Microsoft.EntityFrameworkCore.Design": "10.0.8", + "Microsoft.EntityFrameworkCore.SqlServer": "10.0.8", + "Swashbuckle.AspNetCore": "10.1.7" + }, + "runtime": { + "Microsoft.SelfService.Portal.Core.API.dll": {} + } + }, + "AutoMapper/16.1.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0" + }, + "runtime": { + "lib/net10.0/AutoMapper.dll": { + "assemblyVersion": "16.0.0.0", + "fileVersion": "16.1.1.0" + } + } + }, + "Azure.Core/1.47.1": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "System.ClientModel": "1.5.1", + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/Azure.Core.dll": { + "assemblyVersion": "1.47.1.0", + "fileVersion": "1.4700.125.36505" + } + } + }, + "Azure.Identity/1.14.2": { + "dependencies": { + "Azure.Core": "1.47.1", + "Microsoft.Identity.Client": "4.73.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.73.1" + }, + "runtime": { + "lib/net8.0/Azure.Identity.dll": { + "assemblyVersion": "1.14.2.0", + "fileVersion": "1.1400.225.36004" + } + } + }, + "Humanizer.Core/2.14.1": { + "runtime": { + "lib/net6.0/Humanizer.dll": { + "assemblyVersion": "2.14.0.0", + "fileVersion": "2.14.1.48190" + } + } + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "dependencies": { + "System.DirectoryServices.Protocols": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Authentication.Negotiate.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.JsonPatch.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "dependencies": { + "Microsoft.AspNetCore.JsonPatch": "10.0.8", + "Newtonsoft.Json": "13.0.3", + "Newtonsoft.Json.Bson": "1.0.2" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Microsoft.AspNetCore.OpenApi.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "runtime": { + "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { + "assemblyVersion": "9.0.0.4", + "fileVersion": "9.0.425.16305" + } + } + }, + "Microsoft.Build.Framework/18.0.2": { + "runtime": { + "lib/net10.0/Microsoft.Build.Framework.dll": { + "assemblyVersion": "15.1.0.0", + "fileVersion": "18.0.2.52102" + } + } + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "5.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0", + "Microsoft.VisualStudio.SolutionPersistence": "1.0.52", + "Newtonsoft.Json": "13.0.3", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + }, + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.25.56712" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.Data.SqlClient/6.1.1": { + "dependencies": { + "Azure.Core": "1.47.1", + "Azure.Identity": "1.14.2", + "Microsoft.Bcl.Cryptography": "9.0.4", + "Microsoft.Data.SqlClient.SNI.runtime": "6.0.2", + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.7.1", + "Microsoft.SqlServer.Server": "1.0.0", + "System.Configuration.ConfigurationManager": "9.0.4" + }, + "runtime": { + "lib/net9.0/Microsoft.Data.SqlClient.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hant" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + }, + "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.11.25226.3" + } + } + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "runtimeTargets": { + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "6.2.0.0" + }, + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "6.2.0.0" + } + } + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Build.Framework": "18.0.2", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "5.0.0", + "Microsoft.CodeAnalysis.Workspaces.MSBuild": "5.0.0", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8", + "Microsoft.Extensions.DependencyModel": "10.0.8", + "Mono.TextTemplating": "3.0.0", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Design.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "dependencies": { + "Microsoft.Data.SqlClient": "6.1.1", + "Microsoft.EntityFrameworkCore.Relational": "10.0.8" + }, + "runtime": { + "lib/net10.0/Microsoft.EntityFrameworkCore.SqlServer.dll": { + "assemblyVersion": "10.0.8.0", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "runtime": { + "lib/net10.0/Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "Microsoft.Identity.Client/4.73.1": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "dependencies": { + "Microsoft.Identity.Client": "4.73.1", + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "4.73.1.0", + "fileVersion": "4.73.1.0" + } + } + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.7.1", + "System.IdentityModel.Tokens.Jwt": "7.7.1" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.OpenApi/2.4.1": { + "runtime": { + "lib/net8.0/Microsoft.OpenApi.dll": { + "assemblyVersion": "2.4.1.0", + "fileVersion": "2.4.1.0" + } + } + }, + "Microsoft.SqlServer.Server/1.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "runtime": { + "lib/net8.0/Microsoft.VisualStudio.SolutionPersistence.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.52.6595" + } + } + }, + "Mono.TextTemplating/3.0.0": { + "dependencies": { + "System.CodeDom": "6.0.0" + }, + "runtime": { + "lib/net6.0/Mono.TextTemplating.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.1" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "Newtonsoft.Json.Bson/1.0.2": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.Bson.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.2.22727" + } + } + }, + "Swashbuckle.AspNetCore/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7", + "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7" + } + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "dependencies": { + "Microsoft.OpenApi": "2.4.1" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "10.1.7" + }, + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "runtime": { + "lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "assemblyVersion": "10.1.7.0", + "fileVersion": "10.1.7.2427" + } + } + }, + "System.ClientModel/1.5.1": { + "dependencies": { + "System.Memory.Data": "8.0.1" + }, + "runtime": { + "lib/net8.0/System.ClientModel.dll": { + "assemblyVersion": "1.5.1.0", + "fileVersion": "1.500.125.36405" + } + } + }, + "System.CodeDom/6.0.0": { + "runtime": { + "lib/net6.0/System.CodeDom.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Convention": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0", + "System.Composition.TypedParts": "9.0.0" + } + }, + "System.Composition.AttributedModel/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Convention/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Convention.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Hosting/9.0.0": { + "dependencies": { + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Hosting.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Runtime/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.Runtime.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.TypedParts/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "9.0.4" + }, + "runtime": { + "lib/net9.0/System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + }, + "System.DirectoryServices.Protocols/10.0.8": { + "runtime": { + "lib/net10.0/System.DirectoryServices.Protocols.dll": { + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + }, + "runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "10.0.0.8", + "fileVersion": "10.0.826.23019" + } + } + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "7.7.1.0", + "fileVersion": "7.7.1.50719" + } + } + }, + "System.Memory.Data/8.0.1": { + "runtime": { + "lib/net8.0/System.Memory.Data.dll": { + "assemblyVersion": "8.0.0.1", + "fileVersion": "8.0.1024.46610" + } + } + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "runtime": { + "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.425.16305" + } + } + } + } + }, + "libraries": { + "Microsoft.SelfService.Portal.Core.API/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AutoMapper/16.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VNEky8JA15ci+oIDRGHITOGOpV4dILsf8pnn24QhDl2urtqgJ2IXiS/V2EtGU17P/+f6OeFQPJETaZXV9QOIZg==", + "path": "automapper/16.1.1", + "hashPath": "automapper.16.1.1.nupkg.sha512" + }, + "Azure.Core/1.47.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oPcncSsDHuxB8SC522z47xbp2+ttkcKv2YZ90KXhRKN0YQd2+7l1UURT9EBzUNEXtkLZUOAB5xbByMTrYRh3yA==", + "path": "azure.core/1.47.1", + "hashPath": "azure.core.1.47.1.nupkg.sha512" + }, + "Azure.Identity/1.14.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YhNMwOTwT+I2wIcJKSdP0ADyB2aK+JaYWZxO8LSRDm5w77LFr0ykR9xmt2ZV5T1gaI7xU6iNFIh/yW1dAlpddQ==", + "path": "azure.identity/1.14.2", + "hashPath": "azure.identity.1.14.2.nupkg.sha512" + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "path": "humanizer.core/2.14.1", + "hashPath": "humanizer.core.2.14.1.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.Negotiate/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PkNdrRbU4togx1Eg3/0kcqpRLbtkfqhZ3aHudMQwbXnwcGJgxEgu65YLjqRD/tSp8szrH1XdefyyymTrfi0WPQ==", + "path": "microsoft.aspnetcore.authentication.negotiate/10.0.8", + "hashPath": "microsoft.aspnetcore.authentication.negotiate.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.JsonPatch/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xGMQwR06DxQSpSUdYvUPLQkjcQUAXnFIUbNoafAcLvUXDnmKNEuddxKvrGoWDT7svt90wWet2Xve5uacO/pVtw==", + "path": "microsoft.aspnetcore.jsonpatch/10.0.8", + "hashPath": "microsoft.aspnetcore.jsonpatch.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.Mvc.NewtonsoftJson/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LAZmDrEsExc11l7nyQ+efQHTKp4MOskAuPSgkW64LoxrJv2YnElc4IM1VGfIHNRspqVguO5TY5kz2YTRcNSHeQ==", + "path": "microsoft.aspnetcore.mvc.newtonsoftjson/10.0.8", + "hashPath": "microsoft.aspnetcore.mvc.newtonsoftjson.10.0.8.nupkg.sha512" + }, + "Microsoft.AspNetCore.OpenApi/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cw24xHE2QaWwyEG9GQwFbjboyabub6Vd80DIItUGENzcQOa/BEnTrXsg2GADqWTmY/3ycqk9ToLGjgvF/VRlGA==", + "path": "microsoft.aspnetcore.openapi/10.0.8", + "hashPath": "microsoft.aspnetcore.openapi.10.0.8.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YgZYAWzyNuPVtPq6WNm0bqOWNjYaWgl5mBWTGZyNoXitYBUYSp6iUB9AwK0V1mo793qRJUXz2t6UZrWITZSvuQ==", + "path": "microsoft.bcl.cryptography/9.0.4", + "hashPath": "microsoft.bcl.cryptography.9.0.4.nupkg.sha512" + }, + "Microsoft.Build.Framework/18.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sOSb+0J4G/jCBW/YqmRuL0eOMXgfw1KQLdC9TkbvfA5xs7uNm+PBQXJCOzSJGXtZcZrtXozcwxPmUiRUbmd7FA==", + "path": "microsoft.build.framework/18.0.2", + "hashPath": "microsoft.build.framework.18.0.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZXRAdvH6GiDeHRyd3q/km8Z44RoM6FBWHd+gen/la81mVnAdHTEsEkO5J0TCNXBymAcx5UYKt5TvgKBhaLJEow==", + "path": "microsoft.codeanalysis.common/5.0.0", + "hashPath": "microsoft.codeanalysis.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DSyJ9bk+ATuDy7fp2Zt0mJStDVKbBoiz1DyfAwSa+k4H4IwykAUcV3URelw5b8/iVbfSaOwkwmPUZH6opZKCw==", + "path": "microsoft.codeanalysis.csharp/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Al/Q8B+yO8odSqGVpSvrShMFDvlQdIBU//F3E6Rb0YdiLSALE9wh/pvozPNnfmh5HDnvU+mkmSjpz4hQO++jaA==", + "path": "microsoft.codeanalysis.csharp.workspaces/5.0.0", + "hashPath": "microsoft.codeanalysis.csharp.workspaces.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZbUmIvT6lqTNKiv06Jl5wf0MTMi1vQ1oH7ou4CLcs2C/no/L7EhP3T8y3XXvn9VbqMcJaJnEsNA1jwYUMgc5jg==", + "path": "microsoft.codeanalysis.workspaces.common/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.common.5.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/G+LVoAGMz6Ae8nm+PGLxSw+F5RjYx/J7irbTO5uKAPw1bxHyQJLc/YOnpDxt+EpPtYxvC9wvBsg/kETZp1F9Q==", + "path": "microsoft.codeanalysis.workspaces.msbuild/5.0.0", + "hashPath": "microsoft.codeanalysis.workspaces.msbuild.5.0.0.nupkg.sha512" + }, + "Microsoft.Data.SqlClient/6.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-syGQmIUPAYYHAHyTD8FCkTNThpQWvoA7crnIQRMfp8dyB5A2cWU3fQexlRTFkVmV7S0TjVmthi0LJEFVjHo8AQ==", + "path": "microsoft.data.sqlclient/6.1.1", + "hashPath": "microsoft.data.sqlclient.6.1.1.nupkg.sha512" + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f+pRODTWX7Y67jXO3T5S2dIPZ9qMJNySjlZT/TKmWVNWe19N8jcWmHaqHnnchaq3gxEKv1SWVY5EFzOD06l41w==", + "path": "microsoft.data.sqlclient.sni.runtime/6.0.2", + "hashPath": "microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EJx+fIBMgBlgD+ublKCn+GTOJkw3UqV7xOjYWBRVdUYyIm8UfvAsmSOPFiIInsWTHyMEYUJ9gCJY1jwX+6UB7w==", + "path": "microsoft.entityframeworkcore/10.0.8", + "hashPath": "microsoft.entityframeworkcore.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Abstractions/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jbKDXWPZQhuPHygMnwzNOqxBADVcpRVytcKYZsA++QqhPkpF93Ta8o5mbJQGrARSjlkr9WtOaADV97EDMOZ7DA==", + "path": "microsoft.entityframeworkcore.abstractions/10.0.8", + "hashPath": "microsoft.entityframeworkcore.abstractions.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Design/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LlUUXdfqKFk7RlGExojVP8GI6hN9O21WjpxFnp5mLeGjd9iYdwywIgK9WOLvPM2hrknrRyHR/i43FQdw/oCrOw==", + "path": "microsoft.entityframeworkcore.design/10.0.8", + "hashPath": "microsoft.entityframeworkcore.design.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Relational/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UU3diAD2wwZveye2rnrwaF/wvJ9tm5iL2fuY9TTap6/iGQK1OO29M1BzXZRlRPVH/dByt5w/pISBSFtyR7hTqw==", + "path": "microsoft.entityframeworkcore.relational/10.0.8", + "hashPath": "microsoft.entityframeworkcore.relational.10.0.8.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.SqlServer/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-A+FLIsTH9l5DG2iD6QW6Mfwlvr+BjWme/jJ2hvwmmENTr7lR1UWmgCtKCjDYcHxqdAD15bb4PgQnSzw12DV/pw==", + "path": "microsoft.entityframeworkcore.sqlserver/10.0.8", + "hashPath": "microsoft.entityframeworkcore.sqlserver.10.0.8.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyModel/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vLyZVpxmduO2jx+76ggqnsA3m81kwMY3NkWciNTj5E+Nvqb0VihqCvQP89QsGONWp0AJwMZG+u9GzaCjDdFGNw==", + "path": "microsoft.extensions.dependencymodel/10.0.8", + "hashPath": "microsoft.extensions.dependencymodel.10.0.8.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NnDLS8QwYqO5ZZecL2oioi1LUqjh5Ewk4bMLzbgiXJbQmZhDLtKwLxL3DpGMlQAJ2G4KgEnvGPKa+OOgffeJbw==", + "path": "microsoft.identity.client/4.73.1", + "hashPath": "microsoft.identity.client.4.73.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xDztAiV2F0wI0W8FLKv5cbaBefyLD6JVaAsvgSN7bjWNCzGYzHbcOEIP5s4TJXUpQzMfUyBsFl1mC6Zmgpz0PQ==", + "path": "microsoft.identity.client.extensions.msal/4.73.1", + "hashPath": "microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", + "path": "microsoft.identitymodel.abstractions/8.14.0", + "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", + "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", + "path": "microsoft.identitymodel.logging/8.14.0", + "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h+fHHBGokepmCX+QZXJk4Ij8OApCb2n2ktoDkNX5CXteXsOxTHMNgjPGpAwdJMFvAL7TtGarUnk3o97NmBq2QQ==", + "path": "microsoft.identitymodel.protocols/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yT2Hdj8LpPbcT9C9KlLVxXl09C8zjFaVSaApdOwuecMuoV4s6Sof/mnTDz/+F/lILPIBvrWugR9CC7iRVZgbfQ==", + "path": "microsoft.identitymodel.protocols.openidconnect/7.7.1", + "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", + "path": "microsoft.identitymodel.tokens/8.14.0", + "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" + }, + "Microsoft.OpenApi/2.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw==", + "path": "microsoft.openapi/2.4.1", + "hashPath": "microsoft.openapi.2.4.1.nupkg.sha512" + }, + "Microsoft.SqlServer.Server/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug==", + "path": "microsoft.sqlserver.server/1.0.0", + "hashPath": "microsoft.sqlserver.server.1.0.0.nupkg.sha512" + }, + "Microsoft.VisualStudio.SolutionPersistence/1.0.52": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oNv2JtYXhpdJrX63nibx1JT3uCESOBQ1LAk7Dtz/sr0+laW0KRM6eKp4CZ3MHDR2siIkKsY8MmUkeP5DKkQQ5w==", + "path": "microsoft.visualstudio.solutionpersistence/1.0.52", + "hashPath": "microsoft.visualstudio.solutionpersistence.1.0.52.nupkg.sha512" + }, + "Mono.TextTemplating/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YqueG52R/Xej4VVbKuRIodjiAhV0HR/XVbLbNrJhCZnzjnSjgMJ/dCdV0akQQxavX6hp/LC6rqLGLcXeQYU7XA==", + "path": "mono.texttemplating/3.0.0", + "hashPath": "mono.texttemplating.3.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "Newtonsoft.Json.Bson/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QYFyxhaABwmq3p/21VrZNYvCg3DaEoN/wUuw5nmfAf0X3HLjgupwhkEWdgfb9nvGAUIv3osmZoD3kKl4jxEmYQ==", + "path": "newtonsoft.json.bson/1.0.2", + "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==", + "path": "swashbuckle.aspnetcore/10.1.7", + "hashPath": "swashbuckle.aspnetcore.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.Swagger/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==", + "path": "swashbuckle.aspnetcore.swagger/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swagger.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerGen/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==", + "path": "swashbuckle.aspnetcore.swaggergen/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggergen.10.1.7.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerUI/10.1.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw==", + "path": "swashbuckle.aspnetcore.swaggerui/10.1.7", + "hashPath": "swashbuckle.aspnetcore.swaggerui.10.1.7.nupkg.sha512" + }, + "System.ClientModel/1.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k2jKSO0X45IqhVOT9iQB4xralNN9foRQsRvXBTyRpAVxyzCJlG895T9qYrQWbcJ6OQXxOouJQ37x5nZH5XKK+A==", + "path": "system.clientmodel/1.5.1", + "hashPath": "system.clientmodel.1.5.1.nupkg.sha512" + }, + "System.CodeDom/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==", + "path": "system.codedom/6.0.0", + "hashPath": "system.codedom.6.0.0.nupkg.sha512" + }, + "System.Composition/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==", + "path": "system.composition/9.0.0", + "hashPath": "system.composition.9.0.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA==", + "path": "system.composition.attributedmodel/9.0.0", + "hashPath": "system.composition.attributedmodel.9.0.0.nupkg.sha512" + }, + "System.Composition.Convention/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==", + "path": "system.composition.convention/9.0.0", + "hashPath": "system.composition.convention.9.0.0.nupkg.sha512" + }, + "System.Composition.Hosting/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==", + "path": "system.composition.hosting/9.0.0", + "hashPath": "system.composition.hosting.9.0.0.nupkg.sha512" + }, + "System.Composition.Runtime/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA==", + "path": "system.composition.runtime/9.0.0", + "hashPath": "system.composition.runtime.9.0.0.nupkg.sha512" + }, + "System.Composition.TypedParts/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==", + "path": "system.composition.typedparts/9.0.0", + "hashPath": "system.composition.typedparts.9.0.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dvjqKp+2LpGid6phzrdrS/2mmEPxFl3jE1+L7614q4ZChKbLJCpHXg6sBILlCCED1t//EE+un/UdAetzIMpqnw==", + "path": "system.configuration.configurationmanager/9.0.4", + "hashPath": "system.configuration.configurationmanager.9.0.4.nupkg.sha512" + }, + "System.DirectoryServices.Protocols/10.0.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VmFO1CBCUvWu9cV2XQSeKXRW2Gn76oZmuhhOk7GPDIvzaPoy3lVWHFExFyKNNJlQbGySUbor1bqa1Fc8CJCF/A==", + "path": "system.directoryservices.protocols/10.0.8", + "hashPath": "system.directoryservices.protocols.10.0.8.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rQkO1YbAjLwnDJSMpRhRtrc6XwIcEOcUvoEcge+evurpzSZM3UNK+MZfD3sKyTlYsvknZ6eJjSBfnmXqwOsT9Q==", + "path": "system.identitymodel.tokens.jwt/7.7.1", + "hashPath": "system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512" + }, + "System.Memory.Data/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BVYuec3jV23EMRDeR7Dr1/qhx7369dZzJ9IWy2xylvb4YfXsrUxspWc4UWYid/tj4zZK58uGZqn2WQiaDMhmAg==", + "path": "system.memory.data/8.0.1", + "hashPath": "system.memory.data.8.0.1.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/9.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o94k2RKuAce3GeDMlUvIXlhVa1kWpJw95E6C9LwW0KlG0nj5+SgCiIxJ2Eroqb9sLtG1mEMbFttZIBZ13EJPvQ==", + "path": "system.security.cryptography.protecteddata/9.0.4", + "hashPath": "system.security.cryptography.protecteddata.9.0.4.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/buildcheck/Microsoft.SelfService.Portal.Core.API.dll b/buildcheck/Microsoft.SelfService.Portal.Core.API.dll new file mode 100644 index 0000000..8a860c3 Binary files /dev/null and b/buildcheck/Microsoft.SelfService.Portal.Core.API.dll differ diff --git a/buildcheck/Microsoft.SelfService.Portal.Core.API.exe b/buildcheck/Microsoft.SelfService.Portal.Core.API.exe new file mode 100644 index 0000000..86ae051 Binary files /dev/null and b/buildcheck/Microsoft.SelfService.Portal.Core.API.exe differ diff --git a/buildcheck/Microsoft.SelfService.Portal.Core.API.pdb b/buildcheck/Microsoft.SelfService.Portal.Core.API.pdb new file mode 100644 index 0000000..4e96431 Binary files /dev/null and b/buildcheck/Microsoft.SelfService.Portal.Core.API.pdb differ diff --git a/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json b/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json new file mode 100644 index 0000000..bf15a00 --- /dev/null +++ b/buildcheck/Microsoft.SelfService.Portal.Core.API.runtimeconfig.json @@ -0,0 +1,20 @@ +{ + "runtimeOptions": { + "tfm": "net10.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "10.0.0" + }, + { + "name": "Microsoft.AspNetCore.App", + "version": "10.0.0" + } + ], + "configProperties": { + "System.GC.Server": true, + "System.Reflection.NullabilityInfoContext.IsSupported": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json b/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json new file mode 100644 index 0000000..5576e88 --- /dev/null +++ b/buildcheck/Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json @@ -0,0 +1 @@ +{"Version":1,"ManifestType":"Build","Endpoints":[]} \ No newline at end of file diff --git a/buildcheck/Microsoft.SqlServer.Server.dll b/buildcheck/Microsoft.SqlServer.Server.dll new file mode 100644 index 0000000..ddeaa86 Binary files /dev/null and b/buildcheck/Microsoft.SqlServer.Server.dll differ diff --git a/buildcheck/Microsoft.VisualStudio.SolutionPersistence.dll b/buildcheck/Microsoft.VisualStudio.SolutionPersistence.dll new file mode 100644 index 0000000..16a2843 Binary files /dev/null and b/buildcheck/Microsoft.VisualStudio.SolutionPersistence.dll differ diff --git a/buildcheck/Mono.TextTemplating.dll b/buildcheck/Mono.TextTemplating.dll new file mode 100644 index 0000000..4a76511 Binary files /dev/null and b/buildcheck/Mono.TextTemplating.dll differ diff --git a/buildcheck/Newtonsoft.Json.Bson.dll b/buildcheck/Newtonsoft.Json.Bson.dll new file mode 100644 index 0000000..e9b1dd2 Binary files /dev/null and b/buildcheck/Newtonsoft.Json.Bson.dll differ diff --git a/buildcheck/Newtonsoft.Json.dll b/buildcheck/Newtonsoft.Json.dll new file mode 100644 index 0000000..d035c38 Binary files /dev/null and b/buildcheck/Newtonsoft.Json.dll differ diff --git a/buildcheck/Swashbuckle.AspNetCore.Swagger.dll b/buildcheck/Swashbuckle.AspNetCore.Swagger.dll new file mode 100644 index 0000000..adc65c3 Binary files /dev/null and b/buildcheck/Swashbuckle.AspNetCore.Swagger.dll differ diff --git a/buildcheck/Swashbuckle.AspNetCore.SwaggerGen.dll b/buildcheck/Swashbuckle.AspNetCore.SwaggerGen.dll new file mode 100644 index 0000000..7365f07 Binary files /dev/null and b/buildcheck/Swashbuckle.AspNetCore.SwaggerGen.dll differ diff --git a/buildcheck/Swashbuckle.AspNetCore.SwaggerUI.dll b/buildcheck/Swashbuckle.AspNetCore.SwaggerUI.dll new file mode 100644 index 0000000..af2c3c2 Binary files /dev/null and b/buildcheck/Swashbuckle.AspNetCore.SwaggerUI.dll differ diff --git a/buildcheck/System.ClientModel.dll b/buildcheck/System.ClientModel.dll new file mode 100644 index 0000000..0caead2 Binary files /dev/null and b/buildcheck/System.ClientModel.dll differ diff --git a/buildcheck/System.CodeDom.dll b/buildcheck/System.CodeDom.dll new file mode 100644 index 0000000..54c82b6 Binary files /dev/null and b/buildcheck/System.CodeDom.dll differ diff --git a/buildcheck/System.Composition.AttributedModel.dll b/buildcheck/System.Composition.AttributedModel.dll new file mode 100644 index 0000000..2664688 Binary files /dev/null and b/buildcheck/System.Composition.AttributedModel.dll differ diff --git a/buildcheck/System.Composition.Convention.dll b/buildcheck/System.Composition.Convention.dll new file mode 100644 index 0000000..40f6537 Binary files /dev/null and b/buildcheck/System.Composition.Convention.dll differ diff --git a/buildcheck/System.Composition.Hosting.dll b/buildcheck/System.Composition.Hosting.dll new file mode 100644 index 0000000..b1cce85 Binary files /dev/null and b/buildcheck/System.Composition.Hosting.dll differ diff --git a/buildcheck/System.Composition.Runtime.dll b/buildcheck/System.Composition.Runtime.dll new file mode 100644 index 0000000..c30bbbb Binary files /dev/null and b/buildcheck/System.Composition.Runtime.dll differ diff --git a/buildcheck/System.Composition.TypedParts.dll b/buildcheck/System.Composition.TypedParts.dll new file mode 100644 index 0000000..1556319 Binary files /dev/null and b/buildcheck/System.Composition.TypedParts.dll differ diff --git a/buildcheck/System.Configuration.ConfigurationManager.dll b/buildcheck/System.Configuration.ConfigurationManager.dll new file mode 100644 index 0000000..505f649 Binary files /dev/null and b/buildcheck/System.Configuration.ConfigurationManager.dll differ diff --git a/buildcheck/System.DirectoryServices.Protocols.dll b/buildcheck/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..9eefb2d Binary files /dev/null and b/buildcheck/System.DirectoryServices.Protocols.dll differ diff --git a/buildcheck/System.IdentityModel.Tokens.Jwt.dll b/buildcheck/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 0000000..c2d8ecb Binary files /dev/null and b/buildcheck/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/buildcheck/System.Memory.Data.dll b/buildcheck/System.Memory.Data.dll new file mode 100644 index 0000000..9282c37 Binary files /dev/null and b/buildcheck/System.Memory.Data.dll differ diff --git a/buildcheck/System.Security.Cryptography.ProtectedData.dll b/buildcheck/System.Security.Cryptography.ProtectedData.dll new file mode 100644 index 0000000..4151fc8 Binary files /dev/null and b/buildcheck/System.Security.Cryptography.ProtectedData.dll differ diff --git a/buildcheck/appsettings.Development.json b/buildcheck/appsettings.Development.json new file mode 100644 index 0000000..cf398c2 --- /dev/null +++ b/buildcheck/appsettings.Development.json @@ -0,0 +1,5 @@ +{ + "ConnectionStrings": { + "Context": "Server=.;Database=SSP;TrustServerCertificate=True;Encrypt=False;Trusted_Connection=True" + } +} diff --git a/buildcheck/appsettings.json b/buildcheck/appsettings.json new file mode 100644 index 0000000..005b7be --- /dev/null +++ b/buildcheck/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "Context": "Server=RZ1VCMSQL001\\MSSSP;Database=SSP;TrustServerCertificate=True;Encrypt=False;Integrated Security=SSPI" + } +} \ No newline at end of file diff --git a/buildcheck/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..fa3b62e Binary files /dev/null and b/buildcheck/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/cs/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/cs/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..de0032e Binary files /dev/null and b/buildcheck/cs/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..52ddf61 Binary files /dev/null and b/buildcheck/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..9c9e5c3 Binary files /dev/null and b/buildcheck/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/cs/Microsoft.CodeAnalysis.resources.dll b/buildcheck/cs/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..fe7a8c8 Binary files /dev/null and b/buildcheck/cs/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/cs/Microsoft.Data.SqlClient.resources.dll b/buildcheck/cs/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..0b81da6 Binary files /dev/null and b/buildcheck/cs/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..3a2887c Binary files /dev/null and b/buildcheck/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/de/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/de/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..3bef0e7 Binary files /dev/null and b/buildcheck/de/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..19c9b77 Binary files /dev/null and b/buildcheck/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/de/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/de/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..5e1cc23 Binary files /dev/null and b/buildcheck/de/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/de/Microsoft.CodeAnalysis.resources.dll b/buildcheck/de/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..71227fc Binary files /dev/null and b/buildcheck/de/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/de/Microsoft.Data.SqlClient.resources.dll b/buildcheck/de/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..76ca46d Binary files /dev/null and b/buildcheck/de/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..3a50733 Binary files /dev/null and b/buildcheck/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/es/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/es/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..7b14221 Binary files /dev/null and b/buildcheck/es/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..59c80c7 Binary files /dev/null and b/buildcheck/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/es/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/es/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..de991ad Binary files /dev/null and b/buildcheck/es/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/es/Microsoft.CodeAnalysis.resources.dll b/buildcheck/es/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..ffe4e81 Binary files /dev/null and b/buildcheck/es/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/es/Microsoft.Data.SqlClient.resources.dll b/buildcheck/es/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..e340c59 Binary files /dev/null and b/buildcheck/es/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..4eb6122 Binary files /dev/null and b/buildcheck/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/fr/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/fr/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..35b8d36 Binary files /dev/null and b/buildcheck/fr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..44e0af4 Binary files /dev/null and b/buildcheck/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..ae46f62 Binary files /dev/null and b/buildcheck/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/fr/Microsoft.CodeAnalysis.resources.dll b/buildcheck/fr/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..2870de8 Binary files /dev/null and b/buildcheck/fr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/fr/Microsoft.Data.SqlClient.resources.dll b/buildcheck/fr/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..85be381 Binary files /dev/null and b/buildcheck/fr/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..31d7841 Binary files /dev/null and b/buildcheck/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/it/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/it/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..4f5ea19 Binary files /dev/null and b/buildcheck/it/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..f29a9ee Binary files /dev/null and b/buildcheck/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/it/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/it/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..c62df50 Binary files /dev/null and b/buildcheck/it/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/it/Microsoft.CodeAnalysis.resources.dll b/buildcheck/it/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..738856c Binary files /dev/null and b/buildcheck/it/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/it/Microsoft.Data.SqlClient.resources.dll b/buildcheck/it/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..4297c71 Binary files /dev/null and b/buildcheck/it/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..118b9b8 Binary files /dev/null and b/buildcheck/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/ja/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/ja/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..8d5c43a Binary files /dev/null and b/buildcheck/ja/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..0a04bbf Binary files /dev/null and b/buildcheck/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..c88dd66 Binary files /dev/null and b/buildcheck/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/ja/Microsoft.CodeAnalysis.resources.dll b/buildcheck/ja/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..7400f4a Binary files /dev/null and b/buildcheck/ja/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/ja/Microsoft.Data.SqlClient.resources.dll b/buildcheck/ja/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..613a787 Binary files /dev/null and b/buildcheck/ja/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..036e931 Binary files /dev/null and b/buildcheck/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/ko/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/ko/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..7305396 Binary files /dev/null and b/buildcheck/ko/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..7735e46 Binary files /dev/null and b/buildcheck/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..adead79 Binary files /dev/null and b/buildcheck/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/ko/Microsoft.CodeAnalysis.resources.dll b/buildcheck/ko/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..9f8ffe3 Binary files /dev/null and b/buildcheck/ko/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/ko/Microsoft.Data.SqlClient.resources.dll b/buildcheck/ko/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..c98361b Binary files /dev/null and b/buildcheck/ko/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..e318959 Binary files /dev/null and b/buildcheck/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/pl/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/pl/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..89c6efc Binary files /dev/null and b/buildcheck/pl/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..62dda99 Binary files /dev/null and b/buildcheck/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..82b3fa2 Binary files /dev/null and b/buildcheck/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/pl/Microsoft.CodeAnalysis.resources.dll b/buildcheck/pl/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..9db06d4 Binary files /dev/null and b/buildcheck/pl/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/pl/Microsoft.Data.SqlClient.resources.dll b/buildcheck/pl/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..20086f0 Binary files /dev/null and b/buildcheck/pl/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..8be5aa7 Binary files /dev/null and b/buildcheck/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..a263248 Binary files /dev/null and b/buildcheck/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..04f70a6 Binary files /dev/null and b/buildcheck/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..3a16748 Binary files /dev/null and b/buildcheck/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/pt-BR/Microsoft.CodeAnalysis.resources.dll b/buildcheck/pt-BR/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..8b9f7ce Binary files /dev/null and b/buildcheck/pt-BR/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/pt-BR/Microsoft.Data.SqlClient.resources.dll b/buildcheck/pt-BR/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..5b4bd1b Binary files /dev/null and b/buildcheck/pt-BR/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..bd7b2a2 Binary files /dev/null and b/buildcheck/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/ru/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/ru/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..6feb49f Binary files /dev/null and b/buildcheck/ru/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..0b35a9d Binary files /dev/null and b/buildcheck/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..413ac6a Binary files /dev/null and b/buildcheck/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/ru/Microsoft.CodeAnalysis.resources.dll b/buildcheck/ru/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..b5e3f64 Binary files /dev/null and b/buildcheck/ru/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/ru/Microsoft.Data.SqlClient.resources.dll b/buildcheck/ru/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..67159aa Binary files /dev/null and b/buildcheck/ru/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll b/buildcheck/runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..09206c0 Binary files /dev/null and b/buildcheck/runtimes/linux/lib/net10.0/System.DirectoryServices.Protocols.dll differ diff --git a/buildcheck/runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll b/buildcheck/runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..7aaf95e Binary files /dev/null and b/buildcheck/runtimes/osx/lib/net10.0/System.DirectoryServices.Protocols.dll differ diff --git a/buildcheck/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll b/buildcheck/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll new file mode 100644 index 0000000..0baeb08 Binary files /dev/null and b/buildcheck/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll differ diff --git a/buildcheck/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll b/buildcheck/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll new file mode 100644 index 0000000..ce09630 Binary files /dev/null and b/buildcheck/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll differ diff --git a/buildcheck/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll b/buildcheck/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll new file mode 100644 index 0000000..a0083b1 Binary files /dev/null and b/buildcheck/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll differ diff --git a/buildcheck/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll b/buildcheck/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll new file mode 100644 index 0000000..36a2409 Binary files /dev/null and b/buildcheck/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll differ diff --git a/buildcheck/runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll b/buildcheck/runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll new file mode 100644 index 0000000..63ab7ba Binary files /dev/null and b/buildcheck/runtimes/win/lib/net10.0/System.DirectoryServices.Protocols.dll differ diff --git a/buildcheck/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll b/buildcheck/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll new file mode 100644 index 0000000..f983fa9 Binary files /dev/null and b/buildcheck/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll differ diff --git a/buildcheck/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..c219a07 Binary files /dev/null and b/buildcheck/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/tr/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/tr/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..6697523 Binary files /dev/null and b/buildcheck/tr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..79301b0 Binary files /dev/null and b/buildcheck/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..28739df Binary files /dev/null and b/buildcheck/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/tr/Microsoft.CodeAnalysis.resources.dll b/buildcheck/tr/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..e5f35c2 Binary files /dev/null and b/buildcheck/tr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/tr/Microsoft.Data.SqlClient.resources.dll b/buildcheck/tr/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..1111f9a Binary files /dev/null and b/buildcheck/tr/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..215fe77 Binary files /dev/null and b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..53d30cc Binary files /dev/null and b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..62e7fc1 Binary files /dev/null and b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..c1b4544 Binary files /dev/null and b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/zh-Hans/Microsoft.CodeAnalysis.resources.dll b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..712df48 Binary files /dev/null and b/buildcheck/zh-Hans/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/zh-Hans/Microsoft.Data.SqlClient.resources.dll b/buildcheck/zh-Hans/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..7eeebbc Binary files /dev/null and b/buildcheck/zh-Hans/Microsoft.Data.SqlClient.resources.dll differ diff --git a/buildcheck/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..d96f8c8 Binary files /dev/null and b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/buildcheck/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..23c31b7 Binary files /dev/null and b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/buildcheck/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll new file mode 100644 index 0000000..65f24ab Binary files /dev/null and b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll differ diff --git a/buildcheck/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..7d3ed5d Binary files /dev/null and b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/buildcheck/zh-Hant/Microsoft.CodeAnalysis.resources.dll b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..14fee21 Binary files /dev/null and b/buildcheck/zh-Hant/Microsoft.CodeAnalysis.resources.dll differ diff --git a/buildcheck/zh-Hant/Microsoft.Data.SqlClient.resources.dll b/buildcheck/zh-Hant/Microsoft.Data.SqlClient.resources.dll new file mode 100644 index 0000000..c1aa37b Binary files /dev/null and b/buildcheck/zh-Hant/Microsoft.Data.SqlClient.resources.dll differ diff --git a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfo.cs b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfo.cs index e0f42f4..aff7c6c 100644 --- a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfo.cs +++ b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Microsoft.SelfService.Portal.Core.API")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+155aedeab3c9e3f578070104fc1fa6d77d772b8c")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+14f856fdb3bbe0393af160721522e9c4348a847f")] [assembly: System.Reflection.AssemblyProductAttribute("Microsoft.SelfService.Portal.Core.API")] [assembly: System.Reflection.AssemblyTitleAttribute("Microsoft.SelfService.Portal.Core.API")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfoInputs.cache b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfoInputs.cache index bc92e9e..8bb196b 100644 --- a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfoInputs.cache +++ b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.AssemblyInfoInputs.cache @@ -1 +1 @@ -6767a08a2e3314ee7e533e4c79aec61571c85488da437f3a7399ec7fbb8eb96f +568efb6d1a0d5bdac365ff11d9dc7c547c650de64852cefceef73593ea874e26 diff --git a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.CoreCompileInputs.cache b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.CoreCompileInputs.cache index 4b75000..7cae828 100644 --- a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -16b0a4bc0204b202006dccf5c846548e730a6b235e2770dcdc089a9a355aa5df +85508ea1aec9e22c17a7f5433465f94bb5d2202717078051591802fa17aa9a3c diff --git a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.FileListAbsolute.txt b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.FileListAbsolute.txt index bdd5a6f..bb1cbfd 100644 --- a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.FileListAbsolute.txt +++ b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.csproj.FileListAbsolute.txt @@ -9,7 +9,6 @@ F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\ F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\appsettings.Development.json F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\appsettings.json F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json -F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.exe F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.deps.json F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.dll @@ -315,3 +314,352 @@ F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\buildcheck\runtime F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\buildcheck\runtimes\linux\lib\net10.0\System.DirectoryServices.Protocols.dll F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\buildcheck\runtimes\osx\lib\net10.0\System.DirectoryServices.Protocols.dll F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\buildcheck\runtimes\win\lib\net10.0\System.DirectoryServices.Protocols.dll +F:\Projekte\Coding\.Net\buildcheck\appsettings.Development.json +F:\Projekte\Coding\.Net\buildcheck\appsettings.json +F:\Projekte\Coding\.Net\buildcheck\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json +F:\Projekte\Coding\.Net\buildcheck\Microsoft.SelfService.Portal.Core.API.exe +F:\Projekte\Coding\.Net\buildcheck\Microsoft.SelfService.Portal.Core.API.deps.json +F:\Projekte\Coding\.Net\buildcheck\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json +F:\Projekte\Coding\.Net\buildcheck\Microsoft.SelfService.Portal.Core.API.dll +F:\Projekte\Coding\.Net\buildcheck\Microsoft.SelfService.Portal.Core.API.pdb +F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.exe +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\appsettings.Development.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\appsettings.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.exe +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.deps.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.pdb +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\AutoMapper.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Azure.Core.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Azure.Identity.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Humanizer.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.AspNetCore.Authentication.Negotiate.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.AspNetCore.JsonPatch.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.AspNetCore.OpenApi.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.Bcl.AsyncInterfaces.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.Bcl.Cryptography.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.Build.Framework.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.CodeAnalysis.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.CodeAnalysis.CSharp.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.CodeAnalysis.Workspaces.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.CodeAnalysis.Workspaces.MSBuild.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.Data.SqlClient.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.EntityFrameworkCore.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.EntityFrameworkCore.Abstractions.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.EntityFrameworkCore.Design.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.EntityFrameworkCore.Relational.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.EntityFrameworkCore.SqlServer.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.Extensions.DependencyModel.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.Identity.Client.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.Identity.Client.Extensions.Msal.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.IdentityModel.Abstractions.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.IdentityModel.JsonWebTokens.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.IdentityModel.Logging.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.IdentityModel.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.IdentityModel.Tokens.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.OpenApi.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.SqlServer.Server.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Microsoft.VisualStudio.SolutionPersistence.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Mono.TextTemplating.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Newtonsoft.Json.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Newtonsoft.Json.Bson.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Swashbuckle.AspNetCore.Swagger.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Swashbuckle.AspNetCore.SwaggerGen.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\Swashbuckle.AspNetCore.SwaggerUI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.ClientModel.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.CodeDom.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Composition.AttributedModel.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Composition.Convention.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Composition.Hosting.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Composition.Runtime.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Composition.TypedParts.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Configuration.ConfigurationManager.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.DirectoryServices.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.IdentityModel.Tokens.Jwt.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Memory.Data.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\System.Security.Cryptography.ProtectedData.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\cs\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\de\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\es\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\fr\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\it\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ja\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ko\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pl\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pt-BR\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ru\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\tr\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hans\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hant\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\cs\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\de\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\es\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\fr\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\it\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ja\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ko\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pl\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pt-BR\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ru\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\tr\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\cs\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\de\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\es\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\fr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\it\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ja\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ko\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pl\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pt-BR\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ru\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\tr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\de\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\es\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\it\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\cs\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\de\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\es\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\fr\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\it\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ja\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ko\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pl\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pt-BR\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ru\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\tr\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\cs\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\de\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\es\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\fr\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\it\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ja\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ko\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pl\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\pt-BR\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\ru\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\tr\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hans\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\zh-Hant\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\unix\lib\net9.0\Microsoft.Data.SqlClient.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\win\lib\net9.0\Microsoft.Data.SqlClient.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\linux\lib\net10.0\System.DirectoryServices.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\osx\lib\net10.0\System.DirectoryServices.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\runtimes\win\lib\net10.0\System.DirectoryServices.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.csproj.AssemblyReference.cache +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\rpswa.dswa.cache.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.AssemblyInfoInputs.cache +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.AssemblyInfo.cs +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.csproj.CoreCompileInputs.cache +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.MvcApplicationPartsAssemblyInfo.cs +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.MvcApplicationPartsAssemblyInfo.cache +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\rjimswa.dswa.cache.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\rjsmrazor.dswa.cache.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\rjsmcshtml.dswa.cache.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\scopedcss\bundle\Microsoft.SelfService.Portal.Core.API.styles.css +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\staticwebassets.build.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\staticwebassets.build.json.cache +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\staticwebassets.development.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\staticwebassets.build.endpoints.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\swae.build.ex.cache +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsof.CC767D45.Up2Date +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\refint\Microsoft.SelfService.Portal.Core.API.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.pdb +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\Microsoft.SelfService.Portal.Core.API.genruntimeconfig.cache +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\obj\Debug\net10.0\ref\Microsoft.SelfService.Portal.Core.API.dll +F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck\appsettings.Development.json +F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck\appsettings.json +F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck\Microsoft.SelfService.Portal.Core.API.deps.json +F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json +F:\Projekte\Coding\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\appsettings.Development.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\appsettings.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\buildcheck\appsettings.Development.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\buildcheck\appsettings.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\buildcheck\Microsoft.SelfService.Portal.Core.API.deps.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\buildcheck\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\buildcheck\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.SelfService.Portal.Core.API.exe +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.SelfService.Portal.Core.API.deps.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.SelfService.Portal.Core.API.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.SelfService.Portal.Core.API.pdb +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\AutoMapper.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Azure.Core.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Azure.Identity.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Humanizer.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.AspNetCore.Authentication.Negotiate.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.AspNetCore.JsonPatch.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.AspNetCore.OpenApi.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.Bcl.AsyncInterfaces.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.Bcl.Cryptography.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.Build.Framework.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.CodeAnalysis.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.CodeAnalysis.CSharp.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.CodeAnalysis.CSharp.Workspaces.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.CodeAnalysis.Workspaces.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.CodeAnalysis.Workspaces.MSBuild.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.Data.SqlClient.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.EntityFrameworkCore.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.EntityFrameworkCore.Abstractions.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.EntityFrameworkCore.Design.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.EntityFrameworkCore.Relational.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.EntityFrameworkCore.SqlServer.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.Extensions.DependencyModel.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.Identity.Client.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.Identity.Client.Extensions.Msal.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.IdentityModel.Abstractions.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.IdentityModel.JsonWebTokens.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.IdentityModel.Logging.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.IdentityModel.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.IdentityModel.Tokens.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.OpenApi.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.SqlServer.Server.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Microsoft.VisualStudio.SolutionPersistence.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Mono.TextTemplating.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Newtonsoft.Json.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Newtonsoft.Json.Bson.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Swashbuckle.AspNetCore.Swagger.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Swashbuckle.AspNetCore.SwaggerGen.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\Swashbuckle.AspNetCore.SwaggerUI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.ClientModel.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.CodeDom.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Composition.AttributedModel.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Composition.Convention.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Composition.Hosting.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Composition.Runtime.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Composition.TypedParts.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Configuration.ConfigurationManager.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.DirectoryServices.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.IdentityModel.Tokens.Jwt.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Memory.Data.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\System.Security.Cryptography.ProtectedData.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\cs\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\de\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\es\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\fr\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\it\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ja\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ko\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pl\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pt-BR\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ru\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\tr\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hans\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hant\Microsoft.CodeAnalysis.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\cs\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\de\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\es\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\fr\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\it\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ja\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ko\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pl\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pt-BR\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ru\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\tr\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hant\Microsoft.CodeAnalysis.CSharp.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\cs\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\de\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\es\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\fr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\it\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ja\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ko\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pl\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pt-BR\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ru\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\tr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hans\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hant\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\de\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\es\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\it\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\cs\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\de\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\es\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\fr\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\it\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ja\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ko\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pl\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pt-BR\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ru\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\tr\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hans\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hant\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\cs\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\de\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\es\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\fr\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\it\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ja\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ko\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pl\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\pt-BR\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\ru\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\tr\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hans\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\zh-Hant\Microsoft.Data.SqlClient.resources.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\unix\lib\net9.0\Microsoft.Data.SqlClient.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\win\lib\net9.0\Microsoft.Data.SqlClient.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\linux\lib\net10.0\System.DirectoryServices.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\osx\lib\net10.0\System.DirectoryServices.Protocols.dll +C:\Users\CodexSandboxOffline\.codex\.sandbox\cwd\c85dc9d4b6e088fe\.Net\Microsoft.SelfService.Portal.Core.API\bin\Debug\net10.0\buildcheck3\runtimes\win\lib\net10.0\System.DirectoryServices.Protocols.dll +f:\Projekte\Coding\_build_api_tmp\appsettings.Development.json +f:\Projekte\Coding\_build_api_tmp\appsettings.json +f:\Projekte\Coding\_build_api_tmp\buildcheck\appsettings.Development.json +f:\Projekte\Coding\_build_api_tmp\buildcheck\appsettings.json +f:\Projekte\Coding\_build_api_tmp\buildcheck\Microsoft.SelfService.Portal.Core.API.deps.json +f:\Projekte\Coding\_build_api_tmp\buildcheck\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json +f:\Projekte\Coding\_build_api_tmp\buildcheck\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json +f:\Projekte\Coding\_build_api_tmp\Microsoft.SelfService.Portal.Core.API.staticwebassets.endpoints.json +f:\Projekte\Coding\_build_api_tmp\Microsoft.SelfService.Portal.Core.API.exe +f:\Projekte\Coding\_build_api_tmp\Microsoft.SelfService.Portal.Core.API.deps.json +f:\Projekte\Coding\_build_api_tmp\Microsoft.SelfService.Portal.Core.API.runtimeconfig.json +f:\Projekte\Coding\_build_api_tmp\Microsoft.SelfService.Portal.Core.API.dll +f:\Projekte\Coding\_build_api_tmp\Microsoft.SelfService.Portal.Core.API.pdb diff --git a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll index 6c737d7..266cd81 100644 Binary files a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll and b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.dll differ diff --git a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb index 7c05080..e65ce7c 100644 Binary files a/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb and b/obj/Debug/net10.0/Microsoft.SelfService.Portal.Core.API.pdb differ diff --git a/obj/Debug/net10.0/apphost.exe b/obj/Debug/net10.0/apphost.exe index c174fb6..86ae051 100644 Binary files a/obj/Debug/net10.0/apphost.exe and b/obj/Debug/net10.0/apphost.exe differ diff --git a/obj/Debug/net10.0/ref/Microsoft.SelfService.Portal.Core.API.dll b/obj/Debug/net10.0/ref/Microsoft.SelfService.Portal.Core.API.dll index e73e7ab..81fa00c 100644 Binary files a/obj/Debug/net10.0/ref/Microsoft.SelfService.Portal.Core.API.dll and b/obj/Debug/net10.0/ref/Microsoft.SelfService.Portal.Core.API.dll differ diff --git a/obj/Debug/net10.0/refint/Microsoft.SelfService.Portal.Core.API.dll b/obj/Debug/net10.0/refint/Microsoft.SelfService.Portal.Core.API.dll index e73e7ab..81fa00c 100644 Binary files a/obj/Debug/net10.0/refint/Microsoft.SelfService.Portal.Core.API.dll and b/obj/Debug/net10.0/refint/Microsoft.SelfService.Portal.Core.API.dll differ diff --git a/obj/Debug/net10.0/rjsmcshtml.dswa.cache.json b/obj/Debug/net10.0/rjsmcshtml.dswa.cache.json index 156540d..292889f 100644 --- a/obj/Debug/net10.0/rjsmcshtml.dswa.cache.json +++ b/obj/Debug/net10.0/rjsmcshtml.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"ILSx+4dCyQzML0PLL1+iAfuwi4o6nolNPq04aGa56YY=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["vdtHh/zOSUzIXLsY12md/hRdo1uZ8G/3wAHBzgfEumw=","r0CRBbZD7zlCwiC60CcVSLoMaGhK4IFfHnrPuAxmSsI=","QMLTZhagzDwrj1b/P5MTYqmUJU\u002Bq6cc7kaQWBB1KBYk=","Un9Nk3yrPgQHFRoXy5jLTJ7R7mYAyX2GeSrtCIqXC5E=","flFnk3fYwEdbwRmYL\u002B06cYqoQFaRNzZ\u002B9NORBgPlFHw=","bDQSIh/\u002BHKU/QTxM1ElrhOG6x8shfui/6WM3uWqaE6E=","MfaPbAIS9u6sTP2Adk\u002BW\u002BFd80F9BfuxNr35q1UPN2cQ=","rhOnnZ3n30PtdoMQFgkLTVqGnw7hMZyp/CitqWiX4S4=","2\u002BfVYUaSTfkwohMdKtDR0MWDXri0rUdVJBvpYL8\u002Bmu0="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"ILSx+4dCyQzML0PLL1+iAfuwi4o6nolNPq04aGa56YY=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["vdtHh/zOSUzIXLsY12md/hRdo1uZ8G/3wAHBzgfEumw=","Dk3jsy\u002BHNDsFnpDAXEvqr0DE5QzMsv07/7VUXD3w9W8=","Wg33Et8yFcu2zn6Pa6EbqJ4Wd9Ylvtny/w98VI1JWIU=","KbuoQ4jDMnsw4hJVn9i6DmW2Nz5CxEDJvwwKd4TxCJk=","Z4r6\u002BGVAPN4NDXk4KvDa6997WlSoz\u002B6H0kpZ3q0V31A=","/m60RmZz2fhgc1KOpLbKpGCSUB4kqYElc3KzVbKE2lg=","m7w7W8zTzxeeZFyPitiWIFjpblzXTPJDz6o\u002BHZK7CVU=","phsbo\u002BKjgk3WcMMAvJVBJyGlWoH1MNwBGaLeIlvRGrk=","ZqdGPeUo2iPpvof5MH6FkcnChkz6C9GSzHezqBS9/10=","LGn\u002BTs2AlBPTvjNwZ7k8Aq0m3gI5AGZbn6HD/H0bR1c=","vEKhpAYE\u002BzMd3RKVoVccKQiaF5iCkNnB5t2ISTovDhk=","bsqFDF2DGBah6dbUGbY6mc5S32so0O3frTrEXrDBidk=","Bx0REq5xuplRN8RWJtDcBJ8qwVa\u002B3RprzPVh1gn2QKo=","e9YJzJs3bC5IxyaJieTq8\u002Buchd3vMMHgZR4QyapyaF4=","X8da3N3GLR2OXFzpxibmFCdKvwM0f5k2SwK3qPrrCmU=","s\u002BnzHzh6UKBOESaLQiq5UrkABYvP55C0PeG4596YAeo=","Zn4P4tCDx2xQ\u002BW4Punev1c0e14KnGEFZoaM3coU9Oyw=","2J5nW1mHMcQQ7BCXERoyT9EUT74CLIeUFBxqiEvQ0\u002B0=","lsayflr7ePSw3nn5pzsWXcSDcHCt3v\u002B8d2EXn0n3hoU=","TT9IUobP/5FnZYKfRiuNjT40XhIuJvEt38c32/FOATI=","ubM3BdmdyRAjd6pk\u002BHclJ/7Amy7akudm5A10gL1gjWw=","o3g2jNh9WOAqOF1O1J/QXxNFEs7vzSCPc7vl2W2Eg5Y=","sVmkbfD6xp4OTJU/LaUA6P/uxG65mCYXMW6xIV6MN48=","4IauJF4oeE1Noflm6hfom3iWIU96zXcG3Y4jwbQd7LI=","atk208TT1Wna3CCZSQ2EhkO2tU\u002BLB1SuqxSQs8MgUt4=","91fYA5enOmHQuf1tX9oXb2HCELocONh0MRud0V7SRpg=","rrVLzPx2cjWgcilaF2eqL44JkL6c26quM\u002B9vMiXjJgU=","AwjwFpokBzy/E/hxSPMuLUFONk4Jwn/qQXlyLDZpalw=","yzeU43IYP/wkf/R\u002BAxPtD3ObkRV\u002Bi3wCqwRcdug1nqE=","eHhaDYbCiAVjvLZ7jX6KaLVrZuB652l6WU\u002Bj097Q/KM=","pRJnsSJXRlM6YTPVxgIyzL\u002BGHSkbS31//OKkSyw\u002Ba3k=","Pd2QcrYRM6PoaZy00Ut9oSombDHplR6NcBFdU3v9x3M=","q8ajtc/4veJd5VcIVoEj1P8KpQFjKbezXZJHKsJsJ58=","H7w7IVHV1blGB66YKjJjYOqr8L4hQUAlmWdXTvMCkE0=","p7ZzL0tA6X7hgdesmkPzC\u002BMpsKyxzAYPehKHPZpUUTk=","zUW9Z3rxL6ZnerUdf0NBDKa94RJXN7z2NV6CjiD8muU=","L1v/GbPaWkITIzaEKWp3UCr607opQVx2qA6naw/L6N8=","msmngHYRHJkuXsjRP0XljcPE93hmxtRNGr5ZwTsctd4=","DELXdaQdlPtNXr\u002BrabQjiVJAeqo9LjU2xmrtahy8mKo=","rWIVl8epbka81lIcO3AKQy4w33ceOwQT2QeMk\u002B6ij98=","Hqi4yNphcLPLrj58hjCfXdWzu8dxabXZjQPFo\u002B\u002BP4JI=","ApYnA/j38MrMv4T\u002B2ADNAPT0JraxMDh8RP6i2qIPFBA=","SAL\u002BYrSupSDTm0Zz5fv7XdQz7d2NQ6jz\u002BvuJRl1wIXs=","YVvfWQtzbjO0LKeoqqyRhgkzZsbTp4DEFvRb3OoavdM=","iN1Ih97am65koTUFe0\u002BczXZBA9qF/bsq07lNVxPIJJ0=","q1OrWBqLfMRp7HP0hZCNWgfRaKA6Qw4\u002BkygV75N/G0U=","BPDzHamGTP15tIilvwiguLMJiERSBeQXUlUPf5TNJdg=","Y6VjYVU1BuBF2nL3Wo0h0KofFd\u002B/PROMNutY/HeHfG0=","HAGnG0vAUkQoVpj3KmmyWaeqGvX5raZzkTg4lgJl1EA=","SUz\u002B39TzMnrIGs4iRsMUSjY/reCZIvWEQ4L2KgOgV8U=","Ru0JjtUetcVWj/sLUi96WG8SR9BZ3o1b39SWpgI\u002BrgU=","h1qZW31sNXwbQSLK\u002Be091il6T52u1IeAaVdEFgWurU8=","YA03W6C9vGyQAnQsb5sTsrbZ57H7qdMmk4hOi6HNMlI=","nslXCM6T1fD/m3MdfqareFDcf9yuWj8yXmFfhTZIUso=","KQw13/e3x9B8wwrECqg1FJVMHuGkg4X0zzRZ1Ft//wk=","oZZ9gw8Xu0ImrWYLWisekRrt8pj70CzUEsXir3ToPUg=","vEgQrDpbnaEEqlRr9cVHvermY6Ufys56CNcGKFHqA/E=","HRo96sJdprS/DQuCohFj2Dg688/MNGGg4XselS1HlXs=","gW66luebHgv7ZGJKWOpcyg7VqZykwx\u002BNPg2fJAcN6PA=","j/lDqeyFuI4\u002BIIfYhTQTY5eXoatVII0JZ2XzFSf5eqg=","8plOue6cCDL7IYKvCOa/70ES3mKgmgwu8D/ptvCQ\u002Bp8=","mXLvrNI3BLdeGoOfgYetjU5dE6p/KFYR/I/OIdX\u002Bqd4=","ry4\u002BRYKOZclrBMw3LcqkJ6CY90OM0v1AXlw49vmkAmM=","gFwyh4HVsVXcOzYLuxSGSZVIMDd\u002BsDZc2v2LClngkcc=","ddNOamm5\u002BkCo8XARDYqMgwaRMR3rQJBH2L7RYewh3\u002B8=","vOA8raIIqshcvMSq0DQp4u\u002BrQARfVFUuoDBnY3S0AlQ=","5\u002BJCDEp2ZY7VYwhjuaiCz3EJ0PdqjDBNdnIOJqolgGs=","ppDPoYW5PkIatn38a8kFIAmq5V25R/jMgaPvLifwR4k=","XEqP4NjPk9NMApOEnFNcAiH0QEb8cE1nrlOC9uKsICk=","V8f4xVCIpB1\u002Bn7KlKv9JBE/I4O0kyj\u002BDyl17UjCww7o=","qFUjEXtXGV7LlbFqGJcMpw8DUGVbp4PSKpYwAt8t1Og=","wSqcBylLry7z72LKJlElMvLFlukX1HhbMaYXq0uODtc=","08qVljQjjo7A8HMuCI6klHx4rrZXLy4jaicEsq8KBu0=","pgivgEFvzRRcVAe\u002B7Yo6T/T\u002BLwjJPygNX1D20CTi1gU=","FP/lZPAriWn\u002Bl/31TtvzdAeiVl7d4nmNeycrrEuDeh4=","P\u002B3eTkBqrjO0umcCYpJJAmgYask4fkM9b8uCPU8tqvM=","ysE7XwKMb9OiWXdjq6MFzQZQ4bvAdj6R4LQISa9JO2c=","\u002BZ5OwDIqmznZPoMmxIkST7RqdQvCI91M2qNGQvN2fuM=","uojdN41adPpaYPwL1yTvftYF\u002BedskvUhsDru7sZsZnE=","m4d76Fdxk5seFCbzdLoTq9yORCMly7FJDnydkQDcPDo=","JpOMe7CWIFFojKrebfKGUCWVUoPoDUC4dkV8vYr\u002BzW0=","jPTiCvAZ/oi0GTmCyu8Br4O2AZ2GMkCDF6lyc5frBJA=","FQ0gyXEk/xdJ\u002B/1anr7ru\u002BP5Bg0WKIi0BZL4uVaBFuQ=","an6GQb7UdbYyEBqlE8J2XCu44C3\u002B7JBSvwizV8l0Xnw=","Bnn9gVT9BFj/en5frkJtTGjatFRNBqZdM85teDbUpp0=","mWcReXh\u002BYPUaDLQSZw7XM\u002BY9Pl1xGVFbbJc0mOWF2yA=","p2uT6mCzPrreCub3aRtRS83zXGtC47cAlswZ/fu4fSM=","hjPncBEzLcq\u002BWwL5r\u002B3buoSjr9CSlpMUaRHZQrh1A6U=","SS44288xoupJ92CceY5EYJTmnRGWJ4mtS/y40lQ1QTc=","dB91N/2kOPdxGh3PIlTgJMTtGNSOvNXtFjFQxn8CHiM=","Ip551/U2XR5bZznmjPDii0SCmaZ67u5rT0oDIYCY5ls=","gz47MkvqbZWcBshLKJeuvyoCslvtnoIucpRiHSFEPyk=","Y483Ph7YAAsbUMAOs15d6MowtryAUV3VC4OLKnEVNkE=","BGoo0OiISiJcp\u002BI8Yp5EEUqtC7N81D\u002BfSSwhPC\u002BJ9eY=","N/0XqSsgY55UQHWxqE/I9G/8SxjO\u002BASHdq2KkEVgqLY=","KkQYAPrIxSqhg68zAXCkBZMVhbwsZ\u002BuD0TT4/luUV8M=","veKHkWTx4AH6DaLc7p0gEYvNhgRn23vfUwXOkbV/pf4=","hW8fxvmRC0qpBORpoge2/xEHDo6aLP49\u002BRr8D0Qk3XY=","cwwZhswCN7GbS0MGN47WoKwXiYAFUxygIFL/LizK1Q4=","SjWBohOw85bhkuZUG3XzckEjFPLur2\u002BKfJu3oNF4ZXM=","jipY0QNqoS5cixuUHAuKCmkYxXd\u002B/78PxgYZ9fRKBoE=","T4NMN4f00LjL/5m8u\u002BbCum2w5poqUbG0uj\u002BRO3yc07g=","lxihuOX1rC0Ql5h4wUTkfQRh8NpjXgZOTRjBysv66h4=","VAW5s9v7eXp8T8/6284wCvrvCd2NdJDrUydZ5GpoB7g=","qmoVxo3esH9E0GquZyxZP\u002B9Spb9m2m1V53m05p5uPpg=","F7sA7swBgNhttpyXMWvIHSrRFqD0HjlcHq30PiYy1q4=","1V8cNUwsg1BiMf6GpO2VNLiZxwxOcIhRtq/saTloTqk=","jngCSqdr/xgbb4VbX5HmJyHyrfF0GrSnrpIjb7Ckd00=","d5hPvNpdZ20OoM0Cwl0MJhFRB5I/nPLNz82TWig6f/k=","iXqQj8kc8tEMWZmhfOJyJut0KQYyj5d0uAnmKghuHrw=","dlTcgFLe8qXysiFvIpDEZuCHuRqxpPgddzVkLnwQicI=","fS2iYNE9SA4uHphzAtEsUUFXepDFypQ0Ril3t2Hoh7g=","AT/blW2cJbt\u002BfiWcPQMQpJcqNFXQa0bGfP\u002BHUM1kL54=","ok7QFVhd70t4isjrHEelH\u002B1BY37AmWP7qA7EAwG/PPk=","A/twxiiHrtlWaEJFuPBJKZDfXZ5wpRDT/pO3EL5LNy8=","KVtRjT33BPrAyj4Fw2fLOcuj1aJCr4dL1ZWnjDdFSlM=","Lom\u002BVziOiO42zMxUpawwZRQbcN/xSMGDWLfDNVTfpSw=","sgG04T0HMM9i\u002BMRB8valL5bR4EmYWP9HgV/bfqepo9s=","vtfx1MaXWB\u002Bv1HAAX2WzcWLv9QyvWrZJW1A2055/dk8=","kefD5EeyxCZZAcl6folD\u002B7u2rT2kkISue4CSoF6J9C4=","rYkJKsc0T2JOCQLnt8GPUYhzzfqwkRYDEAyPjkL46U8=","w/XozXUd5qMPqtMuCaBeh1k2typVlerzjJ9kb9CKybs=","uy4J0ZhwP7dH\u002Bkp68VBu/40eBGY1p7ad4CgbQ9Kvhhw=","kFRhnNu1\u002BVBeZhi\u002BF8Y4W0d1FHh8kBlTcug3Ga9\u002BoW0=","MLAMzXpxhgeI5JdySDYk9YntsypjBIa1m\u002BI/2MmMSMU=","dx/MdyE5BjPEsQU2Z75bgQQCK7PrmhwdeBJ4jfkegKs=","h\u002BAad/KYhehtlzQ96ZdFTw97viCUiaA7g1MVb\u002BNFsCE=","AwTSfROG7ZZUCPpFhIRCsFHK\u002BkwMjCFunY3243b07i0=","flOxnn1OQqD5l28M2rKBqT8rUneszl18190EqM1mVkg=","zwU3NguVcHCLFI4yiWySAvIcAiBxpjRYHMpMILogxAM=","H9aq4S97Gok0pMpudZjkv7wVKHU/sS6TyWHCnkjJOL4=","Dc2QSV4OTIajvIG6pe2qYZyVJ1WQcPHrPtN9TcDgQmo=","uO0sQpKDo5uH09SM7VjYLUUat0BWOsxli2jsuGZghD8=","D585tyD233J9UwRzFkysWiZxetSuSyji1M\u002B6X\u002Bn0mzc=","T3eYdQDumwCK/5WCqaDU4D/Ez\u002BPrtf\u002BjuR1HykqL4Ho=","2NYAwrCF\u002BjeLZHpnDY8IQ7N1QEwz\u002BR1De5dONGP4br0=","5s8rj0rWToL6bPbCtxIRjik2YDEZmgk8gis8HgSyGR4=","rBf6sCW0rs2bzf75K884XM8fYA9orFDutH5H2XVHk2E=","UxhyMsp038jyjrGK1kB7l5WIQg\u002B3SzU0KSZqF1HCsYI=","ROUjpkACO1uAEhKqo5MlX7/DvfX3fzcn7zMBE9iosG8=","MosrLDJLpdQDPSbGd8AkXahdf0t9S0HE7HYpjXI6NdI=","y9yiw6st3Lke\u002BJLypvU7vaBcMGmfkjMdfaa3tQD\u002BnEk=","2w6nOBTN9GYt5py71xBdKchbrkf5YHk9phehe21wtag=","Vq852Ou648JNjTWzdEWMkX4u/CbYNxyP0Vl/kiXxsS0=","AfrBCqpUzJhv2AEB9nAy9r0\u002BnL9K7lB/a8Aud1Gv5sc=","7EkZdAkTmxzGjykK9c\u002BpEib9PgGeDo1s/jVxK65M1P8=","2bFEVHPiWcCWya9reNO\u002BAqncAW3WERS6JmnxU3BOZYo=","CGX\u002B1NvbvxNidkOH8fkujNvTV6egIwWvwy6ZDGStCj8=","H/E7DPwTV93r9rdZNCAHQjnNSTt9yJr5fZzu6lQhWAA=","rxOidqyfVnu8y9OvBYwDM8gVZ3\u002BIEsKkbJzECHplLsk=","QMLTZhagzDwrj1b/P5MTYqmUJU\u002Bq6cc7kaQWBB1KBYk=","Un9Nk3yrPgQHFRoXy5jLTJ7R7mYAyX2GeSrtCIqXC5E=","flFnk3fYwEdbwRmYL\u002B06cYqoQFaRNzZ\u002B9NORBgPlFHw=","bDQSIh/\u002BHKU/QTxM1ElrhOG6x8shfui/6WM3uWqaE6E=","MfaPbAIS9u6sTP2Adk\u002BW\u002BFd80F9BfuxNr35q1UPN2cQ=","rhOnnZ3n30PtdoMQFgkLTVqGnw7hMZyp/CitqWiX4S4=","ajMShBp5HduSGdv9Y9f77ICJA4pPpAVjjZvTe0aurXI="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/obj/Debug/net10.0/rjsmrazor.dswa.cache.json b/obj/Debug/net10.0/rjsmrazor.dswa.cache.json index 56f2960..df9ae0b 100644 --- a/obj/Debug/net10.0/rjsmrazor.dswa.cache.json +++ b/obj/Debug/net10.0/rjsmrazor.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"oEWZHnagBW83RxQSHOHII+WmGDIpscet4eQQc08gJ10=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["vdtHh/zOSUzIXLsY12md/hRdo1uZ8G/3wAHBzgfEumw=","r0CRBbZD7zlCwiC60CcVSLoMaGhK4IFfHnrPuAxmSsI=","QMLTZhagzDwrj1b/P5MTYqmUJU\u002Bq6cc7kaQWBB1KBYk=","Un9Nk3yrPgQHFRoXy5jLTJ7R7mYAyX2GeSrtCIqXC5E=","flFnk3fYwEdbwRmYL\u002B06cYqoQFaRNzZ\u002B9NORBgPlFHw=","bDQSIh/\u002BHKU/QTxM1ElrhOG6x8shfui/6WM3uWqaE6E=","MfaPbAIS9u6sTP2Adk\u002BW\u002BFd80F9BfuxNr35q1UPN2cQ=","rhOnnZ3n30PtdoMQFgkLTVqGnw7hMZyp/CitqWiX4S4=","2\u002BfVYUaSTfkwohMdKtDR0MWDXri0rUdVJBvpYL8\u002Bmu0="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"oEWZHnagBW83RxQSHOHII+WmGDIpscet4eQQc08gJ10=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["vdtHh/zOSUzIXLsY12md/hRdo1uZ8G/3wAHBzgfEumw=","Dk3jsy\u002BHNDsFnpDAXEvqr0DE5QzMsv07/7VUXD3w9W8=","Wg33Et8yFcu2zn6Pa6EbqJ4Wd9Ylvtny/w98VI1JWIU=","KbuoQ4jDMnsw4hJVn9i6DmW2Nz5CxEDJvwwKd4TxCJk=","Z4r6\u002BGVAPN4NDXk4KvDa6997WlSoz\u002B6H0kpZ3q0V31A=","/m60RmZz2fhgc1KOpLbKpGCSUB4kqYElc3KzVbKE2lg=","m7w7W8zTzxeeZFyPitiWIFjpblzXTPJDz6o\u002BHZK7CVU=","phsbo\u002BKjgk3WcMMAvJVBJyGlWoH1MNwBGaLeIlvRGrk=","ZqdGPeUo2iPpvof5MH6FkcnChkz6C9GSzHezqBS9/10=","LGn\u002BTs2AlBPTvjNwZ7k8Aq0m3gI5AGZbn6HD/H0bR1c=","vEKhpAYE\u002BzMd3RKVoVccKQiaF5iCkNnB5t2ISTovDhk=","bsqFDF2DGBah6dbUGbY6mc5S32so0O3frTrEXrDBidk=","Bx0REq5xuplRN8RWJtDcBJ8qwVa\u002B3RprzPVh1gn2QKo=","e9YJzJs3bC5IxyaJieTq8\u002Buchd3vMMHgZR4QyapyaF4=","X8da3N3GLR2OXFzpxibmFCdKvwM0f5k2SwK3qPrrCmU=","s\u002BnzHzh6UKBOESaLQiq5UrkABYvP55C0PeG4596YAeo=","Zn4P4tCDx2xQ\u002BW4Punev1c0e14KnGEFZoaM3coU9Oyw=","2J5nW1mHMcQQ7BCXERoyT9EUT74CLIeUFBxqiEvQ0\u002B0=","lsayflr7ePSw3nn5pzsWXcSDcHCt3v\u002B8d2EXn0n3hoU=","TT9IUobP/5FnZYKfRiuNjT40XhIuJvEt38c32/FOATI=","ubM3BdmdyRAjd6pk\u002BHclJ/7Amy7akudm5A10gL1gjWw=","o3g2jNh9WOAqOF1O1J/QXxNFEs7vzSCPc7vl2W2Eg5Y=","sVmkbfD6xp4OTJU/LaUA6P/uxG65mCYXMW6xIV6MN48=","4IauJF4oeE1Noflm6hfom3iWIU96zXcG3Y4jwbQd7LI=","atk208TT1Wna3CCZSQ2EhkO2tU\u002BLB1SuqxSQs8MgUt4=","91fYA5enOmHQuf1tX9oXb2HCELocONh0MRud0V7SRpg=","rrVLzPx2cjWgcilaF2eqL44JkL6c26quM\u002B9vMiXjJgU=","AwjwFpokBzy/E/hxSPMuLUFONk4Jwn/qQXlyLDZpalw=","yzeU43IYP/wkf/R\u002BAxPtD3ObkRV\u002Bi3wCqwRcdug1nqE=","eHhaDYbCiAVjvLZ7jX6KaLVrZuB652l6WU\u002Bj097Q/KM=","pRJnsSJXRlM6YTPVxgIyzL\u002BGHSkbS31//OKkSyw\u002Ba3k=","Pd2QcrYRM6PoaZy00Ut9oSombDHplR6NcBFdU3v9x3M=","q8ajtc/4veJd5VcIVoEj1P8KpQFjKbezXZJHKsJsJ58=","H7w7IVHV1blGB66YKjJjYOqr8L4hQUAlmWdXTvMCkE0=","p7ZzL0tA6X7hgdesmkPzC\u002BMpsKyxzAYPehKHPZpUUTk=","zUW9Z3rxL6ZnerUdf0NBDKa94RJXN7z2NV6CjiD8muU=","L1v/GbPaWkITIzaEKWp3UCr607opQVx2qA6naw/L6N8=","msmngHYRHJkuXsjRP0XljcPE93hmxtRNGr5ZwTsctd4=","DELXdaQdlPtNXr\u002BrabQjiVJAeqo9LjU2xmrtahy8mKo=","rWIVl8epbka81lIcO3AKQy4w33ceOwQT2QeMk\u002B6ij98=","Hqi4yNphcLPLrj58hjCfXdWzu8dxabXZjQPFo\u002B\u002BP4JI=","ApYnA/j38MrMv4T\u002B2ADNAPT0JraxMDh8RP6i2qIPFBA=","SAL\u002BYrSupSDTm0Zz5fv7XdQz7d2NQ6jz\u002BvuJRl1wIXs=","YVvfWQtzbjO0LKeoqqyRhgkzZsbTp4DEFvRb3OoavdM=","iN1Ih97am65koTUFe0\u002BczXZBA9qF/bsq07lNVxPIJJ0=","q1OrWBqLfMRp7HP0hZCNWgfRaKA6Qw4\u002BkygV75N/G0U=","BPDzHamGTP15tIilvwiguLMJiERSBeQXUlUPf5TNJdg=","Y6VjYVU1BuBF2nL3Wo0h0KofFd\u002B/PROMNutY/HeHfG0=","HAGnG0vAUkQoVpj3KmmyWaeqGvX5raZzkTg4lgJl1EA=","SUz\u002B39TzMnrIGs4iRsMUSjY/reCZIvWEQ4L2KgOgV8U=","Ru0JjtUetcVWj/sLUi96WG8SR9BZ3o1b39SWpgI\u002BrgU=","h1qZW31sNXwbQSLK\u002Be091il6T52u1IeAaVdEFgWurU8=","YA03W6C9vGyQAnQsb5sTsrbZ57H7qdMmk4hOi6HNMlI=","nslXCM6T1fD/m3MdfqareFDcf9yuWj8yXmFfhTZIUso=","KQw13/e3x9B8wwrECqg1FJVMHuGkg4X0zzRZ1Ft//wk=","oZZ9gw8Xu0ImrWYLWisekRrt8pj70CzUEsXir3ToPUg=","vEgQrDpbnaEEqlRr9cVHvermY6Ufys56CNcGKFHqA/E=","HRo96sJdprS/DQuCohFj2Dg688/MNGGg4XselS1HlXs=","gW66luebHgv7ZGJKWOpcyg7VqZykwx\u002BNPg2fJAcN6PA=","j/lDqeyFuI4\u002BIIfYhTQTY5eXoatVII0JZ2XzFSf5eqg=","8plOue6cCDL7IYKvCOa/70ES3mKgmgwu8D/ptvCQ\u002Bp8=","mXLvrNI3BLdeGoOfgYetjU5dE6p/KFYR/I/OIdX\u002Bqd4=","ry4\u002BRYKOZclrBMw3LcqkJ6CY90OM0v1AXlw49vmkAmM=","gFwyh4HVsVXcOzYLuxSGSZVIMDd\u002BsDZc2v2LClngkcc=","ddNOamm5\u002BkCo8XARDYqMgwaRMR3rQJBH2L7RYewh3\u002B8=","vOA8raIIqshcvMSq0DQp4u\u002BrQARfVFUuoDBnY3S0AlQ=","5\u002BJCDEp2ZY7VYwhjuaiCz3EJ0PdqjDBNdnIOJqolgGs=","ppDPoYW5PkIatn38a8kFIAmq5V25R/jMgaPvLifwR4k=","XEqP4NjPk9NMApOEnFNcAiH0QEb8cE1nrlOC9uKsICk=","V8f4xVCIpB1\u002Bn7KlKv9JBE/I4O0kyj\u002BDyl17UjCww7o=","qFUjEXtXGV7LlbFqGJcMpw8DUGVbp4PSKpYwAt8t1Og=","wSqcBylLry7z72LKJlElMvLFlukX1HhbMaYXq0uODtc=","08qVljQjjo7A8HMuCI6klHx4rrZXLy4jaicEsq8KBu0=","pgivgEFvzRRcVAe\u002B7Yo6T/T\u002BLwjJPygNX1D20CTi1gU=","FP/lZPAriWn\u002Bl/31TtvzdAeiVl7d4nmNeycrrEuDeh4=","P\u002B3eTkBqrjO0umcCYpJJAmgYask4fkM9b8uCPU8tqvM=","ysE7XwKMb9OiWXdjq6MFzQZQ4bvAdj6R4LQISa9JO2c=","\u002BZ5OwDIqmznZPoMmxIkST7RqdQvCI91M2qNGQvN2fuM=","uojdN41adPpaYPwL1yTvftYF\u002BedskvUhsDru7sZsZnE=","m4d76Fdxk5seFCbzdLoTq9yORCMly7FJDnydkQDcPDo=","JpOMe7CWIFFojKrebfKGUCWVUoPoDUC4dkV8vYr\u002BzW0=","jPTiCvAZ/oi0GTmCyu8Br4O2AZ2GMkCDF6lyc5frBJA=","FQ0gyXEk/xdJ\u002B/1anr7ru\u002BP5Bg0WKIi0BZL4uVaBFuQ=","an6GQb7UdbYyEBqlE8J2XCu44C3\u002B7JBSvwizV8l0Xnw=","Bnn9gVT9BFj/en5frkJtTGjatFRNBqZdM85teDbUpp0=","mWcReXh\u002BYPUaDLQSZw7XM\u002BY9Pl1xGVFbbJc0mOWF2yA=","p2uT6mCzPrreCub3aRtRS83zXGtC47cAlswZ/fu4fSM=","hjPncBEzLcq\u002BWwL5r\u002B3buoSjr9CSlpMUaRHZQrh1A6U=","SS44288xoupJ92CceY5EYJTmnRGWJ4mtS/y40lQ1QTc=","dB91N/2kOPdxGh3PIlTgJMTtGNSOvNXtFjFQxn8CHiM=","Ip551/U2XR5bZznmjPDii0SCmaZ67u5rT0oDIYCY5ls=","gz47MkvqbZWcBshLKJeuvyoCslvtnoIucpRiHSFEPyk=","Y483Ph7YAAsbUMAOs15d6MowtryAUV3VC4OLKnEVNkE=","BGoo0OiISiJcp\u002BI8Yp5EEUqtC7N81D\u002BfSSwhPC\u002BJ9eY=","N/0XqSsgY55UQHWxqE/I9G/8SxjO\u002BASHdq2KkEVgqLY=","KkQYAPrIxSqhg68zAXCkBZMVhbwsZ\u002BuD0TT4/luUV8M=","veKHkWTx4AH6DaLc7p0gEYvNhgRn23vfUwXOkbV/pf4=","hW8fxvmRC0qpBORpoge2/xEHDo6aLP49\u002BRr8D0Qk3XY=","cwwZhswCN7GbS0MGN47WoKwXiYAFUxygIFL/LizK1Q4=","SjWBohOw85bhkuZUG3XzckEjFPLur2\u002BKfJu3oNF4ZXM=","jipY0QNqoS5cixuUHAuKCmkYxXd\u002B/78PxgYZ9fRKBoE=","T4NMN4f00LjL/5m8u\u002BbCum2w5poqUbG0uj\u002BRO3yc07g=","lxihuOX1rC0Ql5h4wUTkfQRh8NpjXgZOTRjBysv66h4=","VAW5s9v7eXp8T8/6284wCvrvCd2NdJDrUydZ5GpoB7g=","qmoVxo3esH9E0GquZyxZP\u002B9Spb9m2m1V53m05p5uPpg=","F7sA7swBgNhttpyXMWvIHSrRFqD0HjlcHq30PiYy1q4=","1V8cNUwsg1BiMf6GpO2VNLiZxwxOcIhRtq/saTloTqk=","jngCSqdr/xgbb4VbX5HmJyHyrfF0GrSnrpIjb7Ckd00=","d5hPvNpdZ20OoM0Cwl0MJhFRB5I/nPLNz82TWig6f/k=","iXqQj8kc8tEMWZmhfOJyJut0KQYyj5d0uAnmKghuHrw=","dlTcgFLe8qXysiFvIpDEZuCHuRqxpPgddzVkLnwQicI=","fS2iYNE9SA4uHphzAtEsUUFXepDFypQ0Ril3t2Hoh7g=","AT/blW2cJbt\u002BfiWcPQMQpJcqNFXQa0bGfP\u002BHUM1kL54=","ok7QFVhd70t4isjrHEelH\u002B1BY37AmWP7qA7EAwG/PPk=","A/twxiiHrtlWaEJFuPBJKZDfXZ5wpRDT/pO3EL5LNy8=","KVtRjT33BPrAyj4Fw2fLOcuj1aJCr4dL1ZWnjDdFSlM=","Lom\u002BVziOiO42zMxUpawwZRQbcN/xSMGDWLfDNVTfpSw=","sgG04T0HMM9i\u002BMRB8valL5bR4EmYWP9HgV/bfqepo9s=","vtfx1MaXWB\u002Bv1HAAX2WzcWLv9QyvWrZJW1A2055/dk8=","kefD5EeyxCZZAcl6folD\u002B7u2rT2kkISue4CSoF6J9C4=","rYkJKsc0T2JOCQLnt8GPUYhzzfqwkRYDEAyPjkL46U8=","w/XozXUd5qMPqtMuCaBeh1k2typVlerzjJ9kb9CKybs=","uy4J0ZhwP7dH\u002Bkp68VBu/40eBGY1p7ad4CgbQ9Kvhhw=","kFRhnNu1\u002BVBeZhi\u002BF8Y4W0d1FHh8kBlTcug3Ga9\u002BoW0=","MLAMzXpxhgeI5JdySDYk9YntsypjBIa1m\u002BI/2MmMSMU=","dx/MdyE5BjPEsQU2Z75bgQQCK7PrmhwdeBJ4jfkegKs=","h\u002BAad/KYhehtlzQ96ZdFTw97viCUiaA7g1MVb\u002BNFsCE=","AwTSfROG7ZZUCPpFhIRCsFHK\u002BkwMjCFunY3243b07i0=","flOxnn1OQqD5l28M2rKBqT8rUneszl18190EqM1mVkg=","zwU3NguVcHCLFI4yiWySAvIcAiBxpjRYHMpMILogxAM=","H9aq4S97Gok0pMpudZjkv7wVKHU/sS6TyWHCnkjJOL4=","Dc2QSV4OTIajvIG6pe2qYZyVJ1WQcPHrPtN9TcDgQmo=","uO0sQpKDo5uH09SM7VjYLUUat0BWOsxli2jsuGZghD8=","D585tyD233J9UwRzFkysWiZxetSuSyji1M\u002B6X\u002Bn0mzc=","T3eYdQDumwCK/5WCqaDU4D/Ez\u002BPrtf\u002BjuR1HykqL4Ho=","2NYAwrCF\u002BjeLZHpnDY8IQ7N1QEwz\u002BR1De5dONGP4br0=","5s8rj0rWToL6bPbCtxIRjik2YDEZmgk8gis8HgSyGR4=","rBf6sCW0rs2bzf75K884XM8fYA9orFDutH5H2XVHk2E=","UxhyMsp038jyjrGK1kB7l5WIQg\u002B3SzU0KSZqF1HCsYI=","ROUjpkACO1uAEhKqo5MlX7/DvfX3fzcn7zMBE9iosG8=","MosrLDJLpdQDPSbGd8AkXahdf0t9S0HE7HYpjXI6NdI=","y9yiw6st3Lke\u002BJLypvU7vaBcMGmfkjMdfaa3tQD\u002BnEk=","2w6nOBTN9GYt5py71xBdKchbrkf5YHk9phehe21wtag=","Vq852Ou648JNjTWzdEWMkX4u/CbYNxyP0Vl/kiXxsS0=","AfrBCqpUzJhv2AEB9nAy9r0\u002BnL9K7lB/a8Aud1Gv5sc=","7EkZdAkTmxzGjykK9c\u002BpEib9PgGeDo1s/jVxK65M1P8=","2bFEVHPiWcCWya9reNO\u002BAqncAW3WERS6JmnxU3BOZYo=","CGX\u002B1NvbvxNidkOH8fkujNvTV6egIwWvwy6ZDGStCj8=","H/E7DPwTV93r9rdZNCAHQjnNSTt9yJr5fZzu6lQhWAA=","rxOidqyfVnu8y9OvBYwDM8gVZ3\u002BIEsKkbJzECHplLsk=","QMLTZhagzDwrj1b/P5MTYqmUJU\u002Bq6cc7kaQWBB1KBYk=","Un9Nk3yrPgQHFRoXy5jLTJ7R7mYAyX2GeSrtCIqXC5E=","flFnk3fYwEdbwRmYL\u002B06cYqoQFaRNzZ\u002B9NORBgPlFHw=","bDQSIh/\u002BHKU/QTxM1ElrhOG6x8shfui/6WM3uWqaE6E=","MfaPbAIS9u6sTP2Adk\u002BW\u002BFd80F9BfuxNr35q1UPN2cQ=","rhOnnZ3n30PtdoMQFgkLTVqGnw7hMZyp/CitqWiX4S4=","ajMShBp5HduSGdv9Y9f77ICJA4pPpAVjjZvTe0aurXI="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/obj/Debug/net10.0/rpswa.dswa.cache.json b/obj/Debug/net10.0/rpswa.dswa.cache.json index eb69a58..f6fb7c7 100644 --- a/obj/Debug/net10.0/rpswa.dswa.cache.json +++ b/obj/Debug/net10.0/rpswa.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"SPJqT2LbTU7DC+nmzNGyx1ZmFtOV+aXZpHUist0ngzg=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["vdtHh/zOSUzIXLsY12md/hRdo1uZ8G/3wAHBzgfEumw=","r0CRBbZD7zlCwiC60CcVSLoMaGhK4IFfHnrPuAxmSsI="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"SPJqT2LbTU7DC+nmzNGyx1ZmFtOV+aXZpHUist0ngzg=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["vdtHh/zOSUzIXLsY12md/hRdo1uZ8G/3wAHBzgfEumw=","Dk3jsy\u002BHNDsFnpDAXEvqr0DE5QzMsv07/7VUXD3w9W8=","Wg33Et8yFcu2zn6Pa6EbqJ4Wd9Ylvtny/w98VI1JWIU=","KbuoQ4jDMnsw4hJVn9i6DmW2Nz5CxEDJvwwKd4TxCJk=","Z4r6\u002BGVAPN4NDXk4KvDa6997WlSoz\u002B6H0kpZ3q0V31A=","/m60RmZz2fhgc1KOpLbKpGCSUB4kqYElc3KzVbKE2lg=","m7w7W8zTzxeeZFyPitiWIFjpblzXTPJDz6o\u002BHZK7CVU="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file