/// <summary>
        ///     加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmAddSharding_Load(object sender, EventArgs e)
        {
            GuiConfig.Translateform(this);
            _prmSvr = RuntimeMongoDbContext.GetCurrentServer();
            var             mongoDb  = _prmSvr.GetDatabase(ConstMgr.DatabaseNameConfig);
            MongoCollection mongoCol = mongoDb.GetCollection("databases");

            foreach (var item in mongoCol.FindAllAs <BsonDocument>())
            {
                if (item.GetValue(ConstMgr.KeyId) != ConstMgr.DatabaseNameAdmin)
                {
                    cmbDataBase.Items.Add(item.GetValue(ConstMgr.KeyId));
                    cmbShardKeyDB.Items.Add(item.GetValue(ConstMgr.KeyId));
                }
            }
            foreach (var lst in Operater.GetShardInfo(_prmSvr, ConstMgr.KeyId))
            {
                lstSharding.Items.Add(lst.Value);
                cmbShard.Items.Add(lst.Value);
            }
            MongoCollection ColShards = mongoDb.GetCollection("shards");

            RefreshShardingZone();
            RefreshShardingRange();
        }
Exemple #2
0
        /// <summary>
        ///     修改用户
        /// </summary>
        /// <param name="user"></param>
        public static CommandResult UpdateUser(MongoUserEx user, bool IsAdmin)
        {
            var result = Command.DataBaseCommand.updateUser(user, IsAdmin ? RuntimeMongoDbContext.GetCurrentServer()
                                                            .GetDatabase(ConstMgr.DatabaseNameAdmin) : RuntimeMongoDbContext.GetCurrentDataBase());

            return(result);
        }
Exemple #3
0
        private void M_Tick(object sender, EventArgs e)
        {
            var docStatus =
                CommandHelper.ExecuteMongoSvrCommand(CommandHelper.ServerStatusCommand,
                                                     RuntimeMongoDbContext.GetCurrentServer()).Response;

            var queryPoint = new DataPoint();

            queryPoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture),
                                  docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("query").Value);
            MonitorGrap.Series[0].Points.Add(queryPoint);

            var insertPoint = new DataPoint();

            insertPoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture),
                                   docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("insert").Value);
            MonitorGrap.Series[1].Points.Add(insertPoint);


            var updatePoint = new DataPoint();

            updatePoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture),
                                   docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("update").Value);
            MonitorGrap.Series[2].Points.Add(updatePoint);

            var deletePoint = new DataPoint();

            deletePoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture),
                                   docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("delete").Value);
            MonitorGrap.Series[3].Points.Add(deletePoint);
        }
Exemple #4
0
        /// <summary>
        ///     Add A Custom User
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddCustomRole_Click(object sender, EventArgs e)
        {
            var r = new Role();

            if (RuntimeMongoDbContext.GetCurrentDataBase() != null)
            {
                r.Database = RuntimeMongoDbContext.GetCurrentDataBase().Name;
            }
            else
            {
                r.Database = ConstMgr.DatabaseNameAdmin;
            }
            r.Rolename   = txtRolename.Text;
            r.Privileges = new Role.Privilege[_privilegeList.Count];
            for (var i = 0; i < _privilegeList.Count; i++)
            {
                r.Privileges[i] = _privilegeList[i];
            }
            r.Roles = new Role.GrantRole[_roleList.Count];
            for (var i = 0; i < _roleList.Count; i++)
            {
                r.Roles[i] = _roleList[i];
            }
            //这个时候可能没有GetCurrentDataBase,如果是Admin
            var result = DataBaseCommand.createRole(RuntimeMongoDbContext.GetCurrentServer().GetDatabase(r.Database), r);

            if (result.Ok)
            {
                MyMessageBox.ShowEasyMessage("Succeed", "Add Role OK");
            }
            else
            {
                MyMessageBox.ShowMessage("Error", "Add Role Error", result.Response.ToString());
            }
        }
