Esempio n. 1
0
 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));
 }
Esempio n. 2
0
 public IActionResult Submit(EmailSubmitViewModel emailSubmitModel)
 {
     if (ModelState.IsValid)
     {
         return(Json(emailSubmitModel));
     }
     return(View(emailSubmitModel));
 }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }