Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Extract obj = new Extract();
            //obj.ExtractFile("E:\\FM9.cab", "E:\\");
            //Extract.kHeaderInfo pk = new Extract.kHeaderInfo();
            //obj.IsFileCabinet("E:\\FM9.cab",out pk);

            StringBuilder s_folder = new StringBuilder();
            //obj.ExtractStream(st, s_folder);

            // create reader & open file
            StreamReader tr = new StreamReader("E:\\FM9.txt");

            // read a line of text
            while (!tr.EndOfStream)
            {
                s_folder.AppendLine(tr.ReadLine());
            }

            // close the stream
            tr.Close();
        }
Ejemplo n.º 2
0
        internal static Extract ParseToExtractFromFile(XmlTextReader meuXml)
        {
            var settings = new ParserSettings();

            bool temCabecalho  = false;
            bool temDadosConta = false;

            string      elementoSendoLido = string.Empty;
            Transaction transacaoAtual    = null;

            BankAccount   conta     = new BankAccount();
            HeaderExtract cabecalho = new HeaderExtract();
            Extract       extrato   = new Extract(cabecalho, conta, "");

            try
            {
                while (meuXml.Read())
                {
                    if (meuXml.NodeType == XmlNodeType.EndElement)
                    {
                        switch (meuXml.Name)
                        {
                        case "STMTTRN":
                            if (transacaoAtual != null)
                            {
                                extrato.AddTransaction(transacaoAtual);
                                transacaoAtual = null;
                            }
                            break;
                        }
                    }
                    if (meuXml.NodeType == XmlNodeType.Element)
                    {
                        elementoSendoLido = meuXml.Name;

                        switch (elementoSendoLido)
                        {
                        case "STMTTRN":
                            transacaoAtual = new Transaction();
                            break;
                        }
                    }
                    if (meuXml.NodeType == XmlNodeType.Text)
                    {
                        switch (elementoSendoLido)
                        {
                        case "DTSERVER":
                            cabecalho.ServerDate = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            temCabecalho         = true;
                            break;

                        case "LANGUAGE":
                            cabecalho.Language = meuXml.Value;
                            temCabecalho       = true;
                            break;

                        case "ORG":
                            cabecalho.BankName = meuXml.Value;
                            temCabecalho       = true;
                            break;

                        case "DTSTART":
                            extrato.InitialDate = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            break;

                        case "DTEND":
                            extrato.FinalDate = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            break;

                        case "BANKID":
                            conta.Bank    = new Bank(GetBankId(meuXml.Value, extrato), "");
                            temDadosConta = true;
                            break;

                        case "BRANCHID":
                            conta.AgencyCode = meuXml.Value;
                            temDadosConta    = true;
                            break;

                        case "ACCTID":
                            conta.AccountCode = meuXml.Value;
                            temDadosConta     = true;
                            break;

                        case "ACCTTYPE":
                            conta.AccType = meuXml.Value;
                            temDadosConta = true;
                            break;

                        case "TRNTYPE":
                            transacaoAtual.TrnType = meuXml.Value;
                            break;

                        case "DTPOSTED":
                            transacaoAtual.Date = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            break;

                        case "TRNAMT":
                            transacaoAtual.Amount = GetTransactionValue(meuXml.Value, extrato);
                            break;

                        case "FITID":
                            transacaoAtual.Id = meuXml.Value;
                            break;

                        case "CHECKNUM":
                            transacaoAtual.Checksum = Convert.ToInt64(meuXml.Value);
                            break;

                        case "MEMO":
                            transacaoAtual.Description = string.IsNullOrEmpty(meuXml.Value) ? "" : meuXml.Value.Trim().Replace("  ", " ");
                            break;
                        }
                    }
                }
            }
            catch (XmlException)
            {
                throw new FormatException("Invalid OFX file!");
            }
            finally
            {
                meuXml.Close();
            }

            if ((settings.IsValidateHeader && temCabecalho == false) ||
                (settings.IsValidateAccountData && temDadosConta == false))
            {
                throw new FormatException("Invalid OFX file!");
            }

            return(extrato);
        }
Ejemplo n.º 3
0
 public void Visit(Extract node)
 {
     VisitChild(2, false, false, node.Arguments);
 }
Ejemplo n.º 4
0
 /// <inheritdoc/>
 public override IColumnList GetColumns <TModel>() =>
 Extract.From <TModel>(Table, T.TermRelationships, T.TermTaxonomies);
Ejemplo n.º 5
0
        public void TestInvalid()
        {
            AnimeResult result = Extract.AnimeNamesFromSite(Helper.LoadFile(@"sites\anime\2.html"));

            Assert.AreEqual(AnimeResponse.InvalidId, result.Response);
        }
        /// <summary>
        /// </summary>
        /// <param name="blobData"></param>
        /// <param name="appContentType"></param>
        /// <param name="Base64TokenApplication"></param>
        /// <returns></returns>
        public OperationResult AssembleTokenApplication(byte[] blobData, out string appContentType, out string Base64TokenApplication)
        {
            appContentType = null;
            Base64TokenApplication = null;

            string _tempFolder = null;
            Extract _cabExtract = new Extract();
            Compress _cabCompress = new Compress();

            try
            {
                _tempFolder = _getTempFolder();
                _cabExtract.ExtractFile(_getTemplateFile(), _tempFolder); 
                _writeBlobFile(_tempFolder, blobData);

                _cabCompress.SwitchCompression(false);  // pocket´s withdout compression
                //_cabCompress.SetEncryptionKey("");
                _cabCompress.CompressFolder(_tempFolder, _tempFolder + cAPPFILESYSTEM_NAME, "", true, true, 0x7FFFFFFF);


                using (Stream st = File.Open(_tempFolder + cAPPFILESYSTEM_NAME, FileMode.Open, FileAccess.Read))
                {
                    using (BinaryReader br = new BinaryReader(st, Encoding.Default))
                    {
                        Base64TokenApplication = Convert.ToBase64String(br.ReadBytes(Convert.ToInt32(br.BaseStream.Length)));
                        appContentType = cCONTENT_TYPE_NAME;
                    }
                }
                return OperationResult.Success;

            }
            catch
            {
                Base64TokenApplication = null;
                return OperationResult.Error;
            }
            finally
            {
                _cabExtract = null;
                _cabCompress = null;

                if (Directory.Exists(_tempFolder))
                    Directory.Delete(_tempFolder, true);
            }
        }
