Exemple #1
0
        public static async Task <IActionResult> checkforupdate([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
        {
            string customerid = req.Query["customerid"];

            customerid = customerid ?? "";

            string updateshash = req.Query["updateshash"];

            updateshash = updateshash ?? "";

            string ClientIP = req.HttpContext.Connection.RemoteIpAddress.ToString();

            if (!Base.ValidateIP(ClientIP))
            {
                if (Environment.GetEnvironmentVariable("EnforceGetURL") == "true")
                {
                    return(new OkObjectResult(new JArray().ToString()));
                }
            }
            else
            {
            }

            DateTime dStart = DateTime.Now;
            var      oGet   = new StreamReader(req.Body).ReadToEndAsync();
            JArray   jItems = JArray.Parse(oGet.Result);

            if (jItems.Count > 0)
            {
                if (!string.IsNullOrEmpty(updateshash)) //still in use?
                {
                    if (updateshash != Hash.CalculateMD5HashString(oGet.Result))
                    {
                        return(new OkObjectResult(new JArray().ToString()));
                    }
                    else
                    {
                        Console.WriteLine("CheckForUpdates Hash Error !");
                    }
                }

                string   sResult   = Base.CheckForUpdates(jItems, customerid).ToString();
                TimeSpan tDuration = DateTime.Now - dStart;
                Console.WriteLine("V2 UpdateCheck duration: " + tDuration.TotalMilliseconds.ToString() + "ms");
                Base.WriteLog("V2 UpdateCheck duration: " + Math.Round(tDuration.TotalSeconds).ToString() + "s", ClientIP, 1100, customerid);
                return(new OkObjectResult(sResult));
            }
            else
            {
                return(new OkObjectResult((new JArray()).ToString()));
            }
        }