Example #1
0
        public override async Task <bool> ExecuteAsync(CancellationToken cancellationToken = default)
        {
            var proc = More.GetValue("proc").ThrowIfBlank("proc");

            var data = More.GetValue("data");

            var timeout = More.GetValue("timeout", (int?)null);

            var result_name = More.GetValue("result_name");

            await LogHelper.LogDebugAsync(nameof(RunSqlProcAction), new { jobId = JobId, proc, data = ShortStr(data, 200), result_name, timeout }, cancellationToken);

            if (string.IsNullOrEmpty(result_name))
            {
                _ = await DbHelper.ExecProcAsync($"WJb_{proc}", data, timeout, cancellationToken);

                await LogHelper.LogInformationAsync(nameof(RunSqlProcAction), new { jobId = JobId }, cancellationToken);
            }
            else
            {
                var result = await DbHelper.FromProcAsync <string?>($"WJb_{proc}", data, timeout, cancellationToken);

                More[result_name] = result;

                await LogHelper.LogInformationAsync(nameof(RunSqlProcAction), new { jobId = JobId, result = ShortStr(result, 200) }, cancellationToken);
            }

            return(true);
        }
Example #2
0
        public override async Task <bool> ExecuteAsync(CancellationToken cancellationToken = default)
        {
            var url = More.GetValue("url").ThrowIfBlank("url");

            var result_name = More.GetValue("result_name");

            if (string.IsNullOrEmpty(result_name))
            {
                result_name = "next_body";
            }

            await LogHelper.LogDebugAsync(nameof(Url2HtmlAction), new { jobId = JobId, url, result_name });

            var html = string.Empty;

            using var client = new WebClient()
                  {
                      Encoding = Encoding.UTF8
                  };

            html = await client.DownloadStringTaskAsync(url);

            if (html?.Length > 200)
            {
                html = await DbHelper.FromProcAsync("WJbFiles_Ins",
                                                    new { FileName = "body.html", FileContent = Encoding.UTF8.GetBytes(html) }, cancellationToken : cancellationToken);
            }

            More[result_name] = html;

            await LogHelper.LogInformationAsync(nameof(Url2HtmlAction), new { jobId = JobId, result = "OK", html });

            return(true);
        }
Example #3
0
        /// <summary>
        ///     Follows the feed to find all versions of package matching 'name'
        /// </summary>
        /// <param name="name">the name or partial name of a package to find</param>
        /// <returns>A set of packages</returns>
        internal IEnumerable <Package> Query(string name)
        {
            if (!IsValid || string.IsNullOrEmpty(name))
            {
                return(Enumerable.Empty <Package>());
            }

            // first get all the packages that are in this feed with a matched name
            var packages = PackagesFilteredByName(name).Select(packageGroup => new Package(_request, packageGroup)).Where(package => package.IsValid && package.Name.EqualsIgnoreCase(name));

            // then follow any supplemental links to more declared latest packages.
            var morePackages = More.SelectMany(nextGroup => new Feed(_request, nextGroup).Query(name));

            // let's search child feeds that declare that the name of the package in the feed matches the given name
            var packagesByName = Feeds.Where(feedGroup => feedGroup.Any(link => name.EqualsIgnoreCase(link.Attributes[Iso19770_2.Discovery.Name]))).SelectMany(feed => new Feed(_request, feed).Query(name));

            // and search child feeds that the name would be in their range.
            var packagesByNameRange = Feeds.Where(feedGroup => feedGroup.Any(link => {
                var minName = link.Attributes[Iso19770_2.Discovery.MinimumName];
                var maxName = link.Attributes[Iso19770_2.Discovery.MaximumName];
                if (string.IsNullOrEmpty(minName) || string.IsNullOrEmpty(maxName))
                {
                    return(false);
                }
                return(String.Compare(minName, name, StringComparison.OrdinalIgnoreCase) <= 0 && String.Compare(name, maxName, StringComparison.OrdinalIgnoreCase) <= 0);
            })).SelectMany(feed => new Feed(_request, feed).Query(name));

            return(packages.Concat(morePackages).Concat(packagesByName).Concat(packagesByNameRange));
        }