Ejemplo n.º 7
0
        public static void QcDDA(IRawFileThreadManager rawFileThreadManager, WorkflowParameters parameters)
        {
            MethodDataContainer         methodData;
            CentroidStreamCollection    centroidStreams;
            SegmentScanCollection       segmentScans;
            TrailerExtraCollection      trailerExtras;
            PrecursorMassCollection     precursorMasses;
            RetentionTimeCollection     retentionTimes;
            ScanEventReactionCollection reactions;

            var staticRawFile = rawFileThreadManager.CreateThreadAccessor();

            staticRawFile.SelectInstrument(Device.MS, 1);

            staticRawFile.CheckIfBoxcar();

            (ScanIndex Index, PrecursorScanCollection precursorScans, ScanDependentsCollections scanDependents) =
                Extract.ScanIndicesPrecursorsDependents(rawFileThreadManager);

            using (var rawFile = rawFileThreadManager.CreateThreadAccessor())
            {
                methodData = Extract.MethodData(rawFile, Index);

                reactions = Extract.ScanEvents(rawFile, Index);

                (centroidStreams, segmentScans) = Extract.MsData(rawFile: rawFile, index: Index);

                trailerExtras = Extract.TrailerExtras(rawFile, Index);

                precursorMasses = Extract.PrecursorMasses(rawFile, precursorScans, trailerExtras, Index);

                retentionTimes = Extract.RetentionTimes(rawFile, Index);
            }

            PrecursorPeakCollection peakData = AnalyzePeaks.AnalyzeAllPeaks(centroidStreams, retentionTimes, precursorMasses, precursorScans, Index);

            if (parameters.RefineMassCharge)
            {
                MonoIsoPredictor.RefineMonoIsoMassChargeValues(centroidStreams, precursorMasses, trailerExtras, peakData, precursorScans);
            }

            ScanMetaDataCollectionDDA metaData = MetaDataProcessingDDA.AggregateMetaDataDDA(centroidStreams, segmentScans, methodData, precursorScans,
                                                                                            trailerExtras, precursorMasses, retentionTimes, scanDependents, reactions, Index);

            RawMetricsDataDDA rawMetrics = MetaDataProcessingDDA.GetMetricsDataDDA(metaData, methodData, staticRawFile.FileName, retentionTimes, Index, peakData, precursorScans);

            QcDataCollection qcDataCollection = QC.QcWorkflow.LoadOrCreateQcCollection(parameters);

            SearchMetricsContainer searchMetrics = new SearchMetricsContainer(staticRawFile.FileName, staticRawFile.CreationDate, methodData);

            if (parameters.QcParams.PerformSearch)
            {
                Search.WriteSearchMGF(parameters, centroidStreams, segmentScans, retentionTimes, precursorMasses, precursorScans, trailerExtras, methodData,
                                      Index, staticRawFile.FileName, parameters.QcParams.FixedScans);

                Search.RunSearch(parameters, methodData, staticRawFile.FileName);

                searchMetrics = SearchQC.ParseSearchResults(searchMetrics, parameters, staticRawFile.FileName);
            }

            QcDataContainer qcData = new QcDataContainer();

            qcData.DDA           = rawMetrics;
            qcData.SearchMetrics = searchMetrics;

            QC.QcWorkflow.UpdateQcCollection(qcDataCollection, qcData, methodData, staticRawFile.FileName);

            staticRawFile.Dispose();
        }
Ejemplo n.º 8
0
        private static void ExtractMetadataAsJson(string videoLocalPath, string jsonPath)
        {
            string json = Extract.ExtractMetadata(videoLocalPath);

            System.IO.File.WriteAllText(jsonPath, json);
        }
