Esempio n. 1
0
        public static void RefreshScript(STATIONNAME StationName)
        {
            StationScript stationScript = GetStationScript(StationName);

            if (stationScript != null)
            {
                stationScript.RemoveAllScript();
            }
            else
            {
                stationScript = new StationScript(StationName);
                ScriptStation.Add(stationScript);
            }

            String LastestScript = GetLastestFile("\\\\192.168.2.110\\ftp\\Script\\" + StationName);

            if (ExtractScriptData(LastestScript, StationName, scriptConfigure, false))
            {
                SendScriptToStation(StationName);
            }
            else
            {
                DisplayScript("", StationName);
            }
        }
Esempio n. 2
0
        private static FILESTATE IsTheSameScript(String FilePathStr, List <ScriptStructureNew> NewScriptCollection, STATIONNAME StationName, List <ScriptConfigure> scriptConfigures)
        {
            StationScript ThisStation = GetStationScript(StationName);

            if (ThisStation != null)
            {
                if (ThisStation.LastestScriptFileName != FilePathStr)
                {
                    return(FILESTATE.NOTSAME);
                }

                if (scriptConfigure != null)
                {
                    ScriptConfigure tempScript = scriptConfigure.FirstOrDefault(Item => Item.config_name == StationName.ToString());

                    if (tempScript != null)
                    {
                        if (tempScript.config_status == false)
                        {
                            Console.WriteLine(StationName + " | RE-SENDING NOT SEND TO STATION -- FILE STATE (" + tempScript.config_status + ")");
                            return(FILESTATE.RESEND);
                        }
                    }
                }

                if (NewScriptCollection.Count() != ThisStation.ScriptCollection.Count() && ThisStation.ScriptCollection.Count() > 0)
                {
                    Console.WriteLine(StationName + " | COUNT: " + NewScriptCollection.Count() + " == " + ThisStation.ScriptCollection.Count());
                    return(FILESTATE.COMMANDCHANGE);
                }

                if (ThisStation.LastestScriptFileName == FilePathStr)
                {
                    return(FILESTATE.SAME);
                }

                for (int i = 0; i < NewScriptCollection.Count(); i++)
                {
                    if (NewScriptCollection[i].ScriptID != ThisStation.ScriptCollection[i].ScriptID)
                    {
                        Console.WriteLine(StationName + " | NOT SAME -- SCRIPT ID (" + NewScriptCollection[i].ScriptID + " != " + ThisStation.ScriptCollection[i].ScriptID);
                        return(FILESTATE.DIFFID);
                    }

                    if (NewScriptCollection[i].ScriptState == SCRIPTSTATE.WAITINGSERVER.ToString() || NewScriptCollection[i].ScriptState == SCRIPTSTATE.SENDINGTOSTATION.ToString())
                    {
                        Console.WriteLine(StationName + " | RE-SENDING NOT SEND TO STATION -- STATE (" + NewScriptCollection[i].ScriptState + ")");
                        return(FILESTATE.RESEND);
                    }
                }
                //Console.WriteLine("SAME FILE ALERT");
            }
            else
            {
                return(FILESTATE.NOTSAME);
            }

            return(FILESTATE.SAME);
        }
Esempio n. 3
0
 private static void initialConfig()
 {
     if (scriptConfigure != null)
     {
         foreach (ScriptConfigure config in scriptConfigure)
         {
             StationScript stationScript = new StationScript(TTCSHelper.StationStrConveter(config.config_name));
             stationScript.LastestScriptFileName = config.config_value;
             ScriptStation.Add(stationScript);
         }
     }
 }
Esempio n. 4
0
        public static void DisplayScript(String Message, STATIONNAME StationName)
        {
            if (_ScriptMonitoring != null)
            {
                StationScript ThisStation = GetStationScript(StationName);

                MethodInfo MInfo = _ScriptMonitoring.GetType().GetMethod("AddScript");
                MInfo.Invoke(_ScriptMonitoring, new Object[] { ThisStation.ScriptCollection });

                if (Message != "")
                {
                    DisplayScriptMessage(Message);
                }
            }
        }
Esempio n. 5
0
        public static void SendScriptToStation(STATIONNAME ScriptStationName)
        {
            if (ScriptStationName != STATIONNAME.NULL)
            {
                String         Message = null;
                StationHandler StationCommunication = AstroData.GetStationObject(ScriptStationName);
                StationScript  StationScript        = GetStationScript(ScriptStationName);

                DBScheduleEngine.UpdateFailSchedule(ScriptStationName);

                //DBScheduleEngine.DropSchedule(ScriptStationName);
                Console.WriteLine("Preparing Station Script before sending.");

                foreach (ScriptStructureNew Script in StationScript.ScriptCollection)
                {
                    //if (Script.ScriptState != SCRIPTSTATE.CANCELED.ToString())
                    //{
                    //    Script.ScriptState = SCRIPTSTATE.SENDINGTOSTATION.ToString();
                    //    DBScheduleEngine.UpdateSchedule(Script);
                    //}
                    //else
                    //{
                    //    Console.WriteLine("CANCEL");
                    //}
                    Script.ScriptState = SCRIPTSTATE.SENDINGTOSTATION.ToString();
                    DBScheduleEngine.UpdateSchedule(Script);
                }


                Console.WriteLine("Sending Script to " + ScriptStationName + " ...");
                if (StationCommunication.NewScriptInformation(StationScript.GetScript(), out Message))
                {
                    //DBScheduleEngine.DropSchedule(ScriptStationName);

                    /*
                     * foreach (ScriptStructureNew Script in StationScript.ScriptCollection)
                     * {
                     *  Script.ScriptState = SCRIPTSTATE.WAITINGSTATION.ToString();
                     *  DBScheduleEngine.UpdateSchedule(Script);
                     * }
                     */
                }

                DisplayScriptMessage(Message);
            }
        }
