public void TestMakeReport() { // set up by loading in xml from file XElement dataFromFile = XElement.Load(@"/Users/stefanevans/Development/reporter/services/prtg/sam-app/test/PRTGService.Test/TestService/PRTGTestInputXmlFile.xml"); IEnumerable <XElement> itemsList = from item in dataFromFile.Elements() select item; IDictionary <string, string> requestParams = new Dictionary <string, string>(); requestParams["host"] = "monitoring.company.com"; requestParams["id"] = "111"; requestParams["sdate"] = "2019-01-01-00-00-00"; requestParams["edate"] = "2019-02-01-00-00-00"; requestParams["username"] = "******"; requestParams["passhash"] = "1234"; requestParams["title"] = "Report for Production [EC2] - PRTG Network Monitor"; requestParams["subtitle"] = "Amazon CloudWatch EC2 BETA (15 m Interval)"; SummaryReportMaker reportMaker = new SummaryReportMaker(); string output = reportMaker.MakeReport(itemsList, requestParams); output = output.Replace("\t", ""); string expected = System.IO.File.ReadAllText(@"/Users/stefanevans/Development/reporter/services/prtg/sam-app/test/PRTGService.Test/TestService/PRTGTestOutputExpected.html"); // check out from report maker is was is expected Assert.Equal(expected, output); }
public async Task <APIGatewayProxyResponse> FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context) { try { //var queryStrings = apigProxyEvent.QueryStringParameters["sdate"]; Console.WriteLine("apigProxyEvent count " + request.QueryStringParameters.Count()); IDictionary <string, string> requestParams = new Dictionary <string, string>(); if (request.QueryStringParameters != null) { var queryStringParameters = request.QueryStringParameters; foreach (var item in queryStringParameters) { Console.WriteLine($"QueryStringParameter - " + item.Key + ":" + item.Value); requestParams[item.Key] = item.Value; } } requestParams["username"] = Uri.EscapeDataString(requestParams["username"]); // get parameters from dynamodb //await GetItemFromDynamoDB(); IDictionary <string, string> reportParams = await dynamoClient.RetrieveReport("111", "2"); Console.WriteLine("reportParams is " + reportParams["id"] + " and title is " + reportParams["title"]); // load xml into XElement XElement dataFromPRTG = XElement.Load(GetPRTGSummary(requestParams).Result); IEnumerable <XElement> itemsList = from item in dataFromPRTG.Elements() select item; //var xrayTrace = TraceFunction(summaryCalculator.TestXRay ,"TestXRay"); SummaryReportMaker reportMaker = new SummaryReportMaker(); string output = reportMaker.MakeReport(itemsList, requestParams); Console.WriteLine("Return results"); return(new APIGatewayProxyResponse { //Body = JsonConvert.SerializeObject(body), Body = output, StatusCode = 200, Headers = new Dictionary <string, string> { { "Content-Type", "text/html" } } }); } catch (Exception e) { Console.WriteLine("Exception: " + e.Message); // catch error Dictionary <string, string> body = new Dictionary <string, string> { { "status", "error" }, { "message", e.Message }, { "stacktrace", e.StackTrace }, }; return(new APIGatewayProxyResponse { Body = JsonConvert.SerializeObject(body), StatusCode = 500, Headers = new Dictionary <string, string> { { "Content-Type", "application/json" } } }); } }