Ejemplo n.º 9
0
    private void Start()
    {
        stateMachine = new StateMachine();
        stateMachine.OnStateEntered += StateMachineOnOnStateEntered;
        stateMachine.OnStateExited  += StateMachineOnStateExited;
        var player                      = GetComponent <Player>();
        var obeliskSelector             = new PhysicsLayerStrategy(LayerMask.GetMask("Obelisk"), 1f);
        var emptyObeliskMouseSelector   = new MouseOverSelector(obeliskSelector, 1, IsObeliskEmpty);
        var infusedObeliskMouseSelector = new MouseOverSelector(obeliskSelector, 1, IsObeliskFull);
        var idle   = new Idle();
        var absorb = new Extract(player, infusedObeliskMouseSelector);
        var exude  = new Infuse(player, emptyObeliskMouseSelector);

        var placingObelisk = new PlacingObelisk(obeliskPrefab, player);

        var invokeFireElement  = new InvokeElement(EssenceNames.Fire);
        var invokeWaterElement = new InvokeElement(EssenceNames.Water);
        var invokeEarthElement = new InvokeElement(EssenceNames.Earth);
        var invokeAirElement   = new InvokeElement(EssenceNames.Air);

        var buildingFireElement  = new Building(emptyObeliskMouseSelector, EssenceNames.Fire);
        var buildingWaterElement = new Building(emptyObeliskMouseSelector, EssenceNames.Water);
        var buildingEarthElement = new Building(emptyObeliskMouseSelector, EssenceNames.Earth);
        var buildingAirElement   = new Building(emptyObeliskMouseSelector, EssenceNames.Air);

        var attack = new Attack(fireAttack);

        stateMachine.AddAnyTransition(placingObelisk, () => PlayerInput.Instance.ObeliskKeyDown);
        stateMachine.AddTransition(placingObelisk, idle, () => PlayerInput.Instance.ObeliskKeyDown || placingObelisk.Finished || PlayerInput.Instance.SecondaryActionKeyDown);

        stateMachine.AddAnyTransition(absorb, () => PlayerInput.Instance.SecondaryActionKeyDown && player.CurrentEssence == null && absorb.CanExtract);
        stateMachine.AddTransition(absorb, idle, () => PlayerInput.Instance.SecondaryActionKeyUp || absorb.Finished);

        stateMachine.AddAnyTransition(invokeFireElement, () => PlayerInput.Instance.InvokeFireDown && player.CurrentEssence == null);
        stateMachine.AddAnyTransition(invokeWaterElement, () => PlayerInput.Instance.InvokeWaterDown && player.CurrentEssence == null);
        stateMachine.AddAnyTransition(invokeEarthElement, () => PlayerInput.Instance.InvokeEarthDown && player.CurrentEssence == null);
        stateMachine.AddAnyTransition(invokeAirElement, () => PlayerInput.Instance.InvokeAirDown && player.CurrentEssence == null);

        stateMachine.AddTransition(invokeFireElement, idle, () => PlayerInput.Instance.InvokeFireDown || PlayerInput.Instance.SecondaryActionKeyDown);
        stateMachine.AddTransition(invokeWaterElement, idle, () => PlayerInput.Instance.InvokeWaterDown || PlayerInput.Instance.SecondaryActionKeyDown);
        stateMachine.AddTransition(invokeEarthElement, idle, () => PlayerInput.Instance.InvokeEarthDown || PlayerInput.Instance.SecondaryActionKeyDown);
        stateMachine.AddTransition(invokeAirElement, idle, () => PlayerInput.Instance.InvokeAirDown || PlayerInput.Instance.SecondaryActionKeyDown);

        stateMachine.AddTransition(invokeFireElement, buildingFireElement, () => CanStartBuilding(emptyObeliskMouseSelector));
        stateMachine.AddTransition(invokeWaterElement, buildingWaterElement, () => CanStartBuilding(emptyObeliskMouseSelector));
        stateMachine.AddTransition(invokeEarthElement, buildingEarthElement, () => CanStartBuilding(emptyObeliskMouseSelector));
        stateMachine.AddTransition(invokeAirElement, buildingAirElement, () => CanStartBuilding(emptyObeliskMouseSelector));

        stateMachine.AddTransition(buildingFireElement, invokeFireElement, () => PlayerInput.Instance.PrimaryActionKeyUp || buildingFireElement.Finished);
        stateMachine.AddTransition(buildingWaterElement, invokeWaterElement, () => PlayerInput.Instance.PrimaryActionKeyUp || buildingWaterElement.Finished);
        stateMachine.AddTransition(buildingEarthElement, invokeEarthElement, () => PlayerInput.Instance.PrimaryActionKeyUp || buildingEarthElement.Finished);
        stateMachine.AddTransition(buildingAirElement, invokeAirElement, () => PlayerInput.Instance.PrimaryActionKeyUp || buildingAirElement.Finished);


        stateMachine.AddTransition(idle, exude, () => PlayerInput.Instance.PrimaryActionKeyDown && player.CurrentEssence != null && exude.CanInfuse);
        stateMachine.AddTransition(exude, idle, () => PlayerInput.Instance.PrimaryActionKeyUp || exude.Finished);

        stateMachine.AddTransition(idle, attack, () => PlayerInput.Instance.AttackActionKeyDown && player.CurrentEssence != null);
        stateMachine.AddTransition(attack, idle, () => PlayerInput.Instance.AttackActionKeyUp);

        stateMachine.SetState(idle);
    }
Ejemplo n.º 10
0
        /// <summary>
        /// Process specialized
        ///
        /// This is a cheat function to basically force deferred execution to occur.
        ///
        /// All of this sort of late bound meta-data from the system needs to be carefully written to not be too expensive.
        /// (e.g. use the .OffsetPos rather than too heavy on dynamic resolution)
        ///
        /// Ensure we have symbols & kernel meta data parsed into our type info
        ///
        /// Also We need vtero.WalkProcList to have been called which isolates vadroot
        ///
        /// </summary>
        public void MergeVAMetaData(bool DoStackCheck = false)
        {
            // setup kernel in optimized scan
            ScanAndLoadModules();
            // Load as much as possible from full user space scan for PE / load debug data
            ScanAndLoadModules("", false, false);


            var codeRanges = new ConcurrentDictionary <long, long>();

            /// All page table entries
            /// including kernel
            var execPages = PT.FillPageQueue(false, true);

            foreach (var pte in execPages)
            {
                codeRanges.TryAdd(pte.VA.Address, pte.VA.Address + (pte.PTE.LargePage ? MagicNumbers.LARG_PAGE_SIZE : MagicNumbers.PAGE_SIZE));
            }

            // Walk Vad and inject into 'sections'
            // scan VAD data to additionally bind
            ListVad(VadRootPtr);

            // Dig all threads
            if (DoStackCheck)
            {
                LoadThreads();
                var checkPtrs = new ConcurrentBag <long>();

                // instead of using memsections we should use apge table info
                // then push in memsection after this round
                Parallel.Invoke(() =>
                {
                    // each stack
                    foreach (var userRange in UserThreadStacks)
                    {
                        // every value
                        foreach (var pointer in userRange.Item2)
                        {
                            if (pointer > -4096 && pointer < 4096)
                            {
                                continue;
                            }

                            // see if in range of code
                            foreach (var codeRange in codeRanges)
                            {
                                // if so we need to double check that the code ptr is a good one
                                if (pointer >= codeRange.Key && pointer < codeRange.Value)
                                {
                                    checkPtrs.Add(pointer);
                                }
                            }
                        }
                    }
                }, () =>
                {
                    // each stack
                    foreach (var kernelRange in ThreadStacks)
                    {
                        // every value
                        foreach (var pointer in kernelRange.Item2)
                        {
                            if (pointer > -4096 && pointer < 4096)
                            {
                                continue;
                            }

                            // see if in range of code
                            foreach (var codeRange in codeRanges)
                            {
                                // if so we need to double check that the code ptr is a good one
                                if (pointer >= codeRange.Key && pointer < codeRange.Value)
                                {
                                    checkPtrs.Add(pointer);
                                }
                            }
                        }
                    }
                });

                // validate checkPtrs pointers here
                // TODO: group pointers so we can minimize page reads
                foreach (var ptr in checkPtrs)
                {
                    var idx = ptr & 0xfff;
                    if (idx < 10)
                    {
                        continue;
                    }

                    // every pointer needs to be a function start
                    // or a properly call/ret pair
                    var ptrTo = VGetBlock(ptr);
                    //BYTE* bp = (BYTE*)RefFramePtr;

                    var IsCCBefore      = ptrTo[idx - 1];
                    var IsCallE8        = ptrTo[idx - 5];
                    var IsCallE8_second = ptrTo[idx - 3];
                    var IsCall9A        = ptrTo[idx - 5];
                    var IsCall9A_second = ptrTo[idx - 7];

                    bool FoundFFCode = false;
                    // scan from RoPCheck
                    for (int i = 2; i < 10; i++)
                    {
                        var a = ptrTo[idx - i];
                        var b = ptrTo[idx - i + 1];

                        if (i < 8)
                        {
                            if ((a == 0xff) && (b & 0x38) == 0x10)
                            {
                                FoundFFCode = true;
                                break;
                            }
                        }
                        if ((a == 0xff) && (b & 0x38) == 0x18)
                        {
                            FoundFFCode = true;
                            break;
                        }
                    }

                    if (!FoundFFCode && IsCCBefore != 0xcc && IsCallE8 != 0xe8 && IsCallE8_second != 0xe8 && IsCall9A != 0x9a && IsCall9A_second != 0x9a)
                    {
                        WriteColor(ConsoleColor.Cyan, $"Stack pointer is wild {ptr:x}");
                        var cs = Capstone.Dissassemble(ptrTo, ptrTo.Length, (ulong)(ptr & -4096));
                        for (int i = 0; i < cs.Length; i++)
                        {
                            if (cs[i].insn.address == (ulong)ptr)
                            {
                                WriteColor(ConsoleColor.Yellow, $"{cs[i - 1].insn.address:x} {cs[i - 1].insn.bytes[0]:x} {cs[i - 1].insn.mnemonic} {cs[i - 1].insn.operands}");
                                WriteColor(ConsoleColor.Yellow, $"{cs[i].insn.address:x} {cs[i].insn.bytes[0]:x} {cs[i].insn.mnemonic} {cs[i].insn.operands}");
                            }
                        }
                    }
                }
            }

            // find section's with no "Module"
            foreach (var sec in Sections.Values)
            {
                if (sec.Module == null)
                {
                    var test = GetVirtualByte(sec.VadAddr);
                    var ext  = Extract.IsBlockaPE(test);
                    sec.Module = ext;
                }
            }
        }