Exemple #5
0
 /// <summary>
 ///     Load事件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void frmCollectionIndex_Load(object sender, EventArgs e)
 {
     GuiConfig.Translateform(this);
     if (!GuiConfig.IsUseDefaultLanguage)
     {
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexName));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexVersion));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexKeys));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexNameSpace));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexBackground));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexSparse));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexUnify));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexRepeatDel));
         lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexExpireData));
     }
     else
     {
         lstIndex.Columns.Add("Name");
         lstIndex.Columns.Add("Version");
         lstIndex.Columns.Add("IndexKey");
         lstIndex.Columns.Add("NameSpace");
         lstIndex.Columns.Add("BackGround");
         lstIndex.Columns.Add("Sparse");
         lstIndex.Columns.Add("Unify");
         lstIndex.Columns.Add("DroppedDups");
         lstIndex.Columns.Add("Expire Data");
     }
     //2.2.2 开始支持TTL索引
     if (RuntimeMongoDbContext.GetCurrentServer().BuildInfo.Version < new Version(2, 2, 2, 0))
     {
         chkExpireData.Enabled = false;
         numTTL.Enabled        = false;
     }
     RefreshList();
 }
        /// <summary>
        ///     移除主机
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdRemoveHost_Click(object sender, EventArgs e)
        {
            //使用修改系统数据集和repleSetReconfig
            MongoCollection replsetCol = RuntimeMongoDbContext.GetCurrentServer().
                                         GetDatabase(ConstMgr.DatabaseNameLocal).GetCollection("system.replset");
            var replsetDoc = replsetCol.FindOneAs <BsonDocument>();
            var memberlist = replsetDoc.GetElement("members").Value.AsBsonArray;
            var strHost    = lstHost.SelectedItem.ToString();

            for (var i = 0; i < memberlist.Count; i++)
            {
                if (memberlist[i].AsBsonDocument.GetElement("host").Value.ToString() != strHost)
                {
                    continue;
                }
                memberlist.RemoveAt(i);
                break;
            }
            try
            {
                CommandHelper.ReconfigReplsetServer(RuntimeMongoDbContext.GetCurrentServer(), replsetDoc);
                //由于这个命令会触发异常,所以没有Result可以获得
                RuntimeMongoDbContext.CurrentMongoConnectionconfig.ReplsetList.Remove(strHost);
                lstHost.Items.Remove(lstHost.SelectedItem);
                MyMessageBox.ShowMessage("Remove Memeber", "Please wait one minute and check the server list");
            }
            catch (Exception ex)
            {
                Utility.ExceptionDeal(ex);
            }
        }
Exemple #7
0
        /// <summary>
        ///     运行插件
        /// </summary>
        /// <param name="plugInKeyCode"></param>
        public static void RunPlugIn(string plugInKeyCode)
        {
            var mPlug = PlugInList[plugInKeyCode];

            switch (mPlug.RunLv)
            {
            case PlugInBase.PathLv.ConnectionLv:
                mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentServer();
                break;

            case PlugInBase.PathLv.InstanceLv:
                mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentServer();
                break;

            case PlugInBase.PathLv.DatabaseLv:
                mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentDataBase();
                break;

            case PlugInBase.PathLv.CollectionLv:
                mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentCollection();
                break;

            case PlugInBase.PathLv.DocumentLv:
                break;
            }
            mPlug.Run();
        }
