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); } }
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); }