/// <summary> /// Basic test of the use of DbContext.Database.BeginTransaction() /// and use of SaveChanges() within the transaction. It interacts /// directly with the DbContext. /// </summary> /// <returns>True if both updates are successful, otherwise False</returns> public bool Execute() { var context = new SiteMonitorDbDataContext(); var settings1 = new Settings() { Id = 0, EmailAccount = "*****@*****.**", SlowResponseTime = 1000, ScanFrequency = FrequencyEnum.Daily, ArchiveRunDetails = new List <ArchiveDetail>() }; var settings2 = new Settings() { Id = 2, EmailAccount = "*****@*****.**", SlowResponseTime = 1000, ScanFrequency = FrequencyEnum.Daily, ArchiveRunDetails = null }; var success = false; using (var txn = context.Database.BeginTransaction()) { try { // Insert settings1 record context.MonitorSettings.Add(settings1); var res1 = context.SaveChanges(); success = (res1 > 0); if (success) { // Insert settings2 record if first was ok context.MonitorSettings.Add(settings2); var res2 = context.SaveChanges(); success = false; //res2 > 0; } if (success) { txn.Commit(); } else { txn.Rollback(); } } catch { txn.Rollback(); } } return(success); }
/// <summary> /// Create instance of MemberService /// </summary> /// <returns>Instance of MemberService</returns> public IMemberService Create() { // Infrastructure; // :EF DbContext var context = new SiteMonitorDbDataContext(); // Infrastructure: RepositoryFactory IRepositoryFactory <SiteMonitorDbDataContext> repositoryFactory = new SiteMonitorRepositoryFactory(context); // Unit of Work IMemberService memberService = new MemberService(context, repositoryFactory); return(memberService); }
/// <summary> /// Create instance of SettingsService /// </summary> /// <returns>Instance of SettingsService</returns> public ISettingsService Create() { // Infrastructure; // :EF DbContext var context = new SiteMonitorDbDataContext(); // Infrastructure: RepositoryFactory SiteMonitorSettingsRepository repository = new SiteMonitorSettingsRepository(context); // Unit of Work ISettingsService settingsService = new SettingsService(context, new SiteMonitorRepositoryFactory(context)); return(settingsService); }
/// <summary> /// Create instance of SiteMonitorArchiveService /// </summary> /// <returns>Instance of SiteMonitorArchiveService</returns> public ISiteMonitorArchiveService Create() { // Infrastructure; // :EF DbContext var context = new SiteMonitorDbDataContext(); // Infrastructure: RepositoryFactory IRepositoryFactory <SiteMonitorDbDataContext> repositoryFactory = new SiteMonitorRepositoryFactory(context); // Unit of Work ISiteMonitorService siteMonitorService = new SiteMonitorService(context, repositoryFactory); // Domain: Mappers IMapper <TestResult, ArchiveTestResult> testResultMapper = new MapTestResultToArchiveTestResult(); IMapper <ScanResult, ArchiveScanResult> scanResultMapper = new MapScanResultToArchiveScanResult(testResultMapper); // Domain: Archive service ISiteMonitorArchiveService siteMonitorArchiveService = new SiteMonitorArchiveService(siteMonitorService, scanResultMapper); return(siteMonitorArchiveService); }