Exemple #8
0
        /// <summary>
        ///     Refresh Data
        /// </summary>
        public override void RefreshGui()
        {
            Clear();
            mDataViewInfo.SkipCnt = 0;
            RuntimeMongoDbContext.SelectObjectTag = mDataViewInfo.strCollectionPath;
            var datalist = DataViewInfo.GetDataList(ref mDataViewInfo, RuntimeMongoDbContext.GetCurrentServer());

            ViewHelper.FillDataToControl(datalist, DataShower, mDataViewInfo);
            InitControlsEnable();
            SetDataNav();
            if (mDataViewInfo.Query != string.Empty)
            {
                txtQuery.Text = mDataViewInfo.Query;
                if (!tabDataShower.TabPages.Contains(tabQuery))
                {
                    tabDataShower.TabPages.Add(tabQuery);
                }
            }
            else
            {
                if (tabDataShower.TabPages.Contains(tabQuery))
                {
                    tabDataShower.TabPages.Remove(tabQuery);
                }
            }
            IsNeedRefresh = false;
        }
Exemple #9
0
        /// <summary>
        ///     修改用户
        /// </summary>
        /// <param name="user"></param>
        public static void UpdateUser(MongoUserEx user, bool IsAdmin)
        {
            var result = Command.DataBaseCommand.updateUser(user, IsAdmin ? RuntimeMongoDbContext.GetCurrentServer()
                                                            .GetDatabase(ConstMgr.DatabaseNameAdmin) : RuntimeMongoDbContext.GetCurrentDataBase());

            MyMessageBox.ShowConfirm("Update User", result.Response.ToString());
        }
Exemple #10
0
        //从权限上看,clusterAdmin是必须的
        //但是能够建立数据库,不表示能够看到里面的内容!
        //dbAdmin可以访问数据库。
        //clusterAdmin能创建数据库但是不能访问数据库。


        /// <summary>
        ///     数据库操作
        /// </summary>
        /// <param name="strObjTag"></param>
        /// <param name="dbName"></param>
        /// <param name="func"></param>
        /// <returns></returns>
        public static string DataBaseOpration(string strObjTag, string dbName, Oprcode func)
        {
            var mongoSvr  = RuntimeMongoDbContext.GetCurrentServer();
            var rtnResult = string.Empty;

            TagInfo.GetTagPath(strObjTag);
            if (mongoSvr == null)
            {
                return(rtnResult);
            }
            var db = mongoSvr.GetDatabase(dbName);

            switch (func)
            {
            case Oprcode.Drop:
                if (mongoSvr.DatabaseExists(dbName))
                {
                    var result = mongoSvr.DropDatabase(dbName);
                    return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString());
                }
                break;

            case Oprcode.Repair:
                //其实Repair的入口不在这个方法里面
                CommandHelper.ExecuteMongoDBCommand(CommandHelper.RepairDatabaseCommand,
                                                    mongoSvr.GetDatabase(dbName));
                break;
            }
            return(rtnResult);
        }
Exemple #11
0
        /// <summary>
        ///     加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmAddRole_Load(object sender, EventArgs e)
        {
            Common.UIAssistant.FillComberWithEnum(cmbResourceType, typeof(MongoResource.ResourceType));
            var dbs = RuntimeMongoDbContext.GetCurrentServer().GetDatabaseNames();

            Common.UIAssistant.FillComberWithArray(cmbDatabase, dbs, false);
            Common.UIAssistant.FillComberWithEnum(cmbActionGroup, typeof(MongoAction.ActionGroup));
            GuiConfig.Translateform(this);
        }
Exemple #12
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static MongoRestoreInfo GetMongoRestoreInfo()
        {
            var mongoRestore = new MongoRestoreInfo();
            var mongosrv     = RuntimeMongoDbContext.GetCurrentServer().Instance;

            mongoRestore.HostAddr = mongosrv.Address.Host;
            mongoRestore.Port     = mongosrv.Address.Port;
            return(mongoRestore);
        }
Exemple #13
0
 /// <summary>
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmbDatabase_SelectedIndexChanged(object sender, EventArgs e)
 {
     cmbCollection.Text = string.Empty;
     cmbCollection.Items.Clear();
     foreach (
         var item in RuntimeMongoDbContext.GetCurrentServer().GetDatabase(cmbDatabase.Text).GetCollectionNames())
     {
         cmbCollection.Items.Add(item);
     }
 }
