示例#1
0
        public ActionResult Create([Bind(Include = "Id,ParseDate,ParserType,Original,Firmname,Description,Statistic,Price,SearchedArtikul,Url")] ParsedData parsedData)
        {
            if (ModelState.IsValid)
            {
                db.ParsedDatas.Add(parsedData);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(parsedData));
        }
        public void NotClassifiedBuildMessageType()
        {
            var span  = Utils.CreateSpan("-1");
            var match = Regex.Match(span.GetText(), "(?<Type>.*)");

            var data          = ParsedData.Create <BuildFileRelatedMessageData>(match, span.Span);
            var dataProcessor = new BuildFileRelatedMessageDataProcessor();
            var result        = dataProcessor.ProcessData(span, data);

            result.Should().BeEmpty();
        }
        private void AppendActivity(IFieldDataResultsAppender appender, ParsedData parsedData,
                                    FieldVisitInfo visitInfo, ILog logger)
        {
            var visitInterval     = new DateTimeInterval(visitInfo.StartDate, visitInfo.EndDate);
            var dischargeActivity = new ActivityMapper(parsedData, visitInterval)
                                    .GetDischargeActivity();

            logger.Info($"Got discharge activity for {visitInfo.StartDate:s}@{visitInfo.LocationInfo.LocationIdentifier}.");

            appender.AddDischargeActivity(visitInfo, dischargeActivity);
        }
示例#4
0
 /// <summary>
 /// 여러 설정 값을 XML 형식으로 저장/불러오기 하는 클래스를 생성합니다.
 /// </summary>
 /// <param name="xmlType">다룰 데이터의 XML 타입.</param>
 public XmlParser(EXmlType xmlType)
 {
     this.XmlType = xmlType;
     switch (xmlType)
     {
     case EXmlType.MitsubishiPLCData:
         m_XmlSerializer = new XmlSerializer(typeof(MitsubishiPLCData));
         ParsedData      = new MitsubishiPLCData();
         break;
     }
 }
示例#5
0
        public void NotClassifiedTraceEventType()
        {
            var span  = Utils.CreateSpan("-1");
            var match = Regex.Match(span.GetText(), "(?<Type>.*)");

            var data          = ParsedData.Create <DebugTraceMessageData>(match, span.Span);
            var dataProcessor = new DebugTraceMessageDataProcessor();
            var result        = dataProcessor.ProcessData(span, data);

            Assert.IsFalse(result.Any());
        }
示例#6
0
        public async Task SendAsync(ParsedData parsedData)
        {
            var keyValues = parsedData.KeyValues;

            _logger.LogInformation($"{Measurement}, {parsedData.DateTime}, {keyValues.Count()}");

            // var point = PointData.Measurement(Measurement);
            // if (parsedData.DateTime.HasValue)
            //     point = point.Timestamp(parsedData.DateTime.Value, WritePrecision.Ms);
            // if (!string.IsNullOrEmpty(parsedData.DevEUI))
            //     point = point.Tag("DevEUI", parsedData.DevEUI);
            // foreach (var keyValue in parsedData.KeyValues)
            // {
            //     if (keyValue.Value is int valInt)
            //         point = point.Field(keyValue.Key, (long)valInt);
            //     else if (keyValue.Value is long valLong)
            //         point = point.Field(keyValue.Key, valLong);
            //     else if (keyValue.Value is ulong valUlong)
            //         point = point.Field(keyValue.Key, valUlong);
            //     else if (keyValue.Value is double valDouble)
            //         point = point.Field(keyValue.Key, valDouble);
            //     else if (keyValue.Value is float valFloat)
            //         point = point.Field(keyValue.Key, valFloat);
            //     else if (keyValue.Value is decimal valDecimal)
            //         point = point.Field(keyValue.Key, valDecimal);
            //     else if (keyValue.Value is bool valBool)
            //         point = point.Field(keyValue.Key, valBool);
            //     else if (keyValue.Value is string valString)
            //         point = point.Field(keyValue.Key, valString);
            // }
            // WriteApi.WritePoint(point);
            // return Task.CompletedTask;

            var info = new DynamicInfluxRow();

            if (parsedData.DateTime.HasValue)
            {
                info.Timestamp = parsedData.DateTime.Value;
            }
            if (!string.IsNullOrEmpty(parsedData.DevEUI))
            {
                info.Tags.Add("DevEUI", parsedData.DevEUI);
            }
            foreach (var keyValue in parsedData.KeyValues)
            {
                info.Fields.Add(keyValue.Key, keyValue.Value);
            }

            _logger.LogInformation($"Tags: {string.Join(", ", info.Tags.Select(s => $"{s.Key}={s.Value}"))}");
            _logger.LogInformation($"Fields: {string.Join(", ", info.Fields.Select(s => $"{s.Key}={s.Value}"))}");

            await InfluxClient.WriteAsync(Database, Measurement, new DynamicInfluxRow[] { info });
        }
