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
        }