public ActionResult UpdateSMTP([FromBody] string smtpJS) { var watch = System.Diagnostics.Stopwatch.StartNew(); GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric() { Message = "", ReturnCode = 0, //ReturnValue = "" }; try { if (smtpJS == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; result.ReturnCode = -1; result.Message = "Missing argument smtpJS"; logger.Warn("UpdateSMTP API Request ends with a Fatal Error."); logger.Warn(result.Message); } else { GlobalVars.SMTP smtp = JsonConvert.DeserializeObject <GlobalVars.SMTP>(smtpJS); logger.Info("UpdateSMTP API Request."); logger.Debug("Parameter:" + JsonConvert.SerializeObject(smtp, Formatting.Indented)); //Rules: // 1- HostName not null // 2- PortNumber <> 0 // 3- EnableSslFlag not null // 3- If SSL is true --> UserName and Password not null // 4- Sender Email Address not null // 5- Sender Name could be empty if (!string.IsNullOrEmpty(smtp.HostName) & smtp.PortNumber != 0 & !string.IsNullOrEmpty(smtp.SenderEmailAddress) & !string.IsNullOrEmpty(smtp.EnableSSLFlag.ToString())) { if (smtp.EnableSSLFlag) { if (!string.IsNullOrEmpty(smtp.UserName) & !string.IsNullOrEmpty(smtp.Password)) { // Good to go } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; result.ReturnCode = -1; result.Message = "When SSL Flag is true, you must provide no empty values for UserName and Password"; logger.Warn("UpdateSMTP API Request ends with a Fatal Error."); logger.Warn(result.Message); } } else { // Good to go } } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; result.ReturnCode = -1; result.Message = "HostName, PortNumber, and SenderEmailAddress must have a value. HostName not null, PortNumber > 0, SenderEmailAddress not null, and EnableSslflag {true, false}"; logger.Warn("UpdateSMTP API Request ends with a Fatal Error."); logger.Warn(result.Message); } if (result.ReturnCode == 0) { result = SQLFunctionsSMTP.UpdateSMTP(smtp); switch (result.ReturnCode) { case 0: logger.Info("UpdateSMTP API Request was executed Successfully."); Response.StatusCode = (int)HttpStatusCode.OK; break; case -2: Response.StatusCode = (int)HttpStatusCode.InternalServerError; logger.Fatal("UpdateSMTP API Request ends with a Fatal Error."); logger.Debug("Returned value:" + JsonConvert.SerializeObject(result, Formatting.Indented)); Response.StatusCode = (int)HttpStatusCode.InternalServerError; break; } } } } catch (Exception e) { logger.Fatal("UpdateSMTP API Request ends with a Fatal Error."); result.ReturnCode = -2; result.Message = e.Message; var baseException = e.GetBaseException(); result.Exception = baseException.ToString(); logger.Fatal("Returned value:" + JsonConvert.SerializeObject(result, Formatting.Indented)); Response.StatusCode = (int)HttpStatusCode.InternalServerError; } Response.ContentType = "application/json"; watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; elapsedMs = elapsedMs / 1000; result.ElapsedTime = elapsedMs.ToString(); result.HttpStatusCode = Response.StatusCode.ToString(); var messaje = JsonConvert.SerializeObject(result, Formatting.Indented); logger.Info("Leaving UpdateSMTP API"); //return Json(messaje); return(Content(messaje)); }