Example #4
0
 public void GoToDoYouHaveAStory_page()
 {
     News.Click();
     More.Click();
     HaveYouSay.Click();
     DoYouHaveAStory.Click();
 }
        /// <summary>
        /// Выполняет добавление нового задания в список задач шедулера.
        /// </summary>
        /// <param name="id"></param>
        public void AddShedule(int id)
        {
            lock (_schedulers)
            {
                if (_schedulers.All(x => x.Id != id))
                {
                    var task = Db <WebEnvironmentFiact> .NSession.Get <Sheduler>(id);

                    if (task.Type == "import")
                    {
                        var import = new Import(task.Id);
                        _schedulers.Add(import);
                        import.Completed += shedule_Completed;
                    }
                    if (task.Type == "export")
                    {
                        var export = new Export(task.Id);
                        _schedulers.Add(export);
                        export.Completed += shedule_Completed;
                    }
                    if (task.Type == "more")
                    {
                        var more = new More(task.Id);
                        _schedulers.Add(more);
                        more.Completed += shedule_Completed;
                    }
                }
            }
        }
 public override int GetHashCode()
 {
     unchecked
     {
         return((base.GetHashCode() * 397) ^ (More != null ? More.GetHashCode() : 0));
     }
 }
Example #7
0
        public MoreButton()
        {
            DefaultStyleKey = typeof(MoreButton);
            IconSource      = new More();

            ActualThemeChanged += OnActualThemeChanged;
            ThemeChanged();
        }
Example #8
0
 public override JToken ToJToken(ApiVersion version, ResultFormat format)
 {
     var obj = new JObject
     {
         ["statements"] = Statements?.ToJToken(version, format),
         ["more"] = More?.ToString()
     };
     return obj;
 }
Example #9
0
        internal void UpdateCell(More more)
        {
            if (!string.IsNullOrEmpty(more.imageUrl))
            {
                ImageService.Instance.LoadUrl(more.imageUrl).Into(MoreImage);
            }

            moreHeadline.Text    = more.desc;
            moreDescription.Text = more.note;
        }
Example #10
0
        public string Visit(More node)
        {
            var result = "";

            result +=
                Visit((dynamic)node[0]) + "\n"
                + Visit((dynamic)node[1]) + "\n"
                + "\tcgt\n";
            return(result);
        }
Example #11
0
 private void _SizeChanged(object sender, SizeChangedEventArgs e)
 {
     foreach (UIElement element in this.List.Children)
     {
         if (element is More)
         {
             More more = (More)element;
             more.Width = base.ActualWidth - 30.0;
         }
     }
 }
Example #12
0
            static Api.IShellItem _ShellItem(string path, string errMsg)
            {
                var pidl = More.PidlFromString(path, true);

                try {
                    var guid = typeof(Api.IShellItem).GUID;
                    AuException.ThrowIfFailed(Api.SHCreateItemFromIDList(pidl, guid, out var R), errMsg);
                    return(R);
                }
                finally { Marshal.FreeCoTaskMem(pidl); }
            }
Example #13
0
 private void EventChangeStationCompleted(object sender, EventArgsChangeStationCompleted e)
 {
     if (e.Result == "OK")
     {
         iService.Playlist();
     }
     else
     {
         More.BeginInvoke((MethodInvoker) delegate()
         {
             More.Enabled = false;
         });
     }
 }
Example #14
0
        public override async Task <bool> ExecuteAsync(CancellationToken cancellationToken = default)
        {
            string template_prefix = "template_", tvalue_prefix = "tvalue_";

            // @"[A-Z]{1,}[_]{1,}[A-Z]{1,}[_]{0,}[A-Z]{0,}"
            var tname_pattern = More.GetValue("tname_pattern");

            ArgumentNullException.ThrowIfNull(tname_pattern);

            var vals = new More();

            foreach (var more in More.Where(item => item.Key.StartsWith(tvalue_prefix)))
            {
                vals.Add(more.Key[tvalue_prefix.Length..], more.Value);
Example #15
0
        public void UseScopeLogsScope()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create();
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.UseScope();

            // Assert
            Assert.Collection(loggerFactory.Sink.Scopes,
                              scope => Assert.Equal("This scope's answer is 42", scope.Message));
        }
Example #16
0
        public void DoMoreLogsMessage_NotCheckingNested()
        {
            // Arrange
            var loggerFactory = MELTBuilder.CreateLoggerFactory(options => options.FilterByTypeName <More>());
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.DoMore();

            // Assert
            var log = Assert.Single(loggerFactory.LogEntries);

            Assert.Equal("More is less.", log.Message);
        }
Example #17
0
        public void UseLocalScopeLogsMessageWithScope()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create();
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.UseLocalScope();

            // Assert
            var log = Assert.Single(loggerFactory.Sink.LogEntries);

            Assert.Equal("This scope's answer is 42", log.Scope.Message);
        }