Ejemplo n.º 11
0
        private IEnumerable <Extract> DefaultExtracts()
        {
            var dwhExtracts     = _extractRepository.GetAllByEmr(GetDefault().Id, "NDWH").ToList();
            var defaultExtracts = new List <Extract>();

            foreach (var extract in dwhExtracts)
            {
                var defaultExtract = new Extract()
                {
                    Id          = Guid.NewGuid(),
                    ExtractSql  = "",
                    Name        = extract.Name,
                    Emr         = extract.Emr,
                    Destination = extract.Destination,
                    Display     = extract.Display,
                    DocketId    = extract.DocketId,
                    IsPriority  = extract.IsPriority,
                    Rank        = extract.Rank
                };
                defaultExtracts.Add(defaultExtract);
            }

            var cardExtract = _extractRepository.GetAllByEmr(GetDefault().Id, "PSMART").FirstOrDefault();

            if (cardExtract != null)
            {
                var defaultCardExtract = new Extract()
                {
                    Id          = Guid.NewGuid(),
                    ExtractSql  = "",
                    Name        = cardExtract.Name,
                    Emr         = cardExtract.Emr,
                    Destination = cardExtract.Destination,
                    Display     = cardExtract.Display,
                    DocketId    = cardExtract.DocketId,
                    IsPriority  = cardExtract.IsPriority,
                    Rank        = cardExtract.Rank
                };
                defaultExtracts.Add(defaultCardExtract);
            }
            var mpiExtract = _extractRepository.GetAllByEmr(GetDefault().Id, "CBS").FirstOrDefault();

            if (mpiExtract != null)
            {
                var defaultMpiExtract = new Extract()
                {
                    Id          = Guid.NewGuid(),
                    ExtractSql  = "",
                    Name        = mpiExtract.Name,
                    Emr         = mpiExtract.Emr,
                    Destination = mpiExtract.Destination,
                    Display     = mpiExtract.Display,
                    DocketId    = mpiExtract.DocketId,
                    IsPriority  = mpiExtract.IsPriority,
                    Rank        = mpiExtract.Rank
                };
                defaultExtracts.Add(defaultMpiExtract);
            }
            var htsExtract = _extractRepository.GetAllByEmr(GetDefault().Id, "HTS").ToList();

            foreach (var extract in htsExtract)
            {
                var defaultExtract = new Extract()
                {
                    Id          = Guid.NewGuid(),
                    ExtractSql  = "",
                    Name        = extract.Name,
                    Emr         = extract.Emr,
                    Destination = extract.Destination,
                    Display     = extract.Display,
                    DocketId    = extract.DocketId,
                    IsPriority  = extract.IsPriority,
                    Rank        = extract.Rank
                };
                defaultExtracts.Add(defaultExtract);
            }


            return(defaultExtracts);
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> Save([Bind("Format", "FacilityID", "ExtractionDate", "DocumentationViewID", "ContactName", "Address1", "Address2", "City", "State", "ZipCode")] Extract extract)
        {
            if (ModelState.IsValid)
            {
                string newPassword;

                //Check if there's another extract. This way we should get CSV and PDF extracts to share same randomly generated password.
                var currentExtract = await _sayonaraContext.Extracts
                                     .Where(e => e.FacilityID == extract.FacilityID)
                                     .OrderByDescending(e => e.ExtractionDate)
                                     .FirstOrDefaultAsync();

                if (currentExtract != null)
                {
                    newPassword = currentExtract.Password;
                }
                else
                {
                    newPassword = Utilities.PasswordGenerator.Generate(20);
                }

                _sayonaraContext.Extracts.Add(new Extract
                {
                    PublicID            = System.Guid.NewGuid(),
                    FacilityID          = extract.FacilityID,
                    ExtractionDate      = extract.ExtractionDate,
                    Format              = extract.Format,
                    DocumentationViewID = extract.DocumentationViewID,
                    Status              = Extract.NotStartedStatus,
                    TotalCount          = 0,
                    CurrentCount        = 0,
                    Password            = newPassword,
                    CreatedBy           = User.Identity.Name,
                    ContactName         = extract.ContactName,
                    Address1            = extract.Address1,
                    Address2            = extract.Address2,
                    City    = extract.City,
                    State   = extract.State,
                    ZipCode = extract.ZipCode
                });

                _sayonaraContext.SaveChanges();

                return(View("Index", _sayonaraContext.Extracts
                            .Include(e => e.Facility)
                            .ThenInclude(f => f.DocumentationViews)
                            .OrderByDescending(e => e.ExtractionDate)
                            .ToList()));
            }
            else
            {
                if (extract.FacilityID == 0)
                {
                    ViewBag.ErrorMessage = "A Facility needs to be chosen";
                    return(View("Add"));
                }
                if (extract.ExtractionDate <= System.DateTime.Now.AddDays(-2))                 //-2 because I think the azure website deployed is an an unknow timezone
                {
                    ViewBag.ErrorMessage = "Extraction date needs to be chosen and in the future!";
                    return(View("Add"));
                }

                ViewBag.ErrorMessage = "An unknown problem with your selections occured.";
                return(View("Add"));
            }
        }
Ejemplo n.º 13
0
 public static ResolvableConstraintExpression Calls([NotNull] this ResolvableConstraintExpression expression, [NotNull] Expression <Action> call, string functionName = null)
 {
     expression.Append(new CallToConstraint(Extract.BindingInfoFrom(call), functionName));
     return(expression);
 }
Ejemplo n.º 14
0
        public Extract GenerateExtract(string ofxSourceFile)
        {
            // Translating to XML file
            var xmlFilePath = ofxSourceFile + ".xml";

            ExportToXml(ofxSourceFile, xmlFilePath);

            var         elementoSendoLido = "";
            Transaction transacaoAtual    = null;

            var header      = new HeaderExtract();
            var bankAccount = new BankAccount();
            var extract     = new Extract(header, bankAccount, "");

            // Lendo o XML efetivamente
            var xmlReader = new XmlTextReader(xmlFilePath);

            try
            {
                while (xmlReader.Read())
                {
                    if (xmlReader.NodeType == XmlNodeType.EndElement && xmlReader.Name.Equals("STMTTRN") && transacaoAtual != null)
                    {
                        extract.AddTransaction(transacaoAtual);
                        transacaoAtual = null;
                    }
                    if (xmlReader.NodeType == XmlNodeType.Element)
                    {
                        elementoSendoLido = xmlReader.Name;
                        if (xmlReader.Name.Equals("STMTTRN"))
                        {
                            transacaoAtual = new Transaction();
                        }
                    }
                    if (xmlReader.NodeType == XmlNodeType.Text)
                    {
                        switch (elementoSendoLido)
                        {
                        case "DTSERVER":
                            header.ServerDate = ConvertOfxDateToDateTime(xmlReader.Value, extract);
                            break;

                        case "LANGUAGE":
                            header.Language = xmlReader.Value;
                            break;

                        case "ORG":
                            header.BankName = xmlReader.Value;
                            break;

                        case "DTSTART":
                            extract.InitialDate = ConvertOfxDateToDateTime(xmlReader.Value, extract);
                            break;

                        case "DTEND":
                            extract.FinalDate = ConvertOfxDateToDateTime(xmlReader.Value, extract);
                            break;

                        case "BANKID":
                            bankAccount.Bank = new Bank(GetBankId(xmlReader.Value, extract), "");
                            break;

                        case "BRANCHID":
                            bankAccount.AgencyCode = xmlReader.Value;
                            break;

                        case "ACCTID":
                            bankAccount.AccountCode = xmlReader.Value;
                            break;

                        case "ACCTTYPE":
                            bankAccount.Type = xmlReader.Value;
                            break;

                        case "TRNTYPE":
                            transacaoAtual.Type = xmlReader.Value;
                            break;

                        case "DTPOSTED":
                            transacaoAtual.Date = ConvertOfxDateToDateTime(xmlReader.Value, extract);
                            break;

                        case "TRNAMT":
                            transacaoAtual.TransactionValue = GetTransactionValue(xmlReader.Value, extract);
                            break;

                        case "FITID":
                            transacaoAtual.Id = xmlReader.Value;
                            break;

                        case "CHECKNUM":
                            transacaoAtual.Checksum = Convert.ToInt64(xmlReader.Value);
                            break;

                        case "MEMO":
                            transacaoAtual.Description = string.IsNullOrEmpty(xmlReader.Value) ? string.Empty : Regex.Replace(xmlReader.Value.Trim(), "[^\\S\\n]+", " ");
                            break;
                        }
                    }
                }
            }
            catch (XmlException xe)
            {
                throw new OFXParserException($"Invalid OFX file", xe);
            }
            finally
            {
                xmlReader.Close();
            }
            return(extract);
        }
Ejemplo n.º 15
0
        public static Extract GetExtract(String ofxSourceFile, ParserSettings settings)
        {
            if (settings == null)
            {
                settings = new ParserSettings();
            }

            Boolean temCabecalho  = false;
            Boolean temDadosConta = false;

            // Translating to XML file
            ExportToXml(ofxSourceFile, ofxSourceFile + ".xml");

            // Variáveis úteis para o Parse
            String      elementoSendoLido = "";
            Transaction transacaoAtual    = null;

            // Variávies utilizadas para a leitura do XML
            HeaderExtract cabecalho = new HeaderExtract();
            BankAccount   conta     = new BankAccount();
            Extract       extrato   = new Extract(cabecalho, conta, "");

            // Lendo o XML efetivamente
            XmlTextReader meuXml = new XmlTextReader(ofxSourceFile + ".xml");

            try
            {
                while (meuXml.Read())
                {
                    if (meuXml.NodeType == XmlNodeType.EndElement)
                    {
                        switch (meuXml.Name)
                        {
                        case "STMTTRN":
                            if (transacaoAtual != null)
                            {
                                extrato.AddTransaction(transacaoAtual);
                                transacaoAtual = null;
                            }
                            break;
                        }
                    }
                    if (meuXml.NodeType == XmlNodeType.Element)
                    {
                        elementoSendoLido = meuXml.Name;

                        switch (elementoSendoLido)
                        {
                        case "STMTTRN":
                            transacaoAtual = new Transaction();
                            break;
                        }
                    }
                    if (meuXml.NodeType == XmlNodeType.Text)
                    {
                        switch (elementoSendoLido)
                        {
                        case "DTSERVER":
                            cabecalho.ServerDate = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            temCabecalho         = true;
                            break;

                        case "LANGUAGE":
                            cabecalho.Language = meuXml.Value;
                            temCabecalho       = true;
                            break;

                        case "ORG":
                            cabecalho.BankName = meuXml.Value;
                            temCabecalho       = true;
                            break;

                        case "DTSTART":
                            extrato.InitialDate = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            break;

                        case "DTEND":
                            extrato.FinalDate = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            break;

                        case "BANKID":
                            conta.Bank    = new Bank(GetBankId(meuXml.Value, extrato), "");
                            temDadosConta = true;
                            break;

                        case "BRANCHID":
                            conta.AgencyCode = meuXml.Value;
                            temDadosConta    = true;
                            break;

                        case "ACCTID":
                            conta.AccountCode = meuXml.Value;
                            temDadosConta     = true;
                            break;

                        case "ACCTTYPE":
                            conta.Type    = meuXml.Value;
                            temDadosConta = true;
                            break;

                        case "TRNTYPE":
                            transacaoAtual.Type = meuXml.Value;
                            break;

                        case "DTPOSTED":
                            transacaoAtual.Date = ConvertOfxDateToDateTime(meuXml.Value, extrato);
                            break;

                        case "TRNAMT":
                            transacaoAtual.TransactionValue = GetTransactionValue(meuXml.Value, extrato);
                            break;

                        case "FITID":
                            transacaoAtual.Id = meuXml.Value;
                            break;

                        case "CHECKNUM":
                            transacaoAtual.Checksum = Convert.ToInt64(meuXml.Value);
                            break;

                        case "MEMO":
                            transacaoAtual.Description = string.IsNullOrEmpty(meuXml.Value) ? "" : meuXml.Value.Trim().Replace("  ", " ");
                            break;

                        case "NAME":
                            transacaoAtual.Name = string.IsNullOrEmpty(meuXml.Value) ? "" : meuXml.Value.Trim().Replace("  ", " ");
                            break;
                        }
                    }
                }
            }
            catch (XmlException xe)
            {
                throw new OFXParserException("Invalid OFX file!");
            }
            finally
            {
                meuXml.Close();
            }

            if ((settings.IsValidateHeader && temCabecalho == false) ||
                (settings.IsValidateAccountData && temDadosConta == false))
            {
                throw new OFXParserException("Invalid OFX file!");
            }
            return(extrato);
        }
Ejemplo n.º 16
0
 public void Save(Extract extract)
 {
     _extractRepository.CreateOrUpdate(extract);
     _extractRepository.SaveChanges();
 }
Ejemplo n.º 17
0
        public void ReadXml(XmlReader reader, Extract extract)
        {
            // <xs:extension base="LOCATABLE">
            this.ReadXmlBase(reader, extract as ExtractLocatable);

            // <xs:element name="request_id" type="OBJECT_REF" minOccurs="0"/>
            if (reader.LocalName == "request_id")
            {
                if (reader.HasAttributes)
                {
                    throw new NotSupportedException("subtype of OBJECT_REF not supported in request_id");
                }

                extract.RequestId = new ObjectRef();
                extract.RequestId.ReadXml(reader);
            }

            // <xs:element name="time_created" type="DV_DATE_TIME"/>
            Check.Require(reader.LocalName == "time_created", "time_created is mandatory");
            extract.TimeCreated = new DvDateTime();
            extract.TimeCreated.ReadXml(reader);

            // <xs:element name="system_id" type="HIER_OBJECT_ID"/>
            Check.Require(reader.LocalName == "system_id", "system_id is mandatory");
            extract.SystemId = new HierObjectId();
            extract.SystemId.ReadXml(reader);

            // <xs:element name="partitipations" type="PARTICIPATION" minOccurs="0" maxOccurs="unbounded"/>
            if (reader.Name == "partitipations")
            {
                extract.Participations = new OpenEhr.AssumedTypes.List <Participation>();
            }
            while (reader.NodeType == System.Xml.XmlNodeType.Element && reader.Name == "partitipations")
            {
                Participation participation = new Participation();

                participation.ReadXml(reader);
                extract.Participations.Add(participation);
            }

            // <xs:element name="sequence_nr" type="xs:long"/>
            extract.SequenceNr = reader.ReadElementContentAsInt("sequence_nr", RmXmlSerializer.OpenEhrNamespace);
            reader.MoveToContent();

            // <xs:element name="chapters" type="EXTRACT_CHAPTER" minOccurs="0" maxOccurs="unbounded"/>
            if (reader.Name == "chapters")
            {
                extract.Chapters = new OpenEhr.AssumedTypes.List <ExtractChapter>();
            }
            while (reader.NodeType == System.Xml.XmlNodeType.Element && reader.Name == "chapters")
            {
                ExtractChapter chapter = new ExtractChapter();

                this.ReadXml(reader, chapter);
                extract.Chapters.Add(chapter);
            }

            // TODO: <xs:element name="specification" type="EXTRACT_SPEC" minOccurs="0"/>
            if (reader.Name == "specification")
            {
                throw new NotImplementedException("specification not implemented");
            }

            reader.ReadEndElement();
            reader.MoveToContent();
        }
Ejemplo n.º 18
0
 public bool Verfiy(Extract extract, DatabaseProtocol databaseProtocol)
 {
     return(_databaseManager.VerifyQuery(extract, databaseProtocol));
 }
Ejemplo n.º 19
0
        /// <summary>
        /// Default window loaded event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            #region Basic API definitaions

            // api key for app authorization
            Api.API_KEY = Core.Configs.API_KEY;
            // api secret for client authorization
            Api.API_SECRET = Core.Configs.API_SECRET;
            // select output type
            Api.OutputType = Api.OutputTypes.Json;

            #endregion

            // define Updater class and set credentials
            KOR.Updater.Core.Updater updater = new KOR.Updater.Core.Updater
            {
                // app versions stores sqlite database
                AppVersion = dbprocs.GetAppVersion(),
                // listing multi results off
                MultiResult = false
            };

            // check update
            var checkresult = updater.CheckUpdate();

            // if there is update/s
            if ((bool)checkresult == true)
            {
                // if there is listed update/s
                if (updater.Updates.Count > 0)
                {
                    // create new thread and start extracting file
                    new Thread(() =>
                    {
                        Thread.CurrentThread.IsBackground = true;

                        foreach (var update in updater.Updates)
                        {
                            #region Backup Block

                            Application.Current.Dispatcher.Invoke(new Action(() =>
                            {
                                Status.Text = "Starting backup process...";
                            }));
                            Thread.Sleep(1500);

                            // prepare backup
                            Backup backup = new Backup
                            {
                                // maximum compression
                                // might be hard some CPUs
                                CompressionLevel = 9,
                                // set backup store folder path
                                BackupStoreFolder = AppDomain.CurrentDomain.BaseDirectory + "backup",
                                // which folder and contains includes
                                BackupFolder = AppDomain.CurrentDomain.BaseDirectory
                            };

                            // ignore backup "/backup" folder
                            backup.IgnoreDirs.Add(new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "backup"));
                            // ignore backup downloaded update
                            //backup.IgnoreFiles.Add(new FileInfo(download.DownloadFilePath));

                            // start backup
                            backup.CreateBackup();

                            if (backup.BackupState)
                            {
                                Application.Current.Dispatcher.Invoke(new Action(() =>
                                {
                                    Status.Text = "Backup created successfully. Now starting download new updated.";
                                }));
                                Thread.Sleep(1500);
                            }
                            #endregion

                            #region Download Block

                            // prepare downloading
                            Download download = new Download
                            {
                                // set download url
                                DownloadUrl      = new Uri(update.DownloadUrl),
                                DownloadFileName = Path.GetFileName(update.DownloadUrl),
                                DownloadFilePath = AppDomain.CurrentDomain.BaseDirectory + Path.GetFileName(update.DownloadUrl),
                            };

                            // time needs download progress
                            Timer.Start();

                            // start downloading
                            download.DownloadUpdate();

                            // when download finished
                            if (download.DownloadFinished)
                            {
                                Timer.Stop();
                            }

                            #endregion

                            #region Extract Block

                            // if downloaded file is .zip file
                            if (Path.GetExtension(download.DownloadFileName) == ".zip")
                            {
                                Application.Current.Dispatcher.Invoke(new Action(() =>
                                {
                                    Status.Text = "Extracting update...";
                                }));
                                Thread.Sleep(1500);

                                // prepare extraction
                                Extract extract = new Extract
                                {
                                    FilePath     = download.DownloadFilePath,
                                    OutputFolder = AppDomain.CurrentDomain.BaseDirectory
                                };

                                // extract file
                                extract.ExtractZipFile();
                            }

                            #endregion

                            #region Final Block

                            // send operation results
                            Reporter reporter = new Reporter
                            {
                                Downloaded = true,
                                Success    = true
                            };

                            // send report
                            reporter.SendReport(update.UpdateId);

                            // update version info new version value and save last update info
                            dbprocs.UpdateVersionString(update.AppVersion, update.UpdateId, update.AddedFeatures, update.RemovedFeatures, update.ReasonCode, update.ReasonTitle);
                            #endregion

                            Application.Current.Dispatcher.Invoke(new Action(() =>
                            {
                                Status.Text = "Your application updated!";
                                // and then go next step, what you want

                                // start main app and close this updated
                                Process.Start(AppDomain.CurrentDomain.BaseDirectory + "Poli.Makro");
                                Environment.Exit(Environment.ExitCode);
                            }));
                        }
                    }).Start();
                    // loop in updates
                }
            }
            else if ((bool)checkresult == false)
            {
                // if there is not update
                MessageBox.Show("You application is up to date.");

                if (!string.IsNullOrEmpty(updater.UpdaterResponse.ResponseAPIErrorMessage))
                {
                    MessageBox.Show(updater.UpdaterResponse.ResponseAPIErrorMessage, "Error:", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else if (!string.IsNullOrEmpty(updater.UpdaterResponse.ResponseAPIWarningMessage))
                {
                    MessageBox.Show(updater.UpdaterResponse.ResponseAPIWarningMessage, "Warning:", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            else if (checkresult == null)
            {
                // possible no internet connection
                MessageBox.Show("There is no internet connection.");
            }
        }
Ejemplo n.º 20
0
 public Extract Update(Extract extract)
 {
     _extractRepository.Update(extract);
     _extractRepository.SaveChanges();
     return(extract);
 }
Ejemplo n.º 21
0
        public static void ParseDDA(IRawFileThreadManager rawFileThreadManager, WorkflowParameters parameters)
        {
            MethodDataContainer         methodData;
            CentroidStreamCollection    centroidStreams;
            SegmentScanCollection       segmentScans;
            TrailerExtraCollection      trailerExtras;
            PrecursorMassCollection     precursorMasses;
            RetentionTimeCollection     retentionTimes;
            ScanEventReactionCollection reactions;
            ScanMetaDataCollectionDDA   metaData   = null;
            PrecursorPeakCollection     peakData   = null;
            RawMetricsDataDDA           rawMetrics = null;
            QuantDataCollection         quantData  = null;

            var staticRawFile = rawFileThreadManager.CreateThreadAccessor();

            staticRawFile.SelectInstrument(Device.MS, 1);

            //staticRawFile.CheckIfBoxcar();

            (ScanIndex Index, PrecursorScanCollection precursorScans, ScanDependentsCollections scanDependents) =
                Extract.ScanIndicesPrecursorsDependents(rawFileThreadManager);

            using (var rawFile = rawFileThreadManager.CreateThreadAccessor())
            {
                reactions = Extract.ScanEvents(rawFile, Index);

                methodData = Extract.MethodData(rawFile, Index);

                (centroidStreams, segmentScans) = Extract.MsData(rawFile: rawFile, index: Index);

                trailerExtras = Extract.TrailerExtras(rawFile, Index);

                precursorMasses = Extract.PrecursorMasses(rawFile, precursorScans, trailerExtras, Index);

                retentionTimes = Extract.RetentionTimes(rawFile, Index);
            }

            if (parameters.ParseParams.Parse | parameters.ParseParams.Quant | parameters.ParseParams.Metrics | parameters.RefineMassCharge)
            {
                peakData = AnalyzePeaks.AnalyzeAllPeaks(centroidStreams, retentionTimes, precursorMasses, precursorScans, Index);

                if (parameters.RefineMassCharge)
                {
                    MonoIsoPredictor.RefineMonoIsoMassChargeValues(centroidStreams, precursorMasses, trailerExtras, peakData, precursorScans);
                }

                metaData = MetaDataProcessingDDA.AggregateMetaDataDDA(centroidStreams, segmentScans, methodData, precursorScans,
                                                                      trailerExtras, precursorMasses, retentionTimes, scanDependents, reactions, Index);
            }

            if (parameters.ParseParams.Quant)
            {
                quantData = Quantification.Quantify(centroidStreams, segmentScans, parameters, methodData, Index);
            }

            if (parameters.ParseParams.Metrics)
            {
                rawMetrics = MetaDataProcessingDDA.GetMetricsDataDDA(metaData, methodData, staticRawFile.FileName, retentionTimes, Index, peakData, precursorScans, quantData);
                MetricsWriter.WriteMatrix(rawMetrics, null, staticRawFile.FileName, parameters.ParseParams.OutputDirectory);
            }

            if (parameters.ParseParams.Parse | parameters.ParseParams.Quant)
            {
                string matrixFileName = ReadWrite.GetPathToFile(parameters.ParseParams.OutputDirectory, staticRawFile.FileName, "_Matrix.txt");

                /*
                 * ParseWriter writerDDA = new ParseWriter(matrixFileName, centroidStreams, segmentScans, metaData, retentionTimes,
                 * precursorMasses, precursorScans, peakData, trailerExtras, Index, quantData);
                 * writerDDA.WriteMatrixDDA(methodData.AnalysisOrder);
                 */
                MatrixWriter.ParseQuantDDA(matrixFileName, centroidStreams, segmentScans, metaData, retentionTimes,
                                           precursorMasses, precursorScans, peakData, trailerExtras, Index, quantData);
            }

            if (parameters.ParseParams.WriteMgf)
            {
                //ParseWriter writerMGF = new ParseWriter(centroidStreams, segmentScans, parameters, retentionTimes, precursorMasses, precursorScans, trailerExtras, methodData, Index);
                //writerMGF.WriteMGF(staticRawFile.FileName);

                MgfWriter.WriteMGF(staticRawFile.FileName, centroidStreams, segmentScans, parameters, retentionTimes, precursorMasses, precursorScans, trailerExtras, methodData, Index);
            }

            if (parameters.ParseParams.Chromatogram != null)
            {
                ChromatogramWriter.WriteChromatogram(centroidStreams, segmentScans, retentionTimes, methodData, Index, parameters, staticRawFile.FileName);
            }
        }
Ejemplo n.º 22
0
        public static InjectedPluginInfo InjectAssembly(Assembly assembly, Service service = null)
        {
            Assembly = assembly;
            if (assembly is null)
            {
                throw new ArgumentNullException("assembly");
            }
            if (service is null)
            {
                service = Service.GetService();
            }
            if (service is null)
            {
                throw new ArgumentNullException("service has not started");
            }
            var script = service.GetScript();
            var ipi    = new InjectedPluginInfo();

            foreach (var c in Extract.GetPluginContainers(new[] { assembly }))
            {
                try {
                    var Container = NUMC.Plugin.Container.CreateContainer(c);
                    ipi.Containers.Add(Container);
                    var bt = Container.BaseType;
                    if (bt == typeof(IRuntime))
                    {
                        var scriptRuntimes = script?.GetRuntimes();
                        if (scriptRuntimes is object)
                        {
                            foreach (IRuntime item in Container.Plugins)
                            {
                                scriptRuntimes.Add(item);
                            }
                        }
                        else
                        {
                            ipi.Exceptions.Add(new ArgumentNullException(
                                                   "runtime of the script is incorrect"));
                        }
                    }
                    else if (bt == typeof(IApplicationMenu))
                    {
                        var appMenus = service.GetApplicationMenus();
                        foreach (IApplicationMenu item in Container.Plugins)
                        {
                            appMenus.Add(item);
                        }
                    }
                    else if (bt == typeof(INotifyMenu))
                    {
                        var notifyMenus = service.GetNotifyMenus();
                        foreach (INotifyMenu item in Container.Plugins)
                        {
                            notifyMenus.Add(item);
                        }
                    }
                    else if (bt == typeof(IKeyMenu))
                    {
                        var keyMenus = service.GetKeyMenus();
                        foreach (IKeyMenu item in Container.Plugins)
                        {
                            keyMenus.Add(item);
                        }
                    }
                    else
                    {
                        ipi.Exceptions.Add(new NotSupportedException("this plugin is not supported"));
                    }

                    if (Container.BaseType.GetInterface(typeof(IPluginExp).Name) == typeof(IPluginExp))
                    {
                        foreach (IPluginExp item in Container.Plugins)
                        {
                            item.Initialize(script);
                        }
                    }

                    service.GetMain().ReloadLanguage();
                } catch (Exception ex) {
                    ipi.Exceptions.Add(ex);
                }
            }
            return(ipi);
        }
Ejemplo n.º 23
0
        public static List<IComparable> ParseAll(String input,Extract[] parsers)
        {
            int count = 0;
            IComparable[][] alloc = new IComparable[parsers.Length][];
            for (int i = 0; i < parsers.Length; i++)
            {
                if (parsers[i](input) != null)
                {
                    alloc[i] = parsers[i](input);
                    count += alloc[i].Length;
                }
            }

            List<IComparable> res = new List<IComparable>();
            for (int i = 0; i < parsers.Length; i++)
            {
                if (alloc[i] != null)
                {
                    res.AddRange(alloc[i]);
                    count -= alloc[i].Length;
                }
            }
            return res;
        }
Ejemplo n.º 24
0
        public void TestEmpty()
        {
            AnimeResult result = Extract.AnimeNamesFromSite("");

            Assert.AreEqual(AnimeResponse.Unknown, result.Response);
        }