Exemple #1
0
        public List <NavUserRoleViewModel> GetRoleNavs()
        {
            using (SiocCmsAccountContext context = new SiocCmsAccountContext())
            {
                var query = context.AspNetRoles
                            .Include(cp => cp.AspNetUserRoles)
                            .Select(p => new NavUserRoleViewModel()
                {
                    UserId         = Id,
                    RoleId         = p.Id,
                    Specificulture = Specificulture,
                    Description    = p.Name,
                    IsActived      = context.AspNetUserRoles.Any(m => m.UserId == Id && m.RoleId == p.Id)
                });

                return(query.OrderBy(m => m.Priority).ToList());
            }
        }
        private async Task <bool> InitUsersAsync(SiocCmsAccountContext context, IDbContextTransaction transaction, UserManager <ApplicationUser> userManager)
        {
            bool isSucceed = true;
            var  getUsers  = await UserViewModel.Repository.GetModelListAsync(context, transaction);

            if (getUsers.IsSucceed && getUsers.Data.Count == 0)
            {
                var user = new ApplicationUser()
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                };

                var saveResult = await userManager.CreateAsync(user, "123123");

                await userManager.AddToRoleAsync(user, "SuperAdmin");

                isSucceed = saveResult.Succeeded;
            }
            return(isSucceed);
        }
