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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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;
        }
예제 #4
0
            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;
        }
예제 #7
0
        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());
        }
예제 #8
0
        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);
        }
예제 #9
0
        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;
                    }
                }
            }
        }
예제 #10
0
        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;
                    }
                }
            }
        }