Example #18
0
        /// <summary>
        ///     Follows the feed to find all the *declared latest* versions of packgaes
        /// </summary>
        /// <returns>A set of packages</returns>
        internal IEnumerable <Package> Query()
        {
            if (!IsValid)
            {
                return(Enumerable.Empty <Package>());
            }

            // first get all the packages that are marked as the latest version.
            var packages = Packages.Select(packageGroup => new Package(_request, packageGroup.Where(link => link.Attributes[Iso19770_2.Discovery.Latest].IsTrue())));

            // then follow any supplemental links to more declared latest packages.
            var morePackages = More.SelectMany(nextGroup => new Feed(_request, nextGroup).Query());

            // We do not follow to other feeds to find more, because declared latest packages should be in this feed (or a supplemental).
            return(packages.Concat(morePackages));
        }
Example #19
0
        public virtual async Task NextAsync(bool execute_result, CancellationToken cancellationToken = default)
        {
            var next_prefix = execute_result ? GOOD_PREFIX : FAIL_PREFIX;

            var next_rule = More.GetValue(execute_result ? GOOD_RULE : FAIL_RULE);

            if (string.IsNullOrEmpty(next_rule))
            {
                return;
            }

            var next_more = new More();

            foreach (var more in More.Where(item => item.Key.StartsWith(next_prefix)))
            {
                next_more.Add(more.Key[next_prefix.Length..], more.Value);
Example #20
0
        public void DoMoreLogsFormat_NotCheckingNested()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create(options => options.FilterByTypeName <More>());
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.DoMore();

            // Assert
            var log = Assert.Single(loggerFactory.Sink.LogEntries);

            Assert.Equal("More is less.", log.OriginalFormat);
        }
Example #21
0
        public void DoMoreLogsMessage()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create();
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.DoMore();

            // Assert
            Assert.Collection(loggerFactory.Sink.LogEntries,
                              l => Assert.Equal("More is less.", l.Message),
                              l => Assert.Equal("The answer is 42", l.Message));
        }
Example #22
0
        public Num CalcDamage()
        {
            if (cached.HasValue && UseCache)
            {
                return(cached.Value);
            }

            var result = Base;

            foreach (var more in More.Concat(new[] { Increased }))
            {
                result = result * (1 + more);
            }

            return((cached = result).Value);
        }
Example #23
0
        public void UseScopeLogsCorrectParameters()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create();
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.UseScope();

            // Assert
            var scope = Assert.Single(loggerFactory.Sink.Scopes);

            // Assert specific parameters in the log entry
            LoggingAssert.Contains("number", 42, scope.Properties);
        }
Example #24
0
        public void UseScopeLogsCorrectOriginalFormat()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create();
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.UseScope();

            // Assert
            var scope = Assert.Single(loggerFactory.Sink.Scopes);

            // Assert specific parameters in the log entry
            Assert.Equal("This scope's answer is {number}", scope.OriginalFormat);
        }
        private void LoadSchedules()
        {
            List <Sheduler> schIds =
                Db <WebEnvironmentFiact> .Get <Sheduler>().Where(x => x.NextRun != default(DateTime?) && x.IsEnabled).
                ToList();

            foreach (Sheduler shedule in
                     schIds)
            {
                if (shedule.Type == "import")
                {
                    var import = new Import(shedule.Id);
                    import.Completed += shedule_Completed;
                    _schedulers.Add(import);
                }
                if (shedule.Type == "export")
                {
                    var export = new Export(shedule.Id);
                    export.Completed += shedule_Completed;
                    _schedulers.Add(export);
                }
                if (shedule.Type == "more")
                {
                    var more = new More(shedule.Id);
                    more.Completed += shedule_Completed;
                    _schedulers.Add(more);
                }

                if (shedule.Type == "eitp_hour")
                {
                    var more = new EitpHourlyJob(shedule.Id);
                    more.Completed += shedule_Completed;
                    _schedulers.Add(more);
                }

                if (shedule.Type == "eitp_daily")
                {
                    var more = new EitpDailyJob(shedule.Id);
                    more.Completed += shedule_Completed;
                    _schedulers.Add(more);
                }
            }
        }