Exemple #14
0
        private void frmReplsetMgr_Load(object sender, EventArgs e)
        {
            GuiConfig.Translateform(this);
            var server = RuntimeMongoDbContext.GetCurrentServer();

            foreach (var item in server.Instances)
            {
                lstHost.Items.Add(item.Address.ToString());
            }
        }
Exemple #15
0
        /// <summary>
        ///     Remove A User From Admin database
        /// </summary>
        /// <param name="strUser">UserName</param>
        public static void RemoveUserFromSystem(string strUser, bool isAdmin)
        {
            MongoCollection users;

            users = isAdmin
                ? RuntimeMongoDbContext.GetCurrentServer()
                    .GetDatabase(ConstMgr.DatabaseNameAdmin)
                    .GetCollection(ConstMgr.CollectionNameUsers)
                : RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(ConstMgr.CollectionNameUsers);
            users.Remove(Query.EQ("user", strUser));
        }
        public static MongoImportExportInfo GetImportExportInfo()
        {
            var mongoImportExport = new MongoImportExportInfo();
            var mongosrv          = RuntimeMongoDbContext.GetCurrentServer().Instance;

            mongoImportExport.HostAddr       = mongosrv.Address.Host;
            mongoImportExport.Port           = mongosrv.Address.Port;
            mongoImportExport.DbName         = RuntimeMongoDbContext.GetCurrentDataBaseName();
            mongoImportExport.CollectionName = RuntimeMongoDbContext.GetCurrentCollectionName();
            return(mongoImportExport);
        }
Exemple #17
0
        /// <summary>
        ///     将值设定到图表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SetValue(object sender, EventArgs e)
        {
            var docStatus = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand,
                                                                  RuntimeMongoDbContext.GetCurrentServer()).Response;

            foreach (var item in CatalogDetailDic.Keys)
            {
                var queryPoint = new DataPoint();
                queryPoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture), SystemStatus.GetValue(docStatus, CatalogDetailDic[item]));
                MonitorGrap.Series[item.Split(".".ToCharArray())[1]].Points.Add(queryPoint);
            }
        }
Exemple #18
0
        /// <summary>
        ///     选择数据库变更
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmbDatabase_SelectedIndexChanged(object sender, EventArgs e)
        {
            cmbCollection.Text = string.Empty;
            cmbCollection.Items.Clear();
            if (cmbDatabase.SelectedIndex == 0)
            {
                Common.UIAssistant.FillComberWithArray(cmbCollection, new List <string>(), false);
                return;
            }
            var cols = RuntimeMongoDbContext.GetCurrentServer().GetDatabase(cmbDatabase.Text).GetCollectionNames();

            Common.UIAssistant.FillComberWithArray(cmbCollection, cols, false);
        }
Exemple #19
0
        /// <summary>
        ///     数据库操作
        /// </summary>
        /// <param name="strObjTag"></param>
        /// <param name="dbName"></param>
        /// <param name="func"></param>
        /// <returns></returns>
        public static string DataBaseOpration(string strObjTag, string dbName, Oprcode func)
        {
            var mongoSvr  = RuntimeMongoDbContext.GetCurrentServer();
            var rtnResult = string.Empty;
            var tag       = TagInfo.GetTagPath(strObjTag);

            if (mongoSvr == null)
            {
                return(rtnResult);
            }
            switch (func)
            {
            case Oprcode.Create:
                if (!mongoSvr.DatabaseExists(dbName))
                {
                    //从权限上看,clusterAdmin是必须的
                    //但是能够建立数据库,不表示能够看到里面的内容!
                    //dbAdmin可以访问数据库。
                    //clusterAdmin能创建数据库但是不能访问数据库。
                    try
                    {
                        //Driver 2.0.1
                        //如果没有后续对于db的操作,则数据库无法新建
                        var db = mongoSvr.GetDatabase(dbName);
                        db.CreateCollection("demo");
                    }
                    catch (Exception ex)
                    {
                        //如果使用没有dbAdmin权限的clusterAdmin。。。。
                        Utility.ExceptionDeal(ex);
                    }
                }
                break;

            case Oprcode.Drop:
                if (mongoSvr.DatabaseExists(dbName))
                {
                    var result = mongoSvr.DropDatabase(dbName);
                    return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString());
                }
                break;

            case Oprcode.Repair:
                //其实Repair的入口不在这个方法里面
                CommandHelper.ExecuteMongoDBCommand(CommandHelper.RepairDatabaseCommand,
                                                    mongoSvr.GetDatabase(dbName));
                break;
            }
            return(rtnResult);
        }