示例#7
0
        public void Test_errors_double_conversion()
        {
            var input = "1+2.1.1";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(Single.NaN, ErrorMessages.double_conversion);

            Assert.AreEqual(expected, actual);
        }
示例#8
0
        public void Test_errors_math_operators_absent()
        {
            var input = "123";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(Single.NaN, ErrorMessages.mathOp_absent);

            Assert.AreEqual(expected, actual);
        }
示例#9
0
        public void Test_empty_string()
        {
            var input = "";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(Single.NaN, ErrorMessages.empty_input);

            Assert.AreEqual(expected, actual);
        }
示例#10
0
        public void Test_multiplication()
        {
            var input = "1+2+3*3+5*6";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(42, "");

            Assert.AreEqual(expected, actual);
        }
示例#11
0
        public void Test_errors_division_to_zero()
        {
            var input = "1/0";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(Single.NaN, ErrorMessages.division_to_zero);

            Assert.AreEqual(expected, actual);
        }
示例#12
0
        protected void ButtonCalc_Click(object sender, EventArgs e)
        {
            TextBoxResult.Text = "";

            string math_sequence = GetMathSequence();

            ParsedData parsedData = Parser.ConvertStringToData(math_sequence);

            CalcResult calcResult = Calculator.Calculate(parsedData);

            PublicResult(calcResult);
        }
        /// <summary>
        /// Create object to display the dependency grouping from the parsed code data
        /// </summary>
        /// <returns></returns>
        public DependencyGroup BuildDependencyGroup(ParsedData data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            var result = new DependencyGroup
            {
                name         = "",
                datemodified = DateTime.UtcNow.ToString("s") + "Z",
                children     = new List <Children>()
            };

            var blackList = new List <string> {
                "jersey", "jackson", "versioncheck", "web", "metrics", "audit", "configuration", "grok", "gettingstarted", "utilities", "timeranges",
                "rules", "bootstrap", "buffers", "bindings", "savedsearches", "shared", "log4j"
            };

            foreach (var t in data.packageNames)
            {
                result.children.Add(new Children
                {
                    name         = t.Trim(),
                    size         = null,
                    datemodified = RandomDateTime(),
                    children     = new List <Children>()
                });
            }

            foreach (var child in result.children)
            {
                var matching = data.connectorsArray.Where(x => x[0].ToLower() == child.name.ToLower());

                foreach (var match in matching)
                {
                    if (blackList.Contains(match[1].ToLower()))
                    {
                        continue;
                    }

                    child.children.Add(new Children
                    {
                        children     = null,
                        datemodified = RandomDateTime(),
                        name         = match[1],
                        size         = 1
                    });
                }
            }

            return(result);
        }
示例#14
0
        public void Test_four_elements_add()
        {
            var input = "1+2+3+4";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(10, "");

            Assert.AreEqual(expected, actual);
        }
示例#15
0
        public void Test_errors_parentheses()
        {
            var input = "1+3*(2+5";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(Single.NaN, ErrorMessages.parentheses);

            Assert.AreEqual(expected, actual);
        }
示例#16
0
        public void Test_parentheses()
        {
            var input = "1+2*(3+4/(1+1))+5*(6*7-36)";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(41, "");

            Assert.AreEqual(expected, actual);
        }
示例#17
0
        public void Test_decimal_division()
        {
            var input = "1.2+2,4+3/4";

            ParsedData parsedData = Parser.ConvertStringToData(input);

            CalcResult actual = Calculator.Calculate(parsedData);

            CalcResult expected = new CalcResult(4.35, "");

            Assert.AreEqual(expected, actual);
        }
