public IActionResult Put(Guid id, [FromBody] DataChannelDescriptor value) { if (ModelState.IsValid == false) { return(BadRequest(ModelState)); } try { var originalDataChannelDescriptor = (DataChannelDescriptor)_dbContext.DataChannelDescriptors .Include(dcd => dcd.DataSourceManifest.DataSourceManifestId) .Include(dcd => dcd.DataConsumerManifest.DataConsumerManifestId) .FirstOrDefault(o => o.DataChannelDescriptorId == id); DataSourceManifest dataSourceManifest = (from dsm in _dbContext.DataSourceManifests where dsm.DataSourceManifestId == value.DataSourceManifest.DataSourceManifestId select dsm).FirstOrDefault(); DataConsumerManifest dataConsumerManifest = (from dcm in _dbContext.DataConsumerManifests where dcm.DataConsumerManifestId == value.DataConsumerManifest.DataConsumerManifestId select dcm).SingleOrDefault(); if (dataSourceManifest != null) { originalDataChannelDescriptor.DataSourceManifest = dataSourceManifest; } if (dataConsumerManifest != null) { originalDataChannelDescriptor.DataConsumerManifest = dataConsumerManifest; } _dbContext.Entry(originalDataChannelDescriptor).CurrentValues.SetValues(value); _dbContext.SaveChanges(); return(Ok(_dbContext.Entry(originalDataChannelDescriptor).GetDatabaseValues())); } catch (Exception ex) { _logger.LogError(ex.StackTrace); return(BadRequest()); } }
public IActionResult Post([FromBody] DataConsumerManifest value) { if (ModelState.IsValid == false) { return(BadRequest(ModelState)); } try { if (value.DataSourceDefinitions != null) { //get from the database datasourcedefinitions List <DataSourceDefinition> dataSourceDefinitions = new List <DataSourceDefinition>(); foreach (DataSourceDefinition requestDataSourceDefinition in value.DataSourceDefinitions) { DataSourceDefinition dataSourceDefinition = _dbContext.DataSourceDefinitions.Find(requestDataSourceDefinition.DataSourceDefinitionId); if (dataSourceDefinition != null) { dataSourceDefinitions.Add(dataSourceDefinition); } } value.DataSourceDefinitions = dataSourceDefinitions; } _dbContext.DataConsumerManifests.Add(value); _dbContext.SaveChanges(); return(Created("registry-repo/DataConsumerManifest", _dbContext.Entry(value).GetDatabaseValues())); } catch (Exception e) { _logger.LogError(e.StackTrace); return(BadRequest()); } }
public IActionResult Put(Guid id, [FromBody] DataConsumerManifest value) { if (ModelState.IsValid == false) { return(BadRequest(ModelState)); } try { var originalDataConsumerManifest = (DataConsumerManifest)_dbContext.DataConsumerManifests .Include(dsm => dsm.DataSourceDefinitions) .FirstOrDefault(o => o.DataConsumerManifestId == id); //remove all child elements //_dbContext.Remove(originalDataSourceManifest.DataSourceDefinitionParameters); //_dbContext.Remove(originalDataSourceManifest.DataSourceDefinition); //originalDataSourceManifest.DataConDefinitionParameters.Parameters = value.DataSourceDefinitionParameters.Parameters; ////find if the DataSourceDefinition has changed //var dsdorig = _dbContext.DataSourceDefinitions.Find(value.DataSourceManifestId); //if (dsdorig != null) //{ // _dbContext.Remove(originalDataSourceManifest.DataSourceDefinition); // originalDataSourceManifest.DataSourceDefinition = dsdorig; //} ////originalDataSourceManifest.DataSourceDefinition = value.DataSourceDefinition; if (originalDataConsumerManifest.DataSourceDefinitions.All(value.DataSourceDefinitions.Contains) && originalDataConsumerManifest.DataSourceDefinitions.Count == value.DataSourceDefinitions.Count) { //no need to do anything } else { //use values form value //get from the database datasourcedefinitions List <DataSourceDefinition> dataSourceDefinitions = new List <DataSourceDefinition>(); foreach (DataSourceDefinition requestDataSourceDefinition in value.DataSourceDefinitions) { DataSourceDefinition dataSourceDefinition = _dbContext.DataSourceDefinitions.Find(requestDataSourceDefinition.DataSourceDefinitionId); if (dataSourceDefinition != null) { dataSourceDefinitions.Add(dataSourceDefinition); } } value.DataSourceDefinitions = dataSourceDefinitions; } _dbContext.Entry(originalDataConsumerManifest).CurrentValues.SetValues(value); _dbContext.SaveChanges(); return(Ok(value)); } catch (Exception ex) { _logger.LogError(ex.StackTrace); return(BadRequest()); } }