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 = "";
        }