public IActionResult Submit(EmailSubmitViewModel model) { if (ModelState.IsValid) { //Add count using (var conn = new MySqlConnection(connectionString)) { try { conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = "INSERT INTO submit_count(ip, submit_time, company_id) VALUES (INET_ATON(@ip), NOW(), @company)"; var ip = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4(); cmd.Parameters.AddWithValue("@ip", ip.ToString()); cmd.Parameters.AddWithValue("@company", model.Sponsor); cmd.ExecuteNonQuery(); } catch (Exception) { throw; } finally { //Close the connection conn.Close(); } }; return(Json("success")); } return(View(model)); }
public IActionResult Submit(EmailSubmitViewModel emailSubmitModel) { if (ModelState.IsValid) { return(Json(emailSubmitModel)); } return(View(emailSubmitModel)); }
public IActionResult Index() { ViewData["SignedNo"] = CountSent(); var model = new EmailSubmitViewModel { Sponsors = new List <SelectListItem>() }; using (var conn = new MySqlConnection(connectionString)) { try { conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = "SELECT company_id, name FROM company_info WHERE active = true"; var reader = cmd.ExecuteReader(); while (reader.Read()) { model.Sponsors.Add(new SelectListItem { Text = _localizer[reader.GetString(1)], Value = reader.GetInt16(0).ToString() }); } //Close the reader reader.Close(); } catch (Exception) { throw; } finally { //Close the connection conn.Close(); } }; var rnd = new Random(); model.Sponsor = rnd.Next(model.Sponsors.Count); return(View(model)); }
public IActionResult Generate(EmailSubmitViewModel model) { var response = new ResponseAPI(); if (ModelState.IsValid) { //Get requested culture var culture = Request.HttpContext.Features.Get <IRequestCultureFeature>().RequestCulture.Culture.Name; string[] supportedCultures = { "en", "ja" }; if (!supportedCultures.Contains(culture)) { culture = "en"; } var msg = ""; var companyName = ""; var companyMail = ""; using (var conn = new MySqlConnection(connectionString)) { try { conn.Open(); //Get a random template var cmd = conn.CreateCommand(); cmd.CommandText = "SELECT text_body FROM email_templates et WHERE et.locale = @locale AND approved = true ORDER BY RAND() LIMIT 1"; cmd.Parameters.AddWithValue("@locale", culture); var reader = cmd.ExecuteReader(); if (reader.Read()) { msg = reader.GetString(0); } reader.Close(); //Get the target company info cmd = conn.CreateCommand(); cmd.CommandText = "SELECT name, email FROM company_info WHERE active = true LIMIT 1"; cmd.Parameters.AddWithValue("@locale", culture); reader = cmd.ExecuteReader(); if (reader.Read()) { companyName = _localizer[reader.GetString(0)]; companyMail = reader.GetString(1); } reader.Close(); } catch (Exception) { throw; } finally { //Close the connection conn.Close(); } }; msg = msg.Replace("%company_name%", companyName) .Replace("%user_name%", model.FriendName) .Replace("%user_nationality%", model.FriendCountry); var returnData = new Dictionary <string, string>(); returnData.Add("template", msg); returnData.Add("email", companyMail); response.Status = ResponseState.Success; response.Message = "Get template successfully"; response.ReturnData = returnData; return(Json(response)); } response.Status = ResponseState.Fail; response.Message = "Missing details"; return(Json(response)); }