Пример #1
0
        public IActionResult InvasionRewardNotifications(string message)
        {
            string output = new EasyCryptAES().Decrypt(appSecrets.TaskTriggerPassphrase, message);

            if (string.IsNullOrWhiteSpace(message))
            {
                return(BadRequest("Missing parameter"));
            }
            else
            {
                if (DateTime.TryParse(output, out DateTime result))
                {
                    TimeSpan difference = DateTime.Now.Subtract(result);
                    if (Math.Abs(difference.TotalSeconds) < 30)
                    {
                        invasionRewardNotifier.StartTask();
                        return(Ok());
                    }
                    else
                    {
                        return(BadRequest("Invalid: " + difference.TotalSeconds));
                    }
                }
                else
                {
                    return(UnprocessableEntity("Failed to parse message"));
                }
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            ILogger log = ConfigLogger();

            string urlArg = args.SingleOrDefault(x => x.StartsWith("-url="));
            //urlArg = "-url=http://tillers.dynu.com/WarframeTracker/Task/Test";
            string passphraseArg = args.SingleOrDefault(x => x.StartsWith("-passphrase="));
            //passphraseArg = "-passphrase=towerframe";

            string url        = urlArg.Split(new[] { '=' }, 2, StringSplitOptions.RemoveEmptyEntries).Last();
            string passphrase = passphraseArg.Split(new[] { '=' }, 2, StringSplitOptions.RemoveEmptyEntries).Last();

            string message = new EasyCryptAES().Encrypt(passphrase, DateTime.Now.ToString());

            Uri uri          = new Uri(url);
            Uri uriWithQuery = uri.AddQuery("message", message);

            using HttpClientHandler httpClientHandler = new HttpClientHandler();
            httpClientHandler.ServerCertificateCustomValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
            using HttpClient httpClient = new HttpClient(httpClientHandler);

            HttpResponseMessage response = httpClient.GetAsync(uriWithQuery).Result;

            if (response.IsSuccessStatusCode)
            {
                log.Information($"{uri} - StatusCode: {(int)response.StatusCode} {response.ReasonPhrase}");
            }
            else
            {
                log.Error($"{uri} - StatusCode: {(int)response.StatusCode} {response.ReasonPhrase}");
            }
        }
Пример #3
0
        public IActionResult Test(string message)
        {
            bool     success    = false;
            string   reason     = string.Empty;
            TimeSpan difference = new TimeSpan(0);
            string   output     = new EasyCryptAES().Decrypt(appSecrets.TaskTriggerPassphrase, message);

            if (DateTime.TryParse(output, out DateTime result))
            {
                difference = DateTime.Now.Subtract(result);
                if (Math.Abs(difference.TotalSeconds) < 30)
                {
                    success = true;
                }
                else
                {
                    reason = "outside timespan range";
                }
            }
            else
            {
                reason = "failed to parse";
            }
            return(Json(new {
                success,
                reason,
                message = output,
                difference = difference.TotalSeconds
            }));
        }