Ejemplo n.º 1
0
        public static String GetId(ScriptStructureNew Script)
        {
            if (_database == null)
            {
                return(null);
            }

            var collection = _database.GetCollection <BsonDocument>(Script.StationName + "_SCHEDULE");
            var builder    = Builders <BsonDocument> .Filter;
            var filter     = builder.Eq("ScriptID", Script.ScriptID) & builder.Eq("BlockID", Script.BlockID);

            List <BsonDocument> value = collection.Find(filter).Project("{_id:1}").Limit(1).ToList();

            //var document = collection.Find(filter).Limit(1).ToList();
            //List<BsonDocument> value = document;

            if (value.Count > 0)
            {
                return(value[0]["_id"].ToString());
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        public static String InsertSchedule(ScriptStructureNew Script)
        {
            var collection = _database.GetCollection <BsonDocument>(Script.StationName + "_SCHEDULE");

            var document = new BsonDocument
            {
                { "ScriptID", Script.ScriptID },
                { "TargetID", Script.TargetID },
                { "BlockID", Script.BlockID },
                { "Life", Script.Life },
                { "StationName", Script.StationName },
                { "DeviceName", Script.DeviceName },
                { "CommandName", Script.CommandName },
                { "Parameters", String.Join(",", Script.Parameters) },
                { "ScriptState", Script.ScriptState },
                { "ExecutionTimeStart", Script.ExecutionTimeStart },
                { "ExecutionTimeEnd", Script.ExecutionTimeEnd },
                { "ActualTimeStart", "" },
                { "ActualTimeEnd", "" },
                { "Owner", Script.Owner },
                { "IsRead", true },
            };

            collection = _database.GetCollection <BsonDocument>(Script.StationName + "_SCHEDULE");
            collection.InsertOne(document);

            return(document["_id"].ToString());
        }
Ejemplo n.º 3
0
        public static Boolean UpdateSchedule(ScriptStructureNew Script)
        {
            if (_database == null)
            {
                return(false);
            }

            var collection = _database.GetCollection <BsonDocument>(Script.StationName + "_SCHEDULE");
            var builder    = Builders <BsonDocument> .Filter;
            var filter     = builder.Eq("StationName", Script.StationName) & builder.Eq("BlockID", Script.BlockID) & builder.Eq("ScriptID", Script.ScriptID);

            var IsRead = false;

            if (Script.ScriptState.ToString() == SCRIPTSTATE.SENDINGTOSTATION.ToString())
            {
                IsRead = true;
            }
            else
            {
                IsRead = false;
            }

            var update = Builders <BsonDocument> .Update.Set("ScriptState", Script.ScriptState).Set("IsRead", IsRead);

            if (Script.ScriptState == SCRIPTSTATE.EXECUTING.ToString())
            {
                update = Builders <BsonDocument> .Update.Set("ScriptState", Script.ScriptState).Set("IsRead", IsRead).Set("ActualTimeStart", Script.ActualTimeStart);
            }
            else if (Script.ScriptState == SCRIPTSTATE.EXECUTED.ToString())
            {
                update = Builders <BsonDocument> .Update.Set("ScriptState", Script.ScriptState).Set("IsRead", IsRead).Set("ActualTimeStart", Script.ActualTimeStart).Set("ActualTimeEnd", Script.ActualTimeEnd);
            }

            while (true)
            {
                try
                {
                    collection.UpdateMany(filter, update);
                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine("Mongo Connection Error !!");
                }

                Task.Delay(1000);
            }

            return(true);
        }