示例#18
0
 public ActionResult DeleteConfirmed(IEnumerable <int> selectedDatas, string OrderId)
 {
     if (selectedDatas != null)          //Если выбрана хотя бы одна строка для удаления
     {
         foreach (var id in selectedDatas)
         {
             ParsedData parsedData = db.ParsedDatas.Find(id);
             db.ParsedDatas.Remove(parsedData);
         }
         db.SaveChanges();
     }
     return(RedirectToAction("Index", new { OrderId = OrderId }));
 }
示例#19
0
        private void WriteFile()
        {
            using (var write = new StreamWriter(_newFilePath, true, Encoding.UTF8))
            {
                write.Write(ParsedData.ToString());
            }

            ParsedData.Clear();
            ParsedData = new StringBuilder();

            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
示例#20
0
        public void TestMethod8()
        {
            ParsedData currencyPair = new ParsedData();

            currencyPair.CurencyFrom = "eur";
            currencyPair.CurencyTo   = "ABC";
            currencyPair.AmountFrom  = 5m;
            Exchange exchange = new Exchange();

            Assert.ThrowsException <Exception>(
                () => exchange.CalculateAmount(currencyPair)
                );
        }
示例#21
0
        public void TestMethod5()
        {
            string     text         = "EUR/DKK 1";
            ParsedData parsedData   = Utility.Console.ParseData(text);
            ParsedData currencyPair = new ParsedData();

            currencyPair.CurencyFrom = "EUR";
            currencyPair.CurencyTo   = "DKK";
            currencyPair.AmountFrom  = 1m;
            bool isEqual = ObjectsValuesAreEqual(currencyPair, parsedData);

            Assert.IsTrue(isEqual);
        }
示例#22
0
        public void SeleniumParse()
        {
            IWebDriver driver = new ChromeDriver(AppDomain.CurrentDomain.BaseDirectory);

            driver.Navigate().GoToUrl(_pageUrl);

            var elements = driver.FindElements(By.CssSelector("div[data-name|='dashboard-champ-content']"));

            var count = 0;

            for (int i = 0; i < elements.Count; i++)
            {
                var         liga     = new Liga();
                IWebElement item     = elements[i];
                var         ligaItem = item.FindElement(By.CssSelector($"div>div.c-events__name>a"));

                liga.Id = ligaItem != null?ligaItem.GetAttribute("data-ligaid") : string.Empty;

                liga.Title = ligaItem != null?ligaItem.GetAttribute("title") : string.Empty;

                liga.Matches = item.FindElements(By.CssSelector($"div.c-events__item.c-events__item_col")).Select(c =>
                {
                    var teamNamesSelector         = "div.c-events-scoreboard div.c-events-scoreboard__item a.c-events__name div.c-events__team";
                    var teamNames                 = c.FindElements(By.CssSelector(teamNamesSelector)).Select(h => h.Text);
                    var matchUrlAttributeSelector = "a.c-events__name";
                    var url   = c.FindElements(By.CssSelector(matchUrlAttributeSelector)).Select(h => h.GetAttribute("href")).FirstOrDefault();
                    var score = c.FindElements(By.CssSelector("span.c-events-scoreboard__cell.c-events-scoreboard__cell--all")).Select(h => int.Parse(h.Text)).ToArray();
                    var rates = c.FindElements(By.CssSelector("div.c-bets a")).Select(k => k.Text).Take(3).ToArray();
                    var time  = c.FindElements(By.CssSelector("div.c-events__time span")).Select(k => k.Text).FirstOrDefault();
                    return(new Match
                    {
                        Id = ++count,
                        FirstTeam = new Team {
                            TeamName = teamNames.ElementAtOrDefault(0)
                        },
                        SecondTeam = new Team {
                            TeamName = teamNames.ElementAtOrDefault(1)
                        },
                        Url = url,
                        LigaId = liga.Id,
                        Score = score,
                        RateData = rates.Length == 3 ? new RateData {
                            FirstTeamWinRate = rates[0], SecondTeamWinRate = rates[2], DrawRate = rates[1]
                        } : null,
                        MatchTime = time
                    });
                }).ToList();

                ParsedData.Add(liga);
            }
        }
        private string DecryptText(ParsedData parsedData, Pixel firstCoordinates, ImageInfo imageInfo)
        {
            StringBuilder stringBuilder = new StringBuilder(parsedData.LengthOfText);

            Pixel previousCoordinates = firstCoordinates;

            for (int i = 0; i < parsedData.LengthOfText; i++)
            {
                previousCoordinates = GetNextCoordinates(previousCoordinates, imageInfo);
                stringBuilder.Append(FindSymbolInHashes(parsedData, previousCoordinates));
            }

            return(stringBuilder.ToString());
        }
示例#24
0
        // GET: ParsedDatas/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ParsedData parsedData = db.ParsedDatas.Find(id);

            if (parsedData == null)
            {
                return(HttpNotFound());
            }
            return(View(parsedData));
        }
