private static void BindSessionToken(string token, BackOfficeDBContext dbContextNet) { // dbContextNet.Database.ExecuteSqlCommand($"EXEC sp_bindsession '{token}'"); var command = dbContextNet.Database.GetDbConnection().CreateCommand(); command.CommandText = $"EXEC sp_bindsession '{token}'"; dbContextNet.Database.OpenConnection(); var result = command.ExecuteNonQuery(); }
private async static Task AsyncTask(BackOfficeDBContext dbContextNet) { dbContextNet.Teacher.Add(new Teacher() { Name = "backoffice nested from task" }); // dbContextNet.SaveChanges(); // var teas3 = dbContextNet.Teacher.ToList(); //inner2Scope.RollBack(dbContextNet); await dbContextNet.SaveChangesAsync(); // inner2Scope.Complete(); await Task.Delay(500); }
public async Task <bool> Logic(DbContext generalDbContextNet) { BackOfficeDBContext dbContextNet = (BackOfficeDBContext)generalDbContextNet; //BackOfficeDBContext dbContextNet = (BackOfficeDBContext)generalDbContextNet; try { using (TransactionScope innerScope1 = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromMinutes(5), TransactionScopeAsyncFlowOption.Enabled)) { dbContextNet.Teacher.Add(new Teacher() { Name = "backoffice root1" }); dbContextNet.BulkSaveChanges(); await AsyncTask(dbContextNet); throw new Exception(); innerScope1.Complete(); // dbContextNet.RollBack(); } //using (TransactionScope innerScope1 = new TransactionScope()) //{ // var x5 = Transaction.Current?.TransactionInformation?.LocalIdentifier; // BackOfficeDBContext dbContextNet1 = new BackOfficeDBContext(); // dbContextNet1.Teacher.Add(new Teacher() { Name = "Teacher root bulk save changes" }); // dbContextNet1.BulkSaveChanges(); // innerScope1.Complete(); //} return(true); } catch (Exception ex) { // ex handling throw ex; var x = ""; // dbContextNet.Database.ExecuteSqlRaw($"EXEC sp_bindsession NULL"); return(false); // throw; } }
private static void StarteDTC() { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromMinutes(5), TransactionScopeAsyncFlowOption.Enabled)) { // var token = TransactionInterop.GetTransmitterPropagationToken(Transaction.Current); BackOfficeDBContext backOfficeDb = new BackOfficeDBContext(); string sessionToken = GetSessionTokenFromDbContext(backOfficeDb); backOfficeDb.Teacher.Add(new Teacher() { Name = "t from back office " }); var result = backOfficeDb.SaveChanges(); var callingMedical = BackOffice.callingMedical(sessionToken).Result; var financialResult = CallingFinancial(sessionToken).Result; // Task.WaitAll(callingMedical, financialResult); scope.Complete(); } var x = ""; }