Exemple #20
0
        /// <summary>
        ///     重新加载数据
        /// </summary>
        private void ReloadData()
        {
            if (mDataViewInfo == null)
            {
                return;
            }
            Clear();
            RuntimeMongoDbContext.SelectObjectTag = mDataViewInfo.strCollectionPath;
            var datalist = DataViewInfo.GetDataList(ref mDataViewInfo, RuntimeMongoDbContext.GetCurrentServer());

            ViewHelper.FillDataToControl(datalist, DataShower, mDataViewInfo);
            SetDataNav();
            IsNeedRefresh = false;
        }
Exemple #21
0
        /// <summary>
        ///     get current Server Information
        /// </summary>
        /// <returns></returns>
        public static BsonDocument GetCurrentServerDescription()
        {
            var mongosvr = RuntimeMongoDbContext.GetCurrentServer();
            //Repl的时候 mongosvr.Instance 无效
            var Description    = mongosvr.Instance;
            var DescriptionDoc = new BsonDocument();

            DescriptionDoc.Add(new BsonElement(nameof(Description.IsArbiter), Description.IsArbiter));
            DescriptionDoc.Add(new BsonElement(nameof(Description.IsPrimary), Description.IsPrimary));
            DescriptionDoc.Add(new BsonElement(nameof(Description.IsSecondary), Description.IsSecondary));
            DescriptionDoc.Add(new BsonElement(nameof(Description.Address), Description.Address.ToString()));
            DescriptionDoc.Add(new BsonElement(nameof(Description.BuildInfo.VersionString), Description.BuildInfo.VersionString));
            return(DescriptionDoc);
        }
Exemple #22
0
        public static MongoDumpInfo GetMongoDump(bool isDb)
        {
            var mongoDump = new MongoDumpInfo();
            var mongosrv  = RuntimeMongoDbContext.GetCurrentServer().Instance;

            mongoDump.HostAddr = mongosrv.Address.Host;
            mongoDump.Port     = mongosrv.Address.Port;
            mongoDump.DbName   = RuntimeMongoDbContext.GetCurrentDataBaseName();
            if (!isDb)
            {
                mongoDump.CollectionName = RuntimeMongoDbContext.GetCurrentCollectionName();
            }
            return(mongoDump);
        }
