public static ShortSaleSchemaDataContext GetOrCreateContext(String connectionString) { if(context == null) { context = CreateNewContext(connectionString); } return context; }
public static ShortSaleSchemaDataContext CreateNewContext(String connectionString) { if (String.IsNullOrEmpty(connectionString)) { throw new ApplicationException( "Cannot create a PersistentSession Context without first setting the ConnectionString"); } context = new ShortSaleSchemaDataContext(connectionString); return context; }
private void run(String[] args) { String connectionString = ConfigurationManager.ConnectionStrings["EnterpriseDB"].ConnectionString; db = ShortSaleSchemaSession.GetOrCreateContext(connectionString); DateTime referenceDate = args.Length == 0 ? DateTime.Today : Convert.ToDateTime(args[0]); var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); partyDirectory = config.AppSettings.Settings["PartyDirectory"].Value; processedDirectory = partyDirectory + "\\processed\\"; DirectoryInfo dirInfo = new DirectoryInfo(partyDirectory); csvFiles = dirInfo.GetFiles("*.csv"); if (!Directory.Exists(processedDirectory)) { Directory.CreateDirectory(processedDirectory); } String partySectionGroup = "partyGroup"; var configGroup = config.GetSectionGroup(partySectionGroup); if(configGroup == null) { throw new ApplicationException("App Config eror: Missing PartyGroup section group."); } initializeLogger(partyDirectory); log.Info("Starting loader"); foreach (ConfigurationSection configSection in configGroup.Sections) { String party = configSection.SectionInformation.Name; var partySettings = ConfigurationManager.GetSection( partySectionGroup + "/" + party) as NameValueCollection; if(partySettings == null) { throw new ApplicationException("App Config error: Missing custom party configuration."); } try { this.loadPartyLimits(party, partySettings, referenceDate); } catch (Exception ex) { String error = String.Format("Error loading {0} data.\n{1}\n", party, ex.Message); log.Error(error); //limitaiton in LINQ to SQL. Must create new DB context in order to purge exceptions. db = ShortSaleSchemaSession.CreateNewContext(connectionString); } } try { //clean up step. file created because log4net configuration requires default file name //in app.config. We override this file name above. File.Delete("log4net.temp"); } catch (Exception ex) { log.Warn("Failed to delete log4net.temp file from program directory"); } log.Info("Ending loader"); }