示例#25
0
        private void CreateBackup(ParsedData parsedData)
        {
            _dataFile = parsedData.DataFile;
            if (File.Exists(_dataFile + ".dat"))
            {
                var exception = new DataFileAlreadyExistsException(_dataFile + ".dat");
                BackupLogger.GetInstance().Error(exception.Message);
                throw exception;
            }
            File.Create(_dataFile + ".dat").Close();

            _backupSystem = parsedData.BackupSystem;
            _backupSystem.CreateRestore(new RestoreFactory(RestoreType.Full));
        }
示例#26
0
        protected static void ExportJsonInformation(TextWriter stream, ParsedData data)
        {
            using var writer = new JsonTextWriter(stream);
            var serializer = new JsonSerializer
            {
                Formatting       = Formatting.Indented,
                ContractResolver = new DefaultContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                },
            };

            serializer.Serialize(writer, data);
        }
示例#27
0
        public void TestMissedFieldsModel()
        {
            ModelMapper <MissedFieldsModel> mapper = new ModelMapper <MissedFieldsModel>();
            MissedFieldsModel model = new MissedFieldsModel()
            {
                Id   = "1",
                Name = null
            };

            ParsedData        data   = ParseService.Parse(testLine);
            MissedFieldsModel result = mapper.Map(data);

            result.Should().BeEquivalentTo(model);
        }
示例#28
0
        private static ParsedData SeparateCurrencies(string data)
        {
            Regex regex = new Regex(@"[A-z]{3}");

            string[] currencies = regex.Matches(data)
                                  .OfType <Match>()
                                  .Select(m => m.Groups[0].Value)
                                  .ToArray();
            ParsedData parsedData = new ParsedData();

            parsedData.CurencyFrom = currencies[0].ToUpper();
            parsedData.CurencyTo   = currencies[1].ToUpper();
            return(parsedData);
        }
示例#29
0
        public void TestNormalModel()
        {
            ModelMapper <TestModel> mapper = new ModelMapper <TestModel>();
            TestModel model = new TestModel
            {
                Id   = "1",
                Name = "TestMessage"
            };

            ParsedData data   = ParseService.Parse(testLine);
            TestModel  result = mapper.Map(data);

            result.Should().BeEquivalentTo(model);
        }
