using System; using System.Collections.Generic; using Amazon.Lambda.Core; using Amazon.Lambda.APIGatewayEvents; using MySqlConnector; using System.Data; using classes; namespace PMF { public class SystemSettings: Pmfbase { MySqlDataReader _reader; public APIGatewayProxyResponse GetSettings(APIGatewayProxyRequest request, ILambdaContext context) { APIGatewayProxyResponse response; string statement = "DB::GetSettings"; string userId = ""; Dictionary dict = new Dictionary(); try { string validationMessage = string.Empty; if (!Helper.IsRequestEmpty(request)) { var validRequest = Helper.ValidateRequestParameters(ref validationMessage, request.QueryStringParameters, "userId"); if (validRequest) { if (_con.State == ConnectionState.Closed) _con.Open(); string result = string.Empty; userId = Helper.CleanInput(request.QueryStringParameters["userId"]); statement = "SELECT strKey, strValue FROM setting WHERE Active = 1"; var cmd = new MySqlCommand(); cmd.Connection = _con; cmd.CommandText = statement; cmd.ExecuteNonQuery(); _reader = cmd.ExecuteReader(); List settings = new List { }; if (_reader.HasRows) { while (_reader.Read()) { settings.Add(new { strKey = _reader.GetValue(0).ToString(), strValue = _reader.GetValue(1).ToString(), }); } _reader.Close(); response = HttpService.CreateResponse(200, payload: settings); } else { response = HttpService.CreateResponse(200, payload: "No settings found"); } } else { response = HttpService.CreateResponse(400, payload: validationMessage); } } else { response = HttpService.CreateResponse(400, payload: "No parameters provided"); } _logger.WriteLog(userId, statement, response.Body, "DB"); return response; } catch (Exception ex) { _logger.LogMessage(context, "Processing request failed: " + ex.Message); _logger.WriteLog(userId, statement, ex.Message, "DB"); return HttpService.CreateResponse(500, payload: ex.Message); } finally { if (_reader != null) _reader.Close(); if (_con != null || _con.State == ConnectionState.Open) _con.Close(); } } } }