Example #26
0
        public void DoEvenMoreLogsCorrectParameters()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create();
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);


            // Act
            more.DoEvenMore();

            // Assert
            var log = Assert.Single(loggerFactory.Sink.LogEntries);

            // Assert specific parameters in the log entry
            LoggingAssert.Contains("number", 42, log.Properties);
            LoggingAssert.Contains("foo", "bar", log.Properties);
        }
Example #27
0
        public static void AddNew(this More more, string?json)
        {
            if (string.IsNullOrWhiteSpace(json))
            {
                return;
            }

            var items = JsonSerializer.Deserialize <More>(json);

            if (items == null)
            {
                return;
            }

            foreach (var item in items.Where(item => !more.ContainsKey(item.Key)))
            {
                more.Add(item.Key, Convert.ToString(item.Value));
            }
        }
Example #28
0
        public void TraceLogsMessageWithScope()
        {
            // Arrange
            var loggerFactory = TestLoggerFactory.Create();
            var sampleLogger  = loggerFactory.CreateLogger <Sample>();
            var moreLogger    = loggerFactory.CreateLogger <More>();
            var more          = new More(new Sample(sampleLogger), moreLogger);

            // Act
            more.Trace();

            // Assert
            var log = Assert.Single(loggerFactory.Sink.LogEntries);

            Assert.Equal("This log entry is at trace level", log.Message);
            LoggingAssert.Contains("level", "trace", log.Properties);
            var scope = Assert.Single(log.Scopes);

            LoggingAssert.Contains("foo", "bar", scope.Properties);
        }
Example #29
0
 private void EventHandshakeCompleted(object sender, EventArgsHandshakeCompleted e)
 {
     if (e.Result == "OK")
     {
         More.BeginInvoke((MethodInvoker) delegate()
         {
             More.Enabled = true;
         });
         UserLog.WriteLine(DateTime.Now + ": last.fm login as " + iUsername + " successful");
         ChangeStation();
     }
     else
     {
         More.BeginInvoke((MethodInvoker) delegate()
         {
             More.Enabled = false;
         });
         iLoginRequired = true;
         UserLog.WriteLine(DateTime.Now + ": last.fm login as " + iUsername + " unsuccessful (" + e.Result + ")");
     }
 }
Example #30
0
        static void Main(string[] args)
        {
            var api       = new RedditApi();
            var subreddit = api.GetSubredditAsync("noveltranslations").GetAwaiter().GetResult();
            var links     = subreddit.GetHotLinksAsync(new ListingRequest {
                Limit = 2
            }).Result;

            foreach (Link link in links.OfType <Link>())
            {
                Console.WriteLine($"Link - {link.Title}");

                var comments = link.GetCommentsAsync(new GetCommentsRequest {
                    Limit = 5
                }).GetAwaiter().GetResult();
                foreach (Comment comment in comments.OfType <Comment>())
                {
                    Console.WriteLine($"- Comment - \"{comment.Body}\" by {comment.Author}");
                }

                More more = comments.LastOrDefault() as More;

                var someMoreComments = more?.Children.Take(2) ?? new List <string>();
                foreach (string anotherComment in someMoreComments)
                {
                    Comment aComment = subreddit.GetCommentAsync(new GetCommentRequest {
                        LinkId = link.Id, CommentId = anotherComment
                    })
                                       .GetAwaiter().GetResult();

                    Console.WriteLine($"-- Another comment {aComment.Body}");
                }
            }

            Console.WriteLine();
            Console.WriteLine("Done!");
            Console.ReadLine();
        }