Exemple #23
0
        /// <summary>
        ///     get current Server Information
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentSvrInfo()
        {
            var mongosvr   = RuntimeMongoDbContext.GetCurrentServer();
            var rtnSvrInfo = "IsArbiter:" + mongosvr.Instance.IsArbiter + Environment.NewLine;

            rtnSvrInfo += "IsPrimary:" + mongosvr.Instance.IsPrimary + Environment.NewLine;
            rtnSvrInfo += "IsSecondary:" + mongosvr.Instance.IsSecondary + Environment.NewLine;
            rtnSvrInfo += "Address:" + mongosvr.Instance.Address + Environment.NewLine;
            if (mongosvr.Instance.BuildInfo != null)
            {
                rtnSvrInfo += "VersionString:" + mongosvr.Instance.BuildInfo.VersionString + Environment.NewLine;
            }
            return(rtnSvrInfo);
        }
        /// <summary>
        ///     当前对象的MONGO命令
        /// </summary>
        /// <param name="mMongoCommand">命令对象</param>
        /// <param name="Obj"></param>
        /// <returns></returns>
        public static CommandResult ExecuteMongoCommand(MongoCommand mMongoCommand)
        {
            var resultCommandList = new List <CommandResult>();

            var mCommandResult = new CommandResult(new BsonDocument());

            try
            {
                switch (mMongoCommand.RunLevel)
                {
                case EnumMgr.PathLevel.Collection:
                    if (string.IsNullOrEmpty(mMongoCommand.CommandString))
                    {
                        mCommandResult = ExecuteMongoColCommand(mMongoCommand.CmdDocument,
                                                                RuntimeMongoDbContext.GetCurrentCollection());
                    }
                    else
                    {
                        mCommandResult = ExecuteMongoColCommand(mMongoCommand.CommandString,
                                                                RuntimeMongoDbContext.GetCurrentCollection());
                    }
                    break;

                case EnumMgr.PathLevel.Database:
                    mCommandResult = ExecuteMongoDBCommand(mMongoCommand.CmdDocument,
                                                           RuntimeMongoDbContext.GetCurrentDataBase());
                    break;

                case EnumMgr.PathLevel.Instance:
                    mCommandResult = ExecuteMongoSvrCommand(mMongoCommand.CmdDocument,
                                                            RuntimeMongoDbContext.GetCurrentServer());
                    break;

                default:
                    break;
                }
                resultCommandList.Add(mCommandResult);
            }
            catch (IOException ex)
            {
                Utility.ExceptionDeal(ex, mMongoCommand.CommandString,
                                      "IOException,Try to set Socket TimeOut more long at connection config");
            }
            catch (Exception ex)
            {
                Utility.ExceptionDeal(ex, mMongoCommand.CommandString);
            }

            return(mCommandResult);
        }
Exemple #25
0
 /// <summary>
 ///     frmUser
 /// </summary>
 /// <param name="isAdmin"></param>
 public FrmUser(bool isAdmin)
 {
     InitializeComponent();
     _isAdmin = isAdmin;
     foreach (var item in RuntimeMongoDbContext.GetCurrentServer().GetDatabaseNames())
     {
         cmbDB.Items.Add(item);
     }
     if (!isAdmin)
     {
         //Admin以外的不能有otherDBRoles
         Width = Width / 2;
     }
     userRoles.IsAdmin = isAdmin;
 }
Exemple #26
0
        /// <summary>
        ///     新建数据库
        ///     数据库必须有一个数据集,如果没有数据集的话,则数据库会被回收掉
        /// </summary>
        /// <param name="dbName"></param>
        /// <param name="CollectionName"></param>
        /// <returns></returns>
        public static string CreateDataBaseWithInitCollection(string dbName, string CollectionName)
        {
            var mongoSvr  = RuntimeMongoDbContext.GetCurrentServer();
            var rtnResult = string.Empty;

            if (mongoSvr == null)
            {
                return(rtnResult);
            }
            if (!mongoSvr.DatabaseExists(dbName))
            {
                var db = mongoSvr.GetDatabase(dbName);
                db.CreateCollection(CollectionName);
            }
            return(rtnResult);
        }
Exemple #27
0
        //从权限上看,clusterAdmin是必须的
        //但是能够建立数据库,不表示能够看到里面的内容!
        //dbAdmin可以访问数据库。
        //clusterAdmin能创建数据库但是不能访问数据库。


        /// <summary>
        ///     数据库操作
        /// </summary>
        /// <param name="strObjTag"></param>
        /// <param name="dbName"></param>
        /// <param name="func"></param>
        /// <returns></returns>
        public static string DropDatabase(string strObjTag, string dbName)
        {
            var mongoSvr  = RuntimeMongoDbContext.GetCurrentServer();
            var rtnResult = string.Empty;

            TagInfo.GetTagPath(strObjTag);
            if (mongoSvr == null)
            {
                return(rtnResult);
            }
            if (mongoSvr.DatabaseExists(dbName))
            {
                var result = mongoSvr.DropDatabase(dbName);
                return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString());
            }
            return(rtnResult);
        }
