using Amazon.Lambda.APIGatewayEvents; using Amazon.Lambda.Core; using AwsDotnetCsharp.Model; using classes; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; namespace PMF { public class ContactUs : Pmfbase { public APIGatewayProxyResponse ContactUsInformation(APIGatewayProxyRequest request, ILambdaContext context) { APIGatewayProxyResponse response; string statement = "DB::ContactUs"; string cognitoUuid = ""; try { string validationMessage = string.Empty; if (request != null && request.Body != null) { var data = JsonConvert.DeserializeObject(request.Body); var validRequest = Helper.ValidateRequestParameters(ref validationMessage, data, "strName", "strSurname", "strEmail", "idNumber", "strMessage"); if (validRequest) { var email = data["strEmail"].ToString(); //Only save if this is available if (Helper.IsAValidEmail(email)) { var mailer = new Services.Mailer(); var contactUs = JsonConvert.DeserializeObject(request.Body); mailer.SendEmail(contactUs); response = HttpService.CreateResponse(200, payload: "Message Received"); } else { response = HttpService.CreateResponse(400, payload: "Invalid Email"); _logger.WriteLog(cognitoUuid, statement, response.Body.ToString(), "DB"); return response; } } else { _logger.LogMessage(context, $"Processing request failed {validationMessage}"); response = HttpService.CreateResponse(400, payload: $"{validationMessage}"); return response; } } else { response = HttpService.CreateResponse(400, payload: "No parameters provided"); _logger.WriteLog(cognitoUuid, statement, response.Body.ToString(), "DB"); return response; } } catch (Exception ex) { response = HttpService.CreateResponse(500, payload: ex.Message); _logger.WriteLog(cognitoUuid, statement, response.Body.ToString(), "DB"); return response; } return response; } } }