private static List <ProfilePipeline> LoadProfilePipelines(IEnumerable <XElement> groupPipelineNodes) { var profilePipelines = new List <ProfilePipeline>(); foreach (var groupPipelineNode in groupPipelineNodes) { var profilePipeline = new ProfilePipeline(); bool hideBuildInfo = false; var hideBuildInfoAttribute = groupPipelineNode.Attribute("hideBuildInfo"); if (hideBuildInfoAttribute != null) { bool.TryParse(hideBuildInfoAttribute.Value, out hideBuildInfo); } profilePipeline.HideBuildInfo = hideBuildInfo; var aliasAttribute = groupPipelineNode.Attribute("alias"); if (aliasAttribute != null) { profilePipeline.Alias = aliasAttribute.Value; } profilePipeline.Name = groupPipelineNode.Value; profilePipelines.Add(profilePipeline); } return(profilePipelines); }
public IActionResult Post([FromBody] PipelineViewModel value) { var _id = Guid.Parse(userManager.GetUserId(User)); Profile profile = dataCenterContext.Profiles.Where(x => x.Id == _id).First(); Algorithm algorithm = dataCenterContext.Algorithms.Find(Guid.Parse(value.AlgorithmId)); CompleteDataSet completeDataSet = dataCenterContext.CompleteDataSets.Find(Guid.Parse(value.DataSetId)); Pipeline pipeline = new Pipeline { Algorithm = algorithm, Id = Guid.NewGuid(), Name = value.Name, Description = value.Description, NumberOfContainers = value.NumberOfContainers, GetCompleteDataSet = completeDataSet }; List <PipelineParameter> parameters = new List <PipelineParameter>(); foreach (var parameter in value.Parameters) { AlgorithmParameters algorithmParameter = dataCenterContext.AlgorithmParameters.Find(Guid.Parse(parameter.Id)); parameters.Add(new PipelineParameter { Id = Guid.NewGuid(), Pipeline = pipeline, Value = parameter.Value, AlgorithmParameter = algorithmParameter }); } pipeline.PipelineParameters = parameters; ProfilePipeline profilePipeline = new ProfilePipeline { Pipeline = pipeline, Profile = profile }; dataCenterContext.ProfilePipeline.Add(profilePipeline); dataCenterContext.SaveChanges(); RabbitMqService rabbitMqService = new RabbitMqService(); rabbitMqService.SendMessage(pipeline.Id + "~" + algorithm.MasterImage); for (int i = 0; i < pipeline.NumberOfContainers - 1; i++) { rabbitMqService.SendMessage(pipeline.Id + "~" + algorithm.SlaveImage); } return(Ok()); }