示例#30
0
        public void ExportParsedData(ParsedData data, string outputPath, bool excludeHeader)
        {
            if (data is null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            using var writer = new StreamWriter(outputPath, false, new UTF8Encoding(false));

            if (!excludeHeader)
            {
                var text = string.Format(CultureInfo.InvariantCulture, "{0} ({1})", data.Version.SemVer, DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
                writer.WriteLine(text);
                WriteUnderline(writer, text.Length, '=');
            }

            var breakingNotes = data.ReleaseNotes.Notes.Where(n => n.Key == "BREAKING CHANGE" || n.Key == "BREAKING CHANGES");

            if (data.ReleaseNotes.BreakingChanges.Count > 0)
            {
                writer.WriteLine();
                const string header = "BREAKING CHANGES";
                writer.WriteLine(header);
                WriteUnderline(writer, header.Length);

                foreach (var breakingChange in data.ReleaseNotes.BreakingChanges)
                {
                    writer.WriteLine(breakingChange);
                }

                if (breakingNotes.Any())
                {
                    writer.WriteLine();
                }
            }

            foreach (var notePain in breakingNotes)
            {
                AddNoteLines(writer, notePain, data.ReleaseNotes.BreakingChanges.Count == 0);
            }

            foreach (var notePair in data.ReleaseNotes.Notes.Except(breakingNotes))
            {
                AddNoteLines(writer, notePair, true);
            }

            writer.Flush();

            this.console.WriteInfoLine(":check_mark: Exported [teal]Plain Text Release Notes[/] to '[teal]{0}[/]'", outputPath);
        }
        public void NotParsed()
        {
            var parser = new StubIParser<ParsedData>();
            parser.TryParseSnapshotSpanT0Out = delegate(SnapshotSpan s, out ParsedData r) {
                r = new ParsedData();
                return false;
            };
            var processor = new StubIParsedDataProcessor<ParsedData>();
            processor.ProcessDataSnapshotSpanT0 = (s, d) => new List<ProcessedParsedData> {
                new ProcessedParsedData(s, "TestClassification")
            };

            var classifier = Utils.CreateParserBasedClassifier(parser, processor);

            var span = Utils.CreateSpan("");
            var classificationSpans = classifier.GetClassificationSpans(span);
            Assert.AreEqual(0, classificationSpans.Count);
        }
示例#32
0
文件: Parser.cs 项目: pulb/basenji
 public Parser()
 {
     scanner = new Scanner();
     parsedData = new ParsedData();
 }
        Contribution AddPayPalContribution(ParsedData parsed) {
            try {
                if ((parsed.Status != "Completed" && parsed.Status != "Cleared") || parsed.Gross <= 0) return null; // not a contribution!

                double netEur;
                double grossEur;
                if (parsed.Currency == "EUR") {
                    netEur = parsed.Net;
                    grossEur = parsed.Gross;
                }
                else {
                    netEur = ConvertToEuros(parsed.Currency, parsed.Net);
                    grossEur = ConvertToEuros(parsed.Currency, parsed.Gross);
                }

                int? accountID, jarID;
                TryParseItemCode(parsed.ItemCode, out accountID, out jarID);
                
                Contribution contrib;
                using (var db = new ZkDataContext()) {
                    Account acc = null;
                    ContributionJar jar;
                    if (jarID == null) jar = db.ContributionJars.FirstOrDefault(x => x.IsDefault);
                    else jar = db.ContributionJars.FirstOrDefault(x => x.ContributionJarID == jarID);

                    if (accountID != null) acc = db.Accounts.Find(accountID.Value);

                    if (!string.IsNullOrEmpty(parsed.TransactionID) && db.Contributions.Any(x => x.PayPalTransactionID == parsed.TransactionID)) return null; // contribution already exists
                    var isSpring = !parsed.ItemCode.StartsWith("ZK") || jar.IsDefault;


                    contrib = new Contribution()
                              {
                                  AccountByAccountID = acc,
                                  Name = parsed.Name,
                                  Euros = grossEur,
                                  KudosValue = (int)Math.Round(grossEur*GlobalConst.EurosToKudos),
                                  OriginalAmount = parsed.Gross,
                                  OriginalCurrency = parsed.Currency,
                                  PayPalTransactionID = parsed.TransactionID,
                                  ItemCode = parsed.ItemCode,
                                  Time = parsed.Time,
                                  EurosNet = netEur,
                                  ItemName = parsed.ItemName,
                                  Email = parsed.Email,
                                  RedeemCode = Guid.NewGuid().ToString(),
                                  IsSpringContribution = isSpring,
                                  ContributionJar = jar
                              };
                    db.Contributions.Add(contrib);

                    db.SaveChanges();

                    if (acc != null) acc.Kudos = acc.KudosGained - acc.KudosSpent;
                    db.SaveChanges();


                    // technically not needed to sent when account is known, but perhaps its nice to get a confirmation like that

                    SendEmail(contrib);

                    NewContribution(contrib);
                }

                return contrib;
            } catch (Exception ex) {
                Trace.TraceError("Error processing payment: {0}", ex);
                Error(ex.ToString());
                return null;
            }
        }