public ActionResult Script(int id) { SlotRange range = SlotRangeModel.GetSlotRange(id); string script = range.GenerateScript(); return(File(Encoding.UTF8.GetBytes(script), "text/plain", string.Format("scripts_cours_{0}.sh", id))); }
// this method uses host-based authentication /// <summary> /// GET: /SlotRange/EmailScript/3 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult EmailScript(int id) { if (Request.Url.Host != "localhost" && Request.UserHostAddress != "127.0.0.1") { throw new Exception("access denied"); } SlotRange range = SlotRangeModel.GetSlotRange(id); if (range == null) { throw new Exception("invalid id"); } string script = range.GenerateScript(); // get email address of resource manager List <Person> persons = PersonModel.GetResourceManagers(); string resMgrs = PersonModel.GetEmailCSV(persons); // send script to resourceManager(s) via E-Mail System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); //message.From = new System.Net.Mail.MailAddress("*****@*****.**"); message.To.Add(resMgrs); message.IsBodyHtml = false; message.Subject = "Script Linux pour le SlotRange '" + range.id_slotRange + "'"; message.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8"); message.From = new System.Net.Mail.MailAddress("*****@*****.**"); message.Body = script; System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); client.Send(message); // for demo backup, also write to a file return(View(range)); // can be implemented for testing purposes }