コード例 #1
0
        public ActionResult AddAlias(FormCollection _POST)
        {
            try
            {
                CustomAlias addAlias = new CustomAlias()
                {
                    Organization      = _POST["organization"],
                    UserPrincipalName = _POST["userprincipalname"],
                    EmailAddresses    = _POST["emailaddresses"].Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(),
                    SetFirstAsPrimary = _POST["setfirstasprimary"] == "on" ? true : false
                };
                for (int i = 0; i < addAlias.EmailAddresses.Count; i++)
                {
                    addAlias.EmailAddresses[i] = addAlias.EmailAddresses[i].Trim();
                }

                if (addAlias.EmailAddresses.Count == 0)
                {
                    throw new Exception("No aliases specified");
                }

                model.Alias = addAlias;

                CommonCAS.Log(string.Format("has run Mail/AddAlias() for user {0} to add alias {1}", addAlias.UserPrincipalName, string.Join(",", addAlias.EmailAddresses)));

                // execute powershell script and dispose powershell object
                using (MyPowerShell ps = new MyPowerShell())
                {
                    ps.AddAlias(addAlias);
                    var result = ps.Invoke();
                }

                CommonCAS.Stats("Mail/AddAlias");

                model.OKMessage.Add("Successfully added alias for " + addAlias.UserPrincipalName + ":");
                foreach (string alias in addAlias.EmailAddresses)
                {
                    model.OKMessage.Add(alias);
                }

                return(View("AddAlias", model));
            }
            catch (Exception exc)
            {
                CommonCAS.Log("Exception: " + exc.Message);
                model.ActionFailed = true;
                model.Message      = exc.Message;
                return(View(model));
            }
        }