Exemple #3
0
        public void InitSWCms()
        {
            SiocCmsContext        context        = null;
            SiocCmsAccountContext accountContext = null;
            IDbContextTransaction transaction    = null;

            try
            {
                if (InitConnectionString())
                {
                    context        = new SiocCmsContext();
                    accountContext = new SiocCmsAccountContext();
                    context.Database.Migrate();
                    accountContext.Database.Migrate();
                    transaction = context.Database.BeginTransaction();
                    bool isSucceed = true;
                    //var getConnectionString = BEParameterViewModel.Repository.GetSingleModel(
                    //    c => c.Name == SWCmsConstants.ConfigurationKeyword.ConnectionString,
                    //    _context: context, _transaction: transaction);

                    //if (!getConnectionString.IsSucceed)
                    //{
                    //    BEParameterViewModel cnn = new BEParameterViewModel()
                    //    {
                    //        Name = SWCmsConstants.ConfigurationKeyword.ConnectionString,
                    //        Value = ConnectionString,
                    //        Description = SWCmsConstants.ConfigurationType.System
                    //    };
                    //    cnn.SaveModel(_context: context, _transaction: transaction);
                    //}

                    // EN-US
                    var getCulture = BECultureViewModel.Repository.GetSingleModel(
                        c => c.Specificulture == "en-us",
                        _context: context,
                        _transaction: transaction);

                    if (!getCulture.IsSucceed)
                    {
                        BECultureViewModel cultureViewModel = new BECultureViewModel()
                        {
                            Specificulture = "en-us",
                            FullName       = "United States",
                            Description    = "United States",
                            Icon           = "flag-icon-us",
                            Alias          = "US"
                        };
                        isSucceed = isSucceed && cultureViewModel.SaveModel(_context: context, _transaction: transaction).IsSucceed;
                    }

                    // VI-VN
                    getCulture = BECultureViewModel.Repository.GetSingleModel(
                        c => c.Specificulture == "vi-vn",
                        _context: context,
                        _transaction: transaction);

                    if (!getCulture.IsSucceed)
                    {
                        BECultureViewModel cultureViewModel = new BECultureViewModel()
                        {
                            Specificulture = "vi-vn",
                            FullName       = "Vietnam",
                            Description    = "Việt Nam",
                            Icon           = "flag-icon-vn",
                            Alias          = "VN"
                        };
                        isSucceed = isSucceed && cultureViewModel.SaveModel(_context: context, _transaction: transaction).IsSucceed;
                    }

                    var getPosition = BEPositionViewModel.Repository.GetModelList(_context: context, _transaction: transaction);
                    if (isSucceed && (!getPosition.IsSucceed || getPosition.Data.Count == 0))
                    {
                        BEPositionViewModel p = new BEPositionViewModel()
                        {
                            Description = nameof(SWCmsConstants.CatePosition.Nav)
                        };
                        isSucceed = isSucceed && p.SaveModel(_context: context, _transaction: transaction).IsSucceed;
                        p         = new BEPositionViewModel()
                        {
                            Description = nameof(SWCmsConstants.CatePosition.Top)
                        };
                        isSucceed = isSucceed && p.SaveModel(_context: context, _transaction: transaction).IsSucceed;
                        p         = new BEPositionViewModel()
                        {
                            Description = nameof(SWCmsConstants.CatePosition.Left)
                        };
                        isSucceed = isSucceed && p.SaveModel(_context: context, _transaction: transaction).IsSucceed;
                        p         = new BEPositionViewModel()
                        {
                            Description = nameof(SWCmsConstants.CatePosition.Footer)
                        };
                        isSucceed = isSucceed && p.SaveModel(_context: context, _transaction: transaction).IsSucceed;
                    }
                    var getThemes = BEThemeViewModel.Repository.GetModelList(_context: context, _transaction: transaction);
                    if (isSucceed && getThemes.IsSucceed)
                    {
                        if (getThemes.Data.Count == 0)
                        {
                            BEThemeViewModel theme = new BEThemeViewModel(new SiocTheme()
                            {
                                Name = "Default",

                                CreatedBy = "Admin"
                            })
                            {
                                IsActived      = true,
                                Specificulture = "vi-vn"
                            };

                            isSucceed = isSucceed && theme.SaveModel(true, context, transaction).IsSucceed;

                            if (isSucceed)
                            {
                                ConfigurationViewModel config = (ConfigurationViewModel.Repository.GetSingleModel(
                                                                     c => c.Keyword == SWCmsConstants.ConfigurationKeyword.Theme && c.Specificulture == "vi-vn", context, transaction)).Data;
                                if (config == null)
                                {
                                    config = new ConfigurationViewModel()
                                    {
                                        Keyword        = SWCmsConstants.ConfigurationKeyword.Theme,
                                        Specificulture = "vi-vn",
                                        Category       = SWCmsConstants.ConfigurationType.User,
                                        DataType       = SWCmsConstants.DataType.String,
                                        Description    = "Cms Theme",

                                        Value = ""
                                    };
                                }
                                else
                                {
                                    config.Value = theme.Name;
                                }
                                isSucceed = isSucceed && config.SaveModel(false, context, transaction).IsSucceed;
                            }

                            if (isSucceed)
                            {
                                ConfigurationViewModel config = (ConfigurationViewModel.Repository.GetSingleModel(
                                                                     c => c.Keyword == SWCmsConstants.ConfigurationKeyword.ThemeId && c.Specificulture == "vi-vn", context, transaction)).Data;
                                if (config == null)
                                {
                                    config = new ConfigurationViewModel()
                                    {
                                        Keyword        = SWCmsConstants.ConfigurationKeyword.Theme,
                                        Specificulture = "vi-vn",
                                        Category       = SWCmsConstants.ConfigurationType.User,
                                        DataType       = SWCmsConstants.DataType.String,
                                        Description    = "Cms Theme",

                                        Value = theme.Model.Id.ToString()
                                    };
                                }
                                else
                                {
                                    config.Value = theme.Model.Id.ToString();
                                }
                                isSucceed = isSucceed && config.SaveModel(false, context, transaction).IsSucceed;
                            }

                            if (isSucceed)
                            {
                                ConfigurationViewModel config = (ConfigurationViewModel.Repository.GetSingleModel(
                                                                     c => c.Keyword == SWCmsConstants.ConfigurationKeyword.Theme && c.Specificulture == "en-us", context, transaction)).Data;
                                if (config == null)
                                {
                                    config = new ConfigurationViewModel()
                                    {
                                        Keyword        = SWCmsConstants.ConfigurationKeyword.Theme,
                                        Specificulture = "en-us",
                                        Category       = SWCmsConstants.ConfigurationType.User,
                                        DataType       = SWCmsConstants.DataType.String,
                                        Description    = "Cms Theme",

                                        Value = theme.Name
                                    };
                                }
                                else
                                {
                                    config.Value = Name;
                                }
                                isSucceed = isSucceed && config.SaveModel(false, context, transaction).IsSucceed;
                            }

                            if (isSucceed)
                            {
                                ConfigurationViewModel config = (ConfigurationViewModel.Repository.GetSingleModel(
                                                                     c => c.Keyword == SWCmsConstants.ConfigurationKeyword.ThemeId && c.Specificulture == "en-us", context, transaction)).Data;
                                if (config == null)
                                {
                                    config = new ConfigurationViewModel()
                                    {
                                        Keyword        = SWCmsConstants.ConfigurationKeyword.ThemeId,
                                        Specificulture = "en-us",
                                        Category       = SWCmsConstants.ConfigurationType.User,
                                        DataType       = SWCmsConstants.DataType.String,
                                        Description    = "Cms Theme",

                                        Value = theme.Model.Id.ToString()
                                    };
                                }
                                else
                                {
                                    config.Value = theme.Model.Id.ToString();
                                }
                                isSucceed = isSucceed && config.SaveModel(false, context, transaction).IsSucceed;
                            }
                            if (isSucceed)
                            {
                                InitConfigurations(context, transaction);
                            }
                        }
                        else
                        {
                            foreach (var theme in getThemes.Data)
                            {
                                string folderPath = CommonHelper.GetFullPath(new string[]
                                {
                                    SWCmsConstants.Parameters.TemplatesFolder,
                                    theme.Name
                                });

                                var delFolder = FileRepository.Instance.DeleteFolder(folderPath);

                                foreach (var item in theme.Templates)
                                {
                                    try
                                    {
                                        isSucceed = isSucceed && item.SaveModel(true, _context: context, _transaction: transaction).IsSucceed;
                                    }
                                    catch { }
                                }
                            }
                        }
                    }

                    if (isSucceed)
                    {
                        BECategoryViewModel cate = new BECategoryViewModel(new SiocCategory()
                        {
                            Title          = "Home",
                            Specificulture = "vi-vn",
                            Template       = "_Home",
                            Type           = (int)SWCmsConstants.CateType.Home,
                            CreatedBy      = "Admin"
                        });

                        isSucceed = isSucceed && cate.SaveModel(false, context, transaction).IsSucceed;
                        BECategoryViewModel uscate = new BECategoryViewModel(new SiocCategory()
                        {
                            Title          = "Home",
                            Specificulture = "en-us",
                            Template       = "_Home",
                            Type           = (int)SWCmsConstants.CateType.Home,
                            CreatedBy      = "Admin"
                        });
                        isSucceed = isSucceed && uscate.SaveModel(false, context, transaction).IsSucceed;
                    }


                    if (isSucceed)
                    {
                        GlobalLanguageService.Instance.RefreshCultures(context, transaction);

                        transaction.Commit();
                        IsInit = true;
                    }
                    else
                    {
                        transaction.Rollback();
                        IsInit = false;
                    }
                }
            }
            catch (Exception ex) // TODO: Add more specific exeption types instead of Exception only
            {
                IsInit = false;
                transaction?.Rollback();
                throw ex;
            }
            finally
            {
                context?.Dispose();
                accountContext?.Dispose();
            }
        }
        public async Task <RepositoryResponse <bool> > InitSWCms(InitCulture culture)
        {
            RepositoryResponse <bool> result         = new RepositoryResponse <bool>();
            SiocCmsContext            context        = null;
            SiocCmsAccountContext     accountContext = null;
            IDbContextTransaction     transaction    = null;
            IDbContextTransaction     accTransaction = null;
            bool isSucceed = true;

            try
            {
                if (!string.IsNullOrEmpty(CmsConfigurations.CmsConnectionString))
                {
                    context        = new SiocCmsContext();
                    accountContext = new SiocCmsAccountContext();
                    await context.Database.MigrateAsync();

                    await accountContext.Database.MigrateAsync();

                    transaction = context.Database.BeginTransaction();

                    var countCulture = context.SiocCulture.Count();

                    var isInit = countCulture > 0;

                    if (!isInit)
                    {
                        isSucceed = InitCultures(culture, context, transaction);

                        isSucceed = isSucceed && InitPositions(context, transaction);

                        isSucceed = isSucceed && InitThemes(context, transaction);

                        isSucceed = isSucceed && InitConfigurations(culture, context, transaction);
                    }
                    else
                    {
                        isSucceed = true;
                    }

                    if (isSucceed && BECategoryViewModel.Repository.Count(context, transaction).Data == 0)
                    {
                        BECategoryViewModel cate = new BECategoryViewModel(new SiocCategory()
                        {
                            Title          = "Home",
                            Specificulture = culture.Specificulture,
                            Template       = "_Home",
                            Type           = (int)SWCmsConstants.CateType.Home,
                            CreatedBy      = "Admin"
                        }, context, transaction);

                        var createVNHome = await cate.SaveModelAsync(false, context, transaction).ConfigureAwait(false);

                        isSucceed = createVNHome.IsSucceed;

                        //BECategoryViewModel uscate = new BECategoryViewModel(new SiocCategory()
                        //{
                        //    Id = cate.Model.Id,
                        //    Title = "Home",
                        //    Specificulture = "en-us",
                        //    Template = "_Home",
                        //    Type = (int)SWCmsConstants.CateType.Home,
                        //    CreatedBy = "Admin",
                        //    CreatedDateTime = DateTime.UtcNow,
                        //}, context, transaction);

                        //var createUSHome = await uscate.SaveModelAsync(false, context, transaction).ConfigureAwait(false);
                        //isSucceed = createUSHome.IsSucceed;
                    }

                    if (isSucceed)
                    {
                        transaction.Commit();
                    }
                    else
                    {
                        transaction.Rollback();
                    }
                }
                result.IsSucceed = isSucceed;
                return(result);
            }
            catch (Exception ex) // TODO: Add more specific exeption types instead of Exception only
            {
                transaction?.Rollback();
                accTransaction?.Rollback();
                result.IsSucceed = false;
                result.Exception = ex;
                return(result);
            }
            finally
            {
                context?.Dispose();
                accountContext?.Dispose();
            }
        }
        public async Task <RepositoryResponse <bool> > InitSWCms(UserManager <ApplicationUser> userManager,
                                                                 RoleManager <IdentityRole> roleManager)
        {
            RepositoryResponse <bool> result         = new RepositoryResponse <bool>();
            SiocCmsContext            context        = null;
            SiocCmsAccountContext     accountContext = null;
            IDbContextTransaction     transaction    = null;
            IDbContextTransaction     accTransaction = null;
            bool isSucceed = true;

            try
            {
                if (!string.IsNullOrEmpty(CmsConfigurations.CmsConnectionString))
                {
                    context        = new SiocCmsContext();
                    accountContext = new SiocCmsAccountContext();
                    await context.Database.MigrateAsync();

                    await accountContext.Database.MigrateAsync();

                    transaction = context.Database.BeginTransaction();

                    var getCulture = await BECultureViewModel.Repository.GetModelListAsync(_context : context, _transaction : transaction);

                    var isInit = getCulture.IsSucceed && getCulture.Data.Count > 0;

                    if (!isInit)
                    {
                        isSucceed = InitCultures(context, transaction);

                        isSucceed = isSucceed && InitPositions(context, transaction);

                        isSucceed = isSucceed && InitThemes(context, transaction);

                        isSucceed = isSucceed && InitConfigurations(context, transaction);
                    }
                    else
                    {
                        isSucceed = true;
                    }

                    if (isSucceed && BECategoryViewModel.Repository.Count(context, transaction).Data == 0)
                    {
                        BECategoryViewModel cate = new BECategoryViewModel(new SiocCategory()
                        {
                            Title          = "Home",
                            Specificulture = "vi-vn",
                            Template       = "_Home",
                            Type           = (int)SWCmsConstants.CateType.Home,
                            CreatedBy      = "Admin"
                        }, context, transaction);

                        isSucceed = cate.SaveModel(false, context, transaction).IsSucceed;
                        BECategoryViewModel uscate = new BECategoryViewModel(new SiocCategory()
                        {
                            Title          = "Home",
                            Specificulture = "en-us",
                            Template       = "_Home",
                            Type           = (int)SWCmsConstants.CateType.Home,
                            CreatedBy      = "Admin",
                        }, context, transaction);
                        isSucceed = isSucceed && uscate.SaveModel(false, context, transaction).IsSucceed;
                    }

                    if (isSucceed)
                    {
                        GlobalConfigurationService.Instance.RefreshAll(context, transaction);

                        transaction.Commit();
                    }
                    else
                    {
                        transaction.Rollback();
                    }
                }
                result.IsSucceed = isSucceed;
                return(result);
            }
            catch (Exception ex) // TODO: Add more specific exeption types instead of Exception only
            {
                transaction?.Rollback();
                accTransaction?.Rollback();
                result.IsSucceed = false;
                result.Exception = ex;
                return(result);
            }
            finally
            {
                context?.Dispose();
                accountContext?.Dispose();
            }
        }
        public void InitSWCms()
        {
            SiocCmsContext        context        = null;
            SiocCmsAccountContext accountContext = null;
            IDbContextTransaction transaction    = null;

            try
            {
                if (InitConnectionString())
                {
                    context        = new SiocCmsContext();
                    accountContext = new SiocCmsAccountContext();
                    context.Database.Migrate();
                    accountContext.Database.Migrate();
                    transaction = context.Database.BeginTransaction();

                    var getConnectionString = BEParameterViewModel.Repository.GetSingleModel(
                        c => c.Name == SWCmsConstants.ConfigurationKeyword.ConnectionString,
                        _context: context, _transaction: transaction);

                    if (!getConnectionString.IsSucceed)
                    {
                        BEParameterViewModel cnn = new BEParameterViewModel()
                        {
                            Name        = SWCmsConstants.ConfigurationKeyword.ConnectionString,
                            Value       = ConnectionString,
                            Description = SWCmsConstants.ConfigurationType.System
                        };
                        cnn.SaveModel(_context: context, _transaction: transaction);
                    }

                    // EN-US
                    var getCulture = BECultureViewModel.Repository.GetSingleModel(
                        c => c.Specificulture == "en-us",
                        _context: context,
                        _transaction: transaction);

                    if (!getCulture.IsSucceed)
                    {
                        BECultureViewModel cultureViewModel = new BECultureViewModel()
                        {
                            Specificulture = "en-us",
                            FullName       = "United States",
                            Description    = "United States",
                            Icon           = "flag-icon-us",
                            Alias          = "US"
                        };
                        cultureViewModel.SaveModel(_context: context, _transaction: transaction);
                    }

                    // VI-VN
                    getCulture = BECultureViewModel.Repository.GetSingleModel(
                        c => c.Specificulture == "vi-vn",
                        _context: context,
                        _transaction: transaction);

                    if (!getCulture.IsSucceed)
                    {
                        BECultureViewModel cultureViewModel = new BECultureViewModel()
                        {
                            Specificulture = "vi-vn",
                            FullName       = "Vietnam",
                            Description    = "Việt Nam",
                            Icon           = "flag-icon-vn",
                            Alias          = "VN"
                        };
                        cultureViewModel.SaveModel(_context: context, _transaction: transaction);
                    }

                    var getPosition = BEPositionViewModel.Repository.GetModelList(_context: context, _transaction: transaction);
                    if (!getPosition.IsSucceed || getPosition.Data.Count == 0)
                    {
                        BEPositionViewModel p = new BEPositionViewModel()
                        {
                            Description = nameof(SWCmsConstants.CatePosition.Top)
                        };
                        p.SaveModel(_context: context, _transaction: transaction);
                        p = new BEPositionViewModel()
                        {
                            Description = nameof(SWCmsConstants.CatePosition.Left)
                        };
                        p.SaveModel(_context: context, _transaction: transaction);
                        p = new BEPositionViewModel()
                        {
                            Description = nameof(SWCmsConstants.CatePosition.Footer)
                        };
                        p.SaveModel(_context: context, _transaction: transaction);
                    }
                    var getThemes = BEThemeViewModel.Repository.GetModelList(_context: context, _transaction: transaction);
                    if (getThemes.IsSucceed)
                    {
                        if (getThemes.Data.Count == 0)
                        {
                            BEThemeViewModel theme = new BEThemeViewModel(new SiocTheme()
                            {
                                Name      = "Default",
                                CreatedBy = "Admin"
                            })
                            {
                                IsActived = true
                            };

                            theme.SaveModel(true, context, transaction);
                        }
                        else
                        {
                            foreach (var theme in getThemes.Data)
                            {
                                string folderPath = CommonHelper.GetFullPath(new string[]
                                {
                                    SWCmsConstants.Parameters.TemplatesFolder,
                                    theme.Name
                                });

                                var delFolder = FileRepository.Instance.DeleteFolder(folderPath);

                                foreach (var item in theme.Templates)
                                {
                                    try
                                    {
                                        item.SaveModel(true, _context: context, _transaction: transaction);
                                    }
                                    catch { }
                                }
                            }
                        }
                    }

                    GlobalLanguageService.Instance.RefreshCultures(context, transaction);
                    InitConfigurations(context, transaction);
                    transaction.Commit();
                    IsInit = true;
                }
            }
            catch (Exception ex) // TODO: Add more specific exeption types instead of Exception only
            {
                IsInit = false;
                transaction?.Rollback();
                throw ex;
            }
            finally
            {
                context?.Dispose();
                accountContext?.Dispose();
            }
        }
        public async Task <RepositoryResponse <bool> > InitSWCms(InitCulture culture)
        {
            RepositoryResponse <bool> result         = new RepositoryResponse <bool>();
            SiocCmsContext            context        = null;
            SiocCmsAccountContext     accountContext = null;
            IDbContextTransaction     transaction    = null;
            IDbContextTransaction     accTransaction = null;
            bool isSucceed = true;

            try
            {
                if (!string.IsNullOrEmpty(CmsConfigurations.CmsConnectionString))
                {
                    context        = new SiocCmsContext();
                    accountContext = new SiocCmsAccountContext();
                    await context.Database.MigrateAsync();

                    await accountContext.Database.MigrateAsync();

                    transaction = context.Database.BeginTransaction();

                    var countCulture = context.SiocCulture.Count();

                    var isInit = countCulture > 0;

                    if (!isInit)
                    {
                        isSucceed = InitCultures(culture, context, transaction);

                        isSucceed = isSucceed && InitPositions(context, transaction);

                        isSucceed = isSucceed && InitThemes(context, transaction);

                        isSucceed = isSucceed && InitConfigurations(culture, context, transaction);
                    }
                    else
                    {
                        isSucceed = true;
                    }

                    if (isSucceed && BECategoryViewModel.Repository.Count(context, transaction).Data == 0)
                    {
                        var cate = new SiocCategory()
                        {
                            Id              = 1,
                            Level           = 0,
                            Title           = "Home",
                            Specificulture  = culture.Specificulture,
                            Template        = "Pages/_Home.cshtml",
                            Type            = (int)SWCmsConstants.CateType.Home,
                            CreatedBy       = "Admin",
                            CreatedDateTime = DateTime.UtcNow,
                            Status          = (int)SWStatus.Published
                        };


                        context.Entry(cate).State = EntityState.Added;
                        var alias = new SiocUrlAlias()
                        {
                            Id              = 1,
                            SourceId        = "1",
                            Type            = (int)SWCmsConstants.UrlAliasType.Page,
                            Specificulture  = culture.Specificulture,
                            CreatedDateTime = DateTime.UtcNow,
                            Alias           = cate.Title.ToLower()
                        };
                        context.Entry(alias).State = EntityState.Added;

                        var createVNHome = await context.SaveChangesAsync().ConfigureAwait(false);

                        isSucceed = createVNHome > 0;

                        var cate404 = new SiocCategory()
                        {
                            Id              = 2,
                            Title           = "404",
                            Level           = 0,
                            Specificulture  = culture.Specificulture,
                            Template        = "Pages/_404.cshtml",
                            Type            = (int)SWCmsConstants.CateType.Article,
                            CreatedBy       = "Admin",
                            CreatedDateTime = DateTime.UtcNow,
                            Status          = (int)SWStatus.Published
                        };

                        var alias404 = new SiocUrlAlias()
                        {
                            Id              = 2,
                            SourceId        = "2",
                            Type            = (int)SWCmsConstants.UrlAliasType.Page,
                            Specificulture  = culture.Specificulture,
                            CreatedDateTime = DateTime.UtcNow,
                            Alias           = cate404.Title.ToLower()
                        };
                        context.Entry(cate404).State  = EntityState.Added;
                        context.Entry(alias404).State = EntityState.Added;

                        var create404 = await context.SaveChangesAsync().ConfigureAwait(false);

                        isSucceed = create404 > 0;
                    }

                    if (isSucceed)
                    {
                        transaction.Commit();
                    }
                    else
                    {
                        transaction.Rollback();
                    }
                }
                result.IsSucceed = isSucceed;
                return(result);
            }
            catch (Exception ex) // TODO: Add more specific exeption types instead of Exception only
            {
                transaction?.Rollback();
                accTransaction?.Rollback();
                result.IsSucceed = false;
                result.Exception = ex;
                return(result);
            }
            finally
            {
                context?.Dispose();
                accountContext?.Dispose();
            }
        }