Exemple #28
0
 /// <summary>
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void frmAddRole_Load(object sender, EventArgs e)
 {
     cmbResourceType.Items.Clear();
     foreach (var item in Enum.GetNames(typeof(Resource.ResourceType)))
     {
         cmbResourceType.Items.Add(item);
     }
     cmbDatabase.Items.Clear();
     foreach (var item in RuntimeMongoDbContext.GetCurrentServer().GetDatabaseNames())
     {
         cmbDatabase.Items.Add(item);
     }
     foreach (var item in Enum.GetValues(typeof(MongoDbAction.ActionGroup)))
     {
         cmbActionGroup.Items.Add(item.ToString().Replace("_", " "));
     }
 }
Exemple #29
0
        /// <summary>
        ///     换页操作
        /// </summary>
        /// <param name="pageChangeMode"></param>
        /// <param name="mDataViewInfo"></param>
        /// <param name="dataShower"></param>
        public static void PageChanged(PageChangeOpr pageChangeMode, ref DataViewInfo mDataViewInfo,
                                       List <Control> dataShower)
        {
            switch (pageChangeMode)
            {
            case PageChangeOpr.FirstPage:
                mDataViewInfo.SkipCnt = 0;
                break;

            case PageChangeOpr.LastPage:
                if (mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt == 0)
                {
                    //没有余数的时候,600 % 100 == 0  => Skip = 600-100 = 500
                    mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - mDataViewInfo.LimitCnt;
                }
                else
                {
                    // 630 % 100 == 30  => Skip = 630-30 = 600
                    mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt -
                                            mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt;
                }
                break;

            case PageChangeOpr.NextPage:
                mDataViewInfo.SkipCnt += mDataViewInfo.LimitCnt;
                if (mDataViewInfo.SkipCnt >= mDataViewInfo.CurrentCollectionTotalCnt)
                {
                    mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - 1;
                }
                break;

            case PageChangeOpr.PrePage:
                mDataViewInfo.SkipCnt -= mDataViewInfo.LimitCnt;
                if (mDataViewInfo.SkipCnt < 0)
                {
                    mDataViewInfo.SkipCnt = 0;
                }
                break;

            default:
                break;
            }
            var datalist = DataViewInfo.GetDataList(ref mDataViewInfo, RuntimeMongoDbContext.GetCurrentServer());

            FillDataToControl(datalist, dataShower, mDataViewInfo);
        }
Exemple #30
0
        /// <summary>
        ///     get current Server Information
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentSvrInfo()
        {
            var mongosvr   = RuntimeMongoDbContext.GetCurrentServer();
            var rtnSvrInfo = "IsArbiter:" + mongosvr.Instance.IsArbiter + Environment.NewLine;

            rtnSvrInfo += "IsPrimary:" + mongosvr.Instance.IsPrimary + Environment.NewLine;
            rtnSvrInfo += "IsSecondary:" + mongosvr.Instance.IsSecondary + Environment.NewLine;
            rtnSvrInfo += "Address:" + mongosvr.Instance.Address + Environment.NewLine;
            if (mongosvr.Instance.BuildInfo != null)
            {
                //Before mongo2.0.2 BuildInfo will be null
                rtnSvrInfo += "VersionString:" + mongosvr.Instance.BuildInfo.VersionString + Environment.NewLine;
                //remove from mongodrvier 2.0.0
                //rtnSvrInfo += "SysInfo:" + mongosvr.Instance.BuildInfo.SysInfo + Environment.NewLine;
            }
            return(rtnSvrInfo);
        }