Esempio n. 6
0
        public static void NewScriptChecker(String ScriptServerAddress, String LoginUser, String LoginPassword)
        {
            String ScriptPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\script_config.json";

            if (!File.Exists(ScriptPath))
            {
                File.Create(ScriptPath).Dispose();
            }

            using (StreamReader r = new StreamReader(ScriptPath))
            {
                String jsonString = r.ReadToEnd();
                scriptConfigure = JsonConvert.DeserializeObject <List <ScriptConfigure> >(jsonString);

                initialConfig();
            }

            System.Net.NetworkCredential readCredentials = new NetworkCredential(@"AstroNET", "P@ssw0rd");

            Task ScriptTask = Task.Run(async() =>
            {
                while (true)
                {
                    foreach (STATIONNAME StationName in Enum.GetValues(typeof(STATIONNAME)))
                    {
                        if (StationName != STATIONNAME.NULL && StationName != STATIONNAME.ASTROSERVER)
                        {
                            StationHandler ThisStation = AstroData.GetStationObject(StationName);

                            if (ThisStation != null)
                            {
                                if (!ThisStation.IsStationConnected)
                                {
                                    continue;
                                }
                                if (ThisStation.ServerCallBackObject == null)
                                {
                                    continue;
                                }
                                if (ThisStation.IsSendingScriptToStation)
                                {
                                    continue;
                                }

                                StationScript stationScript = GetStationScript(StationName);

                                if (stationScript == null)
                                {
                                    stationScript = new StationScript(StationName);
                                    ScriptStation.Add(stationScript);
                                }

                                using (new NetworkConnection("\\\\192.168.2.110\\FTP", readCredentials))
                                {
                                    String LastestScript = GetLastestFile("\\\\192.168.2.110\\FTP\\Script\\" + StationName);

                                    if (LastestScript != null)
                                    {
                                        //Console.WriteLine("Script Task: " + LastestScript);

                                        STATIONNAME ScriptStationName = StationName;

                                        if (ExtractScriptData(LastestScript, StationName, scriptConfigure, true))
                                        {
                                            Console.WriteLine("Extracted Script... : " + LastestScript);

                                            ThisStation.IsSendingScriptToStation = true;
                                            SendScriptToStation(StationName);
                                        }
                                    }
                                }
                            }

                            //Console.WriteLine(StationName);
                        }
                    }

                    using (StreamWriter sw = new StreamWriter(ScriptConfig))
                    {
                        //Console.WriteLine(scriptConfigure.Count);

                        String DataJson = JsonConvert.SerializeObject(scriptConfigure);
                        sw.WriteLine(DataJson);
                    }

                    await Task.Delay(1000);
                }
            });
        }
