public async Task <(Project, Pipeline)> FindProjectByDataProviderInfoAsync(DataProviderPipelineInfo pipelineInfo) { int pipeIdINT = 0; if (!int.TryParse(pipelineInfo.PipelineId, out pipeIdINT)) { return(null, null); } var project = await Context.Set <Project>().FirstOrDefaultAsync(p => p.ApiProjectId == pipelineInfo.ProjectId && p.DataProviderName == pipelineInfo.ProviderName); var pipe = project.Pipelines.FirstOrDefault(j => j.DataProviderPipelineId == pipeIdINT); return(project, pipe); }
private async Task UpdatePipeline(DataProviderPipelineInfo info, ICiDataProvider dataProvider) { var found = await _projectRepository.FindProjectByDataProviderInfoAsync(info); if (found.Item1 == null) { return; } var project = found.Item1; var pipeline = found.Item2; if (pipeline != null) { var updatetedPipeline = await dataProvider.FetchPipelineById(project.ApiHostUrl, project.ApiAuthenticationToken, project.ApiProjectId, pipeline.DataProviderPipelineId); pipeline.Status = updatetedPipeline.Status; //pipeline.Stages = updatetedPipeline.Stages; await UpdatePipelineStages(pipeline, updatetedPipeline.Stages); pipeline.LastUpdate = DateTime.Now; //await _pipelineRepository.UpdateAsync(pipeline, pipeline.Id); await _pipelineRepository.SaveAsync(); //pipeline.Status = info.Status; //await _pipelineRepository.SaveAsync(); } else { int pipeIdINT = 0; if (!int.TryParse(info.PipelineId, out pipeIdINT)) { return; } var updatetedPipeline = await dataProvider.FetchPipelineById(project.ApiHostUrl, project.ApiAuthenticationToken, project.ApiProjectId, pipeIdINT); updatetedPipeline.LastUpdate = DateTime.Now; await InsertPipelineToDB(updatetedPipeline, project); } }