public static RaiserInfo GetValueFromJson(TextReader jsonStream, string language) { RaiserInfo result = null; using (Newtonsoft.Json.JsonTextReader jtr = new Newtonsoft.Json.JsonTextReader(jsonStream)) { bool? enable = true; int? count = 0; string md5 = string.Empty, url = string.Empty, tmp; while (jtr.Read()) { if (jtr.TokenType == Newtonsoft.Json.JsonToken.PropertyName) { if (((string)jtr.Value).ToLower() == language.ToLower()) { while (jtr.Read()) { if (jtr.TokenType == Newtonsoft.Json.JsonToken.PropertyName) { tmp = ((string)jtr.Value).ToLower(); if (tmp == "enabled") { enable = jtr.ReadAsBoolean(); } else if (tmp == "filecount") { count = jtr.ReadAsInt32(); } else if (tmp == "patchmd5") { md5 = jtr.ReadAsString(); } else if (tmp == "patchurl") { url = jtr.ReadAsString(); } else { jtr.Skip(); } } } } else { jtr.Skip(); } } } if (enable.HasValue && !enable.Value) { result = new RaiserInfo(false, count.HasValue ? count.Value : 0, md5, url); } else { result = new RaiserInfo(true, count.HasValue ? count.Value : 0, md5, url); } } return(result); }
List <Show> Grab(GrabParametersBase p, ILogger logger) { var pp = (CyfraPlus.GrabParameters)p; var shows = new List <Show>(); var wr = WebRequest.Create(string.Format(urlFormat, pp.Date.ToString(DateFormat))); logger.WriteEntry(string.Format("Grabbing Cyfra+ date {0} ...", pp.Date.ToString(DateFormat)), LogType.Info); var res = (HttpWebResponse)wr.GetResponse(); const int ChannelDepth = 2; using (var sr = new StreamReader(res.GetResponseStream())) { var startDownloadTime = DateTime.Now; var data = new StringBuilder(); int blockSize = 16384; while (!sr.EndOfStream) { var buf = new char[blockSize]; var totalRead = sr.ReadBlock(buf, 0, blockSize); data.Append(buf); if (DateTime.Now - startDownloadTime > TimeSpan.FromSeconds(1)) { startDownloadTime = DateTime.Now; logger.WriteEntry(string.Format("Downloaded {0:#,##0} bytes so far", data.Length), LogType.Info); } } var r = new Newtonsoft.Json.JsonTextReader(new StringReader(data.ToString())); while (r.Read()) { r.Read(); var channelNumber = r.ReadAsInt32(); var channelName = r.ReadAsString(); r.Read(); r.Read(); while (r.Depth > ChannelDepth) { var show = new Show(); show.Channel = channelName.Trim(); var programId = r.ReadAsInt32(); show.Title = Tools.CleanupText(r.ReadAsString()); show.StartTime = new DateTime(1970, 1, 1).Add(TimeSpan.FromSeconds(r.ReadAsInt32().Value)); show.EndTime = show.StartTime.Add(TimeSpan.FromSeconds(Convert.ToDouble(r.ReadAsInt32()))); var num = r.ReadAsInt32(); shows.Add(show); var depth = r.Depth; while (r.Depth == depth) { r.Read(); } r.Read(); } } } return(shows); }
List<Show> Grab(GrabParametersBase p,ILogger logger) { var pp = (CyfraPlus.GrabParameters)p; var shows = new List<Show>(); var wr = WebRequest.Create(string.Format(urlFormat, pp.Date.ToString(DateFormat))); logger.WriteEntry(string.Format("Grabbing Cyfra+ date {0} ...", pp.Date.ToString(DateFormat)), LogType.Info); var res = (HttpWebResponse)wr.GetResponse(); const int ChannelDepth = 2; using (var sr = new StreamReader(res.GetResponseStream())) { var startDownloadTime = DateTime.Now; var data = new StringBuilder(); int blockSize = 16384; while (!sr.EndOfStream) { var buf = new char[blockSize]; var totalRead = sr.ReadBlock(buf, 0, blockSize); data.Append(buf); if (DateTime.Now - startDownloadTime > TimeSpan.FromSeconds(1)) { startDownloadTime = DateTime.Now; logger.WriteEntry(string.Format("Downloaded {0:#,##0} bytes so far", data.Length), LogType.Info); } } var r = new Newtonsoft.Json.JsonTextReader(new StringReader(data.ToString())); while (r.Read()) { r.Read(); var channelNumber = r.ReadAsInt32(); var channelName = r.ReadAsString(); r.Read(); r.Read(); while (r.Depth > ChannelDepth) { var show = new Show(); show.Channel = channelName.Trim(); var programId = r.ReadAsInt32(); show.Title = Tools.CleanupText(r.ReadAsString()); show.StartTime = new DateTime(1970, 1, 1).Add(TimeSpan.FromSeconds(r.ReadAsInt32().Value)); show.EndTime = show.StartTime.Add(TimeSpan.FromSeconds(Convert.ToDouble(r.ReadAsInt32()))); var num = r.ReadAsInt32(); shows.Add(show); var depth = r.Depth; while (r.Depth == depth) r.Read(); r.Read(); } } } return shows; }
public Guid?MoveToNextId() { bool shouldContinue = true; while (shouldContinue) { shouldContinue = reader.Read(); if (reader.Value?.ToString() == "Id") { var id = reader.ReadAsString(); return(new Guid(id)); } } //A null id means we have reached EOF return(null); }
protected void OnUninstalling(object sender, DoWorkEventArgs e) { WorkerInfo wi = e.Argument as WorkerInfo; this.OnCurrentStepChanged(new StepEventArgs(string.Format(LanguageManager.GetMessageText("Restoring0PatchFiles", "Restoring {0} files"), Infos.DefaultValues.AIDA.Strings.LargeFilesPatchCalled))); string sourceTable = string.Empty; using (var theTextReader = new StringReader(wi.Params as string)) using (var jsonReader = new Newtonsoft.Json.JsonTextReader(theTextReader)) while (jsonReader.Read()) { if (jsonReader.TokenType == Newtonsoft.Json.JsonToken.PropertyName) { if (jsonReader.Value is string && (jsonReader.Value as string).ToLower() == "largefileslist") { sourceTable = jsonReader.ReadAsString(); } } } string[] tbl_files = AIDA.StringToTableString(sourceTable); string pso2datafolder = DefaultValues.Directory.PSO2Win32Data; string englishBackupFolder = Path.Combine(pso2datafolder, DefaultValues.Directory.PSO2Win32DataBackup, DefaultValues.Directory.Backup.LargeFiles); List <string> backup_files = new List <string>(); if (Directory.Exists(englishBackupFolder)) { foreach (string derp in Directory.GetFiles(englishBackupFolder, "*", SearchOption.TopDirectoryOnly)) { backup_files.Add(Path.GetFileName(derp).ToLower()); } } string backedup; string data; string currentStringIndex; this.OnProgressBarStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.Percent)); if (backup_files.Count > 0) { if (tbl_files.Length > backup_files.Count) { int total = tbl_files.Length; this.OnCurrentTotalProgressChanged(new ProgressEventArgs(total)); int count = 0; List <string> nonExist = new List <string>(); for (int i = 0; i < tbl_files.Length; i++) { currentStringIndex = tbl_files[i].ToLower(); data = Path.Combine(pso2datafolder, currentStringIndex); backedup = Path.Combine(englishBackupFolder, currentStringIndex); if (File.Exists(backedup)) { backup_files.Remove(currentStringIndex); File.Delete(data); File.Move(backedup, data); count++; this.OnCurrentProgressChanged(new ProgressEventArgs(count + 1)); } else { nonExist.Add(currentStringIndex); } } if (backup_files.Count > 0) { for (int i = 0; i < backup_files.Count; i++) { currentStringIndex = backup_files[i]; data = Path.Combine(pso2datafolder, currentStringIndex); backedup = Path.Combine(englishBackupFolder, currentStringIndex); if (File.Exists(backedup)) { File.Delete(data); File.Move(backedup, data); count++; this.OnCurrentProgressChanged(new ProgressEventArgs(count + 1)); } } } Directory.Delete(englishBackupFolder, true); if (nonExist.Count > 0) { this.OnCurrentTotalProgressChanged(new ProgressEventArgs(nonExist.Count)); this.OnCurrentStepChanged(new StepEventArgs(LanguageManager.GetMessageText("RedownloadingMissingOriginalFiles", "Redownloading missing original files"))); using (CustomWebClient downloader = WebClientPool.GetWebClient_PSO2Download()) { Dictionary <string, string> downloadlist = new Dictionary <string, string>(); for (int i = 0; i < nonExist.Count; i++) { currentStringIndex = nonExist[i]; downloadlist.Add("data/win32/" + currentStringIndex + DefaultValues.Web.FakeFileExtension, Path.Combine(pso2datafolder, currentStringIndex)); } downloader.AutoUserAgent = true; PSO2UpdateManager.RedownloadFiles(downloader, downloadlist, Downloader_StepProgressChanged, Downloader_DownloadFileProgressChanged, this.Uninstall_RedownloadCallback); e.Result = false; } } else { e.Result = true; } } else { int total = backup_files.Count; this.OnCurrentTotalProgressChanged(new ProgressEventArgs(total)); for (int i = 0; i < backup_files.Count; i++) { currentStringIndex = backup_files[i]; data = Path.Combine(pso2datafolder, currentStringIndex); backedup = Path.Combine(englishBackupFolder, currentStringIndex); if (File.Exists(backedup)) { File.Delete(data); File.Move(backedup, data); this.OnCurrentProgressChanged(new ProgressEventArgs(i + 1)); } } Directory.Delete(englishBackupFolder, true); e.Result = true; } } else if (tbl_files.Length > 0) { if (!this.IsInstalled) { throw new KeyNotFoundException(string.Format(LanguageManager.GetMessageText("0PatchIsNotInstalled", "{0} is not installed."), Infos.DefaultValues.AIDA.Strings.LargeFilesPatchCalled)); } this.OnCurrentTotalProgressChanged(new ProgressEventArgs(tbl_files.Length)); this.OnCurrentStepChanged(new StepEventArgs(LanguageManager.GetMessageText("RedownloadingMissingOriginalFiles", "Redownloading missing original files"))); using (CustomWebClient downloader = WebClientPool.GetWebClient_PSO2Download()) { Dictionary <string, string> downloadlist = new Dictionary <string, string>(); for (int i = 0; i < tbl_files.Length; i++) { currentStringIndex = tbl_files[i]; downloadlist.Add("data/win32/" + currentStringIndex + DefaultValues.Web.FakeFileExtension, Path.Combine(pso2datafolder, currentStringIndex)); } downloader.AutoUserAgent = true; PSO2UpdateManager.RedownloadFiles(downloader, downloadlist, Downloader_StepProgressChanged, Downloader_DownloadFileProgressChanged, this.Uninstall_RedownloadCallback); e.Result = false; } } else { throw new Exception("Unknown Error"); //Failed } }
protected virtual void OnInstalling(object sender, DoWorkEventArgs e) { //return; TransarmWorkerInfo seed = e.Argument as TransarmWorkerInfo; PatchNotificationEventArgs seedEvent = seed.Params as PatchNotificationEventArgs; string pso2datadir = DefaultValues.Directory.PSO2Win32Data; string largefilesBackupFolder = Path.Combine(pso2datadir, DefaultValues.Directory.PSO2Win32DataBackup, DefaultValues.Directory.Backup.LargeFiles); this.OnCurrentStepChanged(new StepEventArgs(string.Format(LanguageManager.GetMessageText("Begin0PatchFiles", "Extracting {0} data"), Infos.DefaultValues.AIDA.Strings.LargeFilesPatchCalled))); string myPatcher = Path.Combine(seed.Path, Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.TransAmEXE); string my7zDB = Path.Combine(seed.Path, Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.LargeFilesDB + "zip"); string myDB = string.Empty; bool isOkay = false; var result = AbstractExtractor.ExtractZip(my7zDB, seed.Path, null); isOkay = result.IsSuccess; myDB = result.SuccessItems[0].Key; File.Delete(my7zDB); if (isOkay) { if (false) { this.OnCurrentStepChanged(new StepEventArgs(string.Format(LanguageManager.GetMessageText("BeginRestoring0PatchFiles", "Getting {0} filelist"), Infos.DefaultValues.AIDA.Strings.LargeFilesPatchCalled))); string rawtbl = this.myWebClient_ForAIDA.DownloadString(Classes.AIDA.WebPatches.PatchesFileListInfos); string sourceTable = string.Empty; using (var theTextReader = new StringReader(rawtbl)) using (var jsonReader = new Newtonsoft.Json.JsonTextReader(theTextReader)) while (jsonReader.Read()) { if (jsonReader.TokenType == Newtonsoft.Json.JsonToken.PropertyName) { if (jsonReader.Value is string && (jsonReader.Value as string).ToLower() == "largefileslist") { sourceTable = jsonReader.ReadAsString(); } } } string[] tbl_files = AIDA.StringToTableString(sourceTable); string originalFile, backupFile, currentIndexString; this.OnCurrentStepChanged(new StepEventArgs(string.Format(LanguageManager.GetMessageText("Creating0PatchBackup", "Creating backup for {0} files"), Infos.DefaultValues.AIDA.Strings.LargeFilesPatchCalled))); int total = tbl_files.Length; this.OnCurrentTotalProgressChanged(new ProgressEventArgs(total)); Directory.CreateDirectory(largefilesBackupFolder); for (int i = 0; i < tbl_files.Length; i++) { currentIndexString = tbl_files[i]; originalFile = Path.Combine(pso2datadir, currentIndexString); backupFile = Path.Combine(largefilesBackupFolder, currentIndexString); File.Copy(originalFile, backupFile, true); this.OnCurrentProgressChanged(new ProgressEventArgs(i + 1)); } } this.OnCurrentStepChanged(new StepEventArgs(LanguageManager.GetMessageText("CallTransarmPatcherBackup", "Call patcher and wait for patcher finish the job"))); this.OnProgressBarStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.Infinite)); patcherProcess = Infos.CommonMethods.MakeProcess(myPatcher); //-i "Backup/" -h largefiles-10-7-2016 lf.stripped.db "Out" string MyBaseDateString = "largefiles-" + seed.Date.Month.ToString() + "-" + seed.Date.Day.ToString() + "-" + seed.Date.Year.ToString(); //lf.stripped.db //Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.LargeFilesBackupFolder List <string> myParams = new List <string>(); myParams.Add(Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.paramNodeForBackupOutput); myParams.Add(Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.LargeFilesBackupFolder); myParams.Add(Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.paramNodeForOutput); myParams.Add(MyBaseDateString); myParams.Add(myDB); myParams.Add(Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.ValidPath(DefaultValues.Directory.PSO2Win32Data)); string pso2bin = DefaultValues.Directory.PSO2Dir; string veda = Path.Combine(pso2bin, Infos.DefaultValues.AIDA.Tweaker.TransArmThingiesOrWatever.VEDA_Filename); string asdadasd = Leayal.ProcessHelper.TableStringToArgs(myParams); //Log.LogManager.GetLog("asdasd.txt", true).Print(asdadasd); patcherProcess.StartInfo.Arguments = asdadasd; patcherProcess.StartInfo.WorkingDirectory = seed.Path; patcherProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal; if (Leayal.OSVersionInfo.Name.ToLower() != "windows xp") { patcherProcess.StartInfo.Verb = "runas"; } Exception exVeda = AIDA.TransarmOrVedaOrWhatever.VEDA_Activate(pso2bin); if (exVeda == null) { patcherProcess.StartInfo.UseShellExecute = false; patcherProcess.Start(); patcherProcess.WaitForExit(); File.Delete(veda); this.OnProgressBarStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None)); //Log.LogManager.GetLogDefaultPath("LargeFile.txt", true).Print("LargeFile Exit COde: " + patcher.ExitCode.ToString()); try { if ((patcherProcess != null) && (patcherProcess.ExitCode == 0)) { patcherProcess = null; e.Result = seed.Date.ToVersionString(); } else { patcherProcess = null; if (seed.Backup) { if (Directory.Exists(largefilesBackupFolder)) { this.OnProgressBarStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.Percent)); this.OnCurrentStepChanged(new StepEventArgs(string.Format(LanguageManager.GetMessageText("Rollback0Patch", "Rolling back the {0} installation"), Infos.DefaultValues.AIDA.Strings.LargeFilesPatchCalled))); string[] tbl_backup = Directory.GetFiles(largefilesBackupFolder, "*", SearchOption.TopDirectoryOnly); string originalFile, backupFile, currentIndexString; int total = tbl_backup.Length; this.OnCurrentTotalProgressChanged(new ProgressEventArgs(total)); for (int i = 0; i < tbl_backup.Length; i++) { currentIndexString = Path.GetFileName(tbl_backup[i]); originalFile = Path.Combine(pso2datadir, currentIndexString); backupFile = Path.Combine(largefilesBackupFolder, currentIndexString); File.Delete(originalFile); File.Move(backupFile, originalFile); this.OnCurrentProgressChanged(new ProgressEventArgs(i + 1)); } } } throw new Exception(LanguageManager.GetMessageText("CancelLargeFilesPatchFiles", "User cancelled or the patcher closed with Error(s).")); } File.Delete(Path.Combine(seed.Path, myDB)); File.Delete(myPatcher); } catch (System.Net.WebException) { } } else { throw exVeda; } } else { throw new Exception(LanguageManager.GetMessageText("BadArchiveOrUnknownError", "Bad archive file or unknown error happened while") + " " + string.Format(LanguageManager.GetMessageText("Begin0PatchFiles", "Extracting {0} data"), Infos.DefaultValues.AIDA.Strings.LargeFilesPatchCalled)); } try { Directory.Delete(seed.Path, true); } catch (IOException) { try { Leayal.IO.DirectoryHelper.EmptyFolder(seed.Path); Directory.Delete(seed.Path, true); } catch { } } e.Result = seedEvent.NewPatchVersion; }
public ActionResult OpenNBG(string fname, bool antrag, bool sign, bool do_xtraData) { string err = null; string rawHtml = null; string StartID = null; if (string.IsNullOrWhiteSpace(fname)) { err = "Der übergebene Parameter fname darf n icht leer sein. Starten Sie am besten die Anwendung über die Index.cshtml."; } else { var stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(fname); byte[] BT4allFile = null; if (fname.EndsWith(".xml", StringComparison.CurrentCultureIgnoreCase)) { var biproString = new System.IO.StreamReader(stream).ReadToEnd(); using (var mem = new System.IO.MemoryStream()) { var writer = new Newtonsoft.Json.JsonTextWriter( new System.IO.StreamWriter(mem)); writer.WriteStartObject(); writer.WritePropertyName("module"); writer.WriteValue("YA"); writer.WritePropertyName("data"); writer.WriteValue(biproString); writer.WritePropertyName("callBackURL"); writer.WriteValue("https://nuernberger.de"); writer.WriteEndObject(); writer.Flush(); BT4allFile = mem.GetBuffer().Take((int)mem.Length).ToArray(); } } else if (fname.EndsWith(".txt", StringComparison.CurrentCultureIgnoreCase)) { var biproString = new System.IO.StreamReader(stream).ReadToEnd(); using (var mem = new System.IO.MemoryStream()) { var writer = new Newtonsoft.Json.JsonTextWriter( new System.IO.StreamWriter(mem)); writer.WriteStartObject(); writer.WritePropertyName("module"); writer.WriteValue("LVLebenPrivat_6"); writer.WritePropertyName("data"); writer.WriteValue(biproString); writer.WritePropertyName("callBackURL"); writer.WriteValue("https://nuernberger.de"); writer.WriteEndObject(); writer.Flush(); BT4allFile = mem.GetBuffer().Take((int)mem.Length).ToArray(); } } else //PDF auspacken { iTextSharp.text.pdf.PdfReader reader; try { reader = new iTextSharp.text.pdf.PdfReader(stream); iTextSharp.text.pdf.PdfDictionary root = reader.Catalog; iTextSharp.text.pdf.PdfDictionary names = root.GetAsDict(iTextSharp.text.pdf.PdfName.NAMES); if (names != null) { iTextSharp.text.pdf.PdfDictionary embeddedFiles = names.GetAsDict(iTextSharp.text.pdf.PdfName.EMBEDDEDFILES); if (embeddedFiles != null) { var en = embeddedFiles.Keys.GetEnumerator(); while (en.MoveNext()) { var obj = embeddedFiles.GetAsArray(en.Current as iTextSharp.text.pdf.PdfName); iTextSharp.text.pdf.PdfDictionary fileSpec = obj.GetAsDict(1); iTextSharp.text.pdf.PdfDictionary file = fileSpec.GetAsDict(iTextSharp.text.pdf.PdfName.EF); foreach (iTextSharp.text.pdf.PdfName key in file.Keys) { iTextSharp.text.pdf.PRStream innerstream = (iTextSharp.text.pdf.PRStream) iTextSharp.text.pdf.PdfReader.GetPdfObject(file.GetAsIndirectObject(key)); if (innerstream != null) { BT4allFile = iTextSharp.text.pdf.PdfReader.GetStreamBytes(innerstream); break; } } } } } } catch (Exception ex) { err = ex.ToString(); } } //Request mit Post des Falls und Response mit der ID if (BT4allFile != null) { try { //var Req = System.Net.WebRequest.Create("http://localhost/BT4All/SV/d.svc/m?i=getStartID_SLS_NoSign"); var Req = System.Net.WebRequest.Create("https://test.nuernberger-bt4all.de/BT4All/SV/d.svc/m?i=getStartID_SLS_NoSign"); Req.Method = "POST"; //Req.UseDefaultCredentials = true; var xtraData = new byte[0]; if (do_xtraData) { var xstream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream( "AufrufVergleicher.170728_NuernbergerVorschlag.xml"); var bList = new List <byte>(); int b = xstream.ReadByte(); while (b != -1) { bList.Add((byte)b); b = xstream.ReadByte(); } } Req.ContentLength = BT4allFile.Length + xtraData.Length; if (xtraData.Length > 0) { Req.Headers.Add("xtraDataLen", xtraData.Length.ToString()); } var reqS = Req.GetRequestStream(); reqS.Write(BT4allFile, 0, BT4allFile.Length); reqS.Write(xtraData, 0, xtraData.Length); var resp = Req.GetResponse(); var respStream = resp.GetResponseStream(); var respData = new byte[resp.ContentLength]; respStream.Read(respData, 0, respData.Length); try { using (var mem = new System.IO.MemoryStream(respData)) { Newtonsoft.Json.JsonTextReader jReader = new Newtonsoft.Json.JsonTextReader( new System.IO.StreamReader(mem)); while (jReader.Read()) { var tp = jReader.TokenType; var val = jReader.Value; if (tp == Newtonsoft.Json.JsonToken.PropertyName && (val as string) == "sid") { StartID = jReader.ReadAsString(); break; } } } } catch { using (var strReader = new System.IO.StreamReader(new System.IO.MemoryStream(respData))) { err = "Fehler beim Parsen des JSON Objekts. Serverresponse: "; rawHtml = strReader.ReadToEnd(); } } } catch (Exception ex) { err = ex.ToString(); } } } //=>iframe wird in der Views/Home/INDEX.cshtml aufgebaut ViewBag.err = err; ViewBag.rawHtml = rawHtml; ViewBag.StartID = StartID; ViewBag.antrag = antrag; ViewBag.sign = sign; return(View()); }
public static System.Net.HttpStatusCode GetIdeaServer() { System.Net.HttpStatusCode result = System.Net.HttpStatusCode.RequestTimeout; try { string TheExternalServer = WebClientPool.GetWebClient_AIDA().DownloadString(RemoteJson); if (!string.IsNullOrEmpty(TheExternalServer)) { using (var jsonStringReader = new System.IO.StringReader(TheExternalServer)) using (var jsonReader = new Newtonsoft.Json.JsonTextReader(jsonStringReader)) while (jsonReader.Read()) { if (jsonReader.TokenType == Newtonsoft.Json.JsonToken.PropertyName) { switch ((jsonReader.Value as string).ToLower()) { case "infourl": TweakerWebPanel.InfoPageLink = jsonReader.ReadAsString().URLtrim(); break; case "freedomurl": TweakerWebPanel.FreedomURL = jsonReader.ReadAsString().URLtrim(); break; case "pluginurl": TweakerWebPanel.PluginURL = jsonReader.ReadAsString().URLtrim(); break; case "itempatchworking": string tmp = jsonReader.ReadAsString(); tmp = tmp.ToLower(); if (tmp == "yes" | tmp == "true") { TweakerWebPanel.ItemPatchWorking = true; } else { TweakerWebPanel.ItemPatchWorking = false; } break; default: break; } } } _ispingedaida = true; result = System.Net.HttpStatusCode.OK; } } catch (System.Net.WebException ex) { _ispingedaida = false; if (ex.Response != null) { System.Net.HttpWebResponse theResp = ex.Response as System.Net.HttpWebResponse; if (theResp != null) { result = theResp.StatusCode; } } LogManager.GeneralLog.Print(ex); } return(result); }
private void recv(string msg) { if (State == WebSockState.Connecting) { if (ci.cii == null) { ci.cii = new Dictionary<string, string>(); ci.cii.Add("nick", ci.nick); ci.cii.Add("room", ci.room); } Send(make_msg("join", ci.cii)); State = WebSockState.Connected; } else if (msg == "2::") { Send("2::"); } else { msg = msg.Substring(4); Newtonsoft.Json.JsonTextReader JTR = new Newtonsoft.Json.JsonTextReader(new System.IO.StringReader(msg)); char name_type = '\0'; Dictionary<string, string> args = new Dictionary<string, string>(5); while (JTR.Read()) { switch (JTR.ValueType == typeof(string) ? (string)JTR.Value : "") { case "name": name_type = JTR.ReadAsString()[0]; break; case "args": switch (name_type) { case 'u': JTR.Read(); JTR.Read(); JTR.Read(); switch (JTR.ReadAsString()) { case "l": Dictionary<string, user_info> ui = new Dictionary<string,user_info>(8); JTR.Read(); JTR.Read(); while (JTR.Read()) { string nick = (string)JTR.Value; user_info lui = new user_info(); JTR.Read(); while (JTR.Read() && JTR.Value != null && JTR.ValueType.ToString() != "EndObject") { switch ((string)JTR.Value) { case "a": lui.admin = JTR.ReadAsInt32() == 0 ? false : true; break; case "t": lui.conn = (DateTime)JTR.ReadAsDateTime(); break; case "m": lui.mb_id = JTR.ReadAsString(); break; case "l": lui.login = JTR.ReadAsInt32() == 1 ? false : true; break; default: JTR.Read(); break; } } if(nick != null) ui.Add(nick, lui); } break; default: break; } break; case 'c': JTR.Skip(); JTR.Skip(); while (JTR.Read()) { args.Add((string)JTR.Value, JTR.ReadAsString()); } break; default: break; } break; default: break; } } } }
private void recv(string msg) { if (State == WebSockState.Connecting) { if (ci.cii == null) { ci.cii = new Dictionary <string, string>(); ci.cii.Add("nick", ci.nick); ci.cii.Add("room", ci.room); } Send(make_msg("join", ci.cii)); State = WebSockState.Connected; } else if (msg == "2::") { Send("2::"); } else { msg = msg.Substring(4); Newtonsoft.Json.JsonTextReader JTR = new Newtonsoft.Json.JsonTextReader(new System.IO.StringReader(msg)); char name_type = '\0'; Dictionary <string, string> args = new Dictionary <string, string>(5); while (JTR.Read()) { switch (JTR.ValueType == typeof(string) ? (string)JTR.Value : "") { case "name": name_type = JTR.ReadAsString()[0]; break; case "args": switch (name_type) { case 'u': JTR.Read(); JTR.Read(); JTR.Read(); switch (JTR.ReadAsString()) { case "l": Dictionary <string, user_info> ui = new Dictionary <string, user_info>(8); JTR.Read(); JTR.Read(); while (JTR.Read()) { string nick = (string)JTR.Value; user_info lui = new user_info(); JTR.Read(); while (JTR.Read() && JTR.Value != null && JTR.ValueType.ToString() != "EndObject") { switch ((string)JTR.Value) { case "a": lui.admin = JTR.ReadAsInt32() == 0 ? false : true; break; case "t": lui.conn = (DateTime)JTR.ReadAsDateTime(); break; case "m": lui.mb_id = JTR.ReadAsString(); break; case "l": lui.login = JTR.ReadAsInt32() == 1 ? false : true; break; default: JTR.Read(); break; } } if (nick != null) { ui.Add(nick, lui); } } break; default: break; } break; case 'c': JTR.Skip(); JTR.Skip(); while (JTR.Read()) { args.Add((string)JTR.Value, JTR.ReadAsString()); } break; default: break; } break; default: break; } } } }