Esempio n. 7
0
        private static Boolean ExtractScriptData(String FileName, STATIONNAME StationName, List <ScriptConfigure> scriptConfigures, bool checkSameScript)
        {
            Boolean IsScriptOK = false;
            //StationName = STATIONNAME.NULL;

            String FilePathStr = FileName;

            if (File.Exists(FilePathStr))
            {
                try
                {
                    using (FileStream fs = new FileStream(FilePathStr, FileMode.Open, FileAccess.Read, FileShare.None))
                    {
                        using (StreamReader r = new StreamReader(fs))
                        {
                            //Console.WriteLine("Reading... " + FilePathStr);
                            String jsonString = r.ReadToEnd();

                            if (jsonString.Length > 0)
                            {
                                try
                                {
                                    List <ScriptStructureNew> NewScriptCollection = JsonConvert.DeserializeObject <List <ScriptStructureNew> >(jsonString);

                                    if (NewScriptCollection.Count > 0)
                                    {
                                        String TempFileNameStr = FilePathStr.Split('\\').Last();
                                        TempFileNameStr = TempFileNameStr.Replace(".txt", "");

                                        FILESTATE FileState = IsTheSameScript(TempFileNameStr, NewScriptCollection, StationName, scriptConfigures);

                                        if (FileState != FILESTATE.SAME || !checkSameScript)
                                        {
                                            bool IsMustInsertToDB = true;

                                            Console.WriteLine("Extracting Script... : " + FilePathStr);

                                            StationScript scriptTemp = ScriptStation.FirstOrDefault(Item => Item.StationName == StationName);
                                            scriptTemp.LastestScriptFileName = TempFileNameStr;

                                            if (scriptConfigure == null)
                                            {
                                                scriptConfigure = new List <ScriptConfigure>();
                                                scriptConfigure.Add(new ScriptConfigure(StationName.ToString(), TempFileNameStr, false, true));
                                            }
                                            else if (scriptTemp == null)
                                            {
                                                scriptConfigure.Add(new ScriptConfigure(StationName.ToString(), TempFileNameStr, false, true));
                                            }
                                            else
                                            {
                                                ScriptConfigure tempScript = scriptConfigure.FirstOrDefault(Item => Item.config_name == StationName.ToString());

                                                if (tempScript != null)
                                                {
                                                    if (tempScript.config_isaddtodb == true)
                                                    {
                                                        IsMustInsertToDB = false;
                                                    }
                                                    else
                                                    {
                                                        tempScript.config_isaddtodb = true;
                                                    }

                                                    tempScript.config_value  = TempFileNameStr;
                                                    tempScript.config_status = false;
                                                }
                                                else
                                                {
                                                    scriptConfigure.Add(new ScriptConfigure(StationName.ToString(), TempFileNameStr, false, true));
                                                }
                                            }

                                            if (FileState == FILESTATE.NOTSAME)
                                            {
                                                IsMustInsertToDB = true;
                                            }

                                            //DBScheduleEngine.DropSchedule(StationName);
                                            //Console.WriteLine(IsMustInsertToDB);

                                            String Message = "";

                                            Console.WriteLine("Verifying Script... : " + FilePathStr);

                                            if (VerifyScript(StationName, NewScriptCollection, out Message))
                                            {
                                                Console.WriteLine("Clear Fail Script to Database... : " + FilePathStr);
                                                DBScheduleEngine.CancleFailSchedule(StationName);

                                                Console.WriteLine("Insert Script to Database... (DB: " + IsMustInsertToDB + ") : " + FilePathStr);
                                                foreach (ScriptStructureNew Script in NewScriptCollection)
                                                {
                                                    //DUMMY ONLY
                                                    //Script.TargetID = "XXXXXX";
                                                    if (IsMustInsertToDB)
                                                    {
                                                        String _id = DBScheduleEngine.InsertSchedule(Script);
                                                        if (_id != null)
                                                        {
                                                            Script._id = _id;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        String _id = DBScheduleEngine.GetId(Script);
                                                        Script._id = _id;
                                                        //Console.WriteLine("OLD ID: " + _id);
                                                    }

                                                    //if (Script.ScriptState != SCRIPTSTATE.CANCELED.ToString())
                                                    //{
                                                    //    Script.ScriptState = SCRIPTSTATE.WAITINGSERVER.ToString();
                                                    //}
                                                }

                                                Console.WriteLine("Add Script to Object... : " + FilePathStr);

                                                StationName = TTCSHelper.StationStrConveter(NewScriptCollection.FirstOrDefault().StationName);
                                                StationScript ThisStationTemp = GetStationScript(StationName);

                                                if (ThisStationTemp == null)
                                                {
                                                    ThisStationTemp = new StationScript(StationName);
                                                    ScriptStation.Add(ThisStationTemp);
                                                }
                                                else
                                                {
                                                    ThisStationTemp.RemoveAllScript();
                                                }

                                                ThisStationTemp.AddScript(NewScriptCollection);

                                                DisplayScript(Message, StationName);
                                                IsScriptOK = true;

                                                fs.Close();
                                            }
                                            else
                                            {
                                                fs.Close();

                                                DisplayScriptMessage(Message);

                                                Console.WriteLine("Verifying command failed, Deleted.");
                                                Console.WriteLine(Message);
                                                File.Delete(@FilePathStr);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        //Console.WriteLine("No Data Received, Deleted.");
                                    }
                                }
                                catch (JsonReaderException ex)
                                {
                                    fs.Close();

                                    try
                                    {
                                        Console.WriteLine("File isn't jSon, Deleted.");
                                        File.Delete(@FilePathStr);
                                    }
                                    catch (Exception x)
                                    {
                                        Console.WriteLine(x.Message);
                                    }
                                }
                                catch (Exception ex2)
                                {
                                    fs.Close();

                                    Console.WriteLine(ex2.Message);
                                    File.Delete(@FilePathStr);
                                }
                            }
                            else
                            {
                                fs.Close();

                                try
                                {
                                    Console.WriteLine("File size <= 0 byte, Deleted.");
                                    File.Delete(@FilePathStr);
                                }
                                catch (Exception x)
                                {
                                    Console.WriteLine(x);
                                }
                            }
                        }
                    }
                }
                catch (Exception z)
                {
                    Console.WriteLine(z);
                }
            }

            return(IsScriptOK);
        }
Esempio n. 8
0
        private static StationScript GetStationScript(STATIONNAME StationName)
        {
            StationScript ThisStation = ScriptStation.FirstOrDefault(Item => Item.StationName == StationName);

            return(ThisStation);
        }