public List <GeneratorStageForeign> ExtractGeneratorStagesForeign(string oracleConnString) { using (OracleConnection con = new OracleConnection(oracleConnString)) { using (OracleCommand cmd = con.CreateCommand()) { try { con.Open(); cmd.BindByName = true; cmd.CommandText = "select ID, STAGE_NAME, FK_GENERATING_STATION from STAGE where :id=1 and STAGE_NAME IS NOT NULL and ID IS NOT NULL and FK_GENERATING_STATION IS NOT NULL"; // Assign id parameter OracleParameter id = new OracleParameter("id", 1); cmd.Parameters.Add(id); //Execute the command and use DataReader to display the data OracleDataReader reader = cmd.ExecuteReader(); List <GeneratorStageForeign> genStagesForeign = new List <GeneratorStageForeign>(); while (reader.Read()) { GeneratorStageForeign genStageForeign = new GeneratorStageForeign(); genStageForeign.WebUatId = reader.GetInt32(0); genStageForeign.Name = reader.GetString(1); genStageForeign.GeneratingStationWebUatId = reader.GetInt32(2); genStagesForeign.Add(genStageForeign); } reader.Dispose(); return(genStagesForeign); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } } } }
public async Task <GeneratorStage> LoadSingleAsync(WRLDCWarehouseDbContext _context, ILogger _log, GeneratorStageForeign genStageForeign, EntityWriteOption opt) { // check if entity already exists GeneratorStage existingGenStage = await _context.GeneratorStages.SingleOrDefaultAsync(r => r.WebUatId == genStageForeign.WebUatId); // check if we should not modify existing entities if (opt == EntityWriteOption.DontReplace && existingGenStage != null) { return(existingGenStage); } // find the GeneratingStation of the state via the region WebUatId int generatingStationWebUatId = genStageForeign.GeneratingStationWebUatId; GeneratingStation genStation = await _context.GeneratingStations.SingleOrDefaultAsync(r => r.WebUatId == generatingStationWebUatId); // if genStation doesnot exist, skip the import. Ideally, there should not be such case if (genStation == null) { _log.LogCritical($"Could not find GeneratingStation with WebUatId {generatingStationWebUatId} in warehouse while creating GeneratorStage with WebUat Id {genStageForeign.WebUatId} and name {genStageForeign.Name}"); return(null); } // check if we have to replace the entity completely if (opt == EntityWriteOption.Replace && existingGenStage != null) { _context.GeneratorStages.Remove(existingGenStage); } // if entity is not present, then insert or check if we have to replace the entity completely if (existingGenStage == null || (opt == EntityWriteOption.Replace && existingGenStage != null)) { GeneratorStage newGenStage = new GeneratorStage(); newGenStage.Name = genStageForeign.Name; newGenStage.GeneratingStationId = genStation.GeneratingStationId; newGenStage.WebUatId = genStageForeign.WebUatId; _context.GeneratorStages.Add(newGenStage); await _context.SaveChangesAsync(); return(newGenStage); } // check if we have to modify the entity if (opt == EntityWriteOption.Modify && existingGenStage != null) { existingGenStage.Name = genStageForeign.Name; existingGenStage.GeneratingStationId = genStation.GeneratingStationId; await _context.SaveChangesAsync(); return(existingGenStage); } return(null); }