public void Execute(Arguments arguments)
 {
     MongoDBSettings.GetInstance().ConnectionString = arguments.connectionString.Value;
     MongoDBSettings.GetInstance().DatabaseName     = arguments.databaseName.Value;
     try
     {
         var  connectionString = MongoDBSettings.GetInstance().ConnectionString;
         var  client           = new MongoClient(connectionString);
         var  dbList           = client.ListDatabases().ToList().Select(db => db.GetValue("name").AsString);
         bool isDbExists       = dbList.Contains(arguments.databaseName.Value);
         if (!isDbExists)
         {
             throw new Exception(String.Format("Database {0} not found", arguments.databaseName.Value));
         }
     }
     catch (Exception exc)
     {
         throw new ApplicationException($"Error occured init command :" + exc.Message);
     }
 }
        public void Execute(Arguments arguments)
        {
            TextStructure cmdresult = new TextStructure();

            try
            {
                String        outData = "[]";
                List <String> jsons   = new List <string>(100);

                string ftl = "{}";
                if (!String.IsNullOrWhiteSpace(arguments.filter.Value))
                {
                    ftl = arguments.filter.Value;
                }

                string sort = null;
                if (!String.IsNullOrWhiteSpace(arguments.sort.Value))
                {
                    sort = arguments.sort.Value;
                }

                int?skip = null;
                if (arguments.skip.Value > 0)
                {
                    skip = arguments.skip.Value;
                }

                int?limit = null;
                if (arguments.limit.Value > 0)
                {
                    limit = arguments.limit.Value;
                }

                var            connectionString = MongoDBSettings.GetInstance().ConnectionString;
                var            client           = new MongoClient(connectionString);
                IMongoDatabase db         = client.GetDatabase(MongoDBSettings.GetInstance().DatabaseName);
                var            collection = db.GetCollection <BsonDocument>(arguments.collection.Value);
                var            y          = collection.Find(ftl).Skip(skip).Limit(limit).Sort(sort).ToListAsync();
                y.Wait();
                var jsonWriterSettings = new JsonWriterSettings {
                    OutputMode = JsonOutputMode.Strict
                };
                int count = y.Result.Count;
                if (count > 0)
                {
                    StringBuilder sb = new StringBuilder(1024);
                    sb.Append("[ ");
                    for (int i = 0; i < count; i++)
                    {
                        sb.Append(y.Result[i].ToJson(jsonWriterSettings));
                        if (i != count - 1)
                        {
                            sb.Append(", ");
                        }
                    }
                    sb.Append(" ]");
                    outData = sb.ToString();
                }

                Scripter.Variables.SetVariableValue(arguments.Result.Value, new TextStructure(outData));
            }
            catch (Exception exc)
            {
                throw new ApplicationException($"Error occured find command :" + exc.Message);
            }
            return;
        }
Exemple #3
0
 static MongoDBSettings()
 {
     instance = new MongoDBSettings();
 }