Пример #1
0
        public ActionResult Create(CreateAlertModel model)
        {
            try
            {
                if (model.IsSystemAlert)
                {
                    model.To       = Constants.SystemUserId;
                    model.Priority = (int)AlertMessageFlags.System;
                }

                var alertMessageInfo = this.ToAlertMessageInfo(model, User);

                this.AmiClient.CreateAlert(alertMessageInfo);

                this.TempData["success"] = Locale.AlertCreatedSuccessfully;

                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                Trace.TraceError($"Unable to create alert: {e}");
            }

            model.ToList = new List <SelectListItem>();

            this.TempData["error"] = Locale.UnableToCreateAlert;

            return(View(model));
        }
Пример #2
0
        /// <summary>
        /// Converts an alert model to an alert message info.
        /// </summary>
        /// <param name="model">The create alert model.</param>
        /// <param name="user">The <see cref="IPrincipal"/> instance.</param>
        /// <returns>Returns the converted alert message info.</returns>
        private AlertMessageInfo ToAlertMessageInfo(CreateAlertModel model, IPrincipal user)
        {
            var alertMessageInfo = new AlertMessageInfo
            {
                AlertMessage = new AlertMessage
                {
                    Body      = model.Message,
                    CreatedBy = new SecurityUser
                    {
                        Key = Guid.Parse(user.Identity.GetUserId())
                    },
                    Flags = (AlertMessageFlags)model.Priority
                }
            };

            alertMessageInfo.AlertMessage.From = user.Identity.GetUserName();

            var securityUser = this.AmiClient.GetUser(model.To).User;

            alertMessageInfo.AlertMessage.RcptTo = new List <SecurityUser>
            {
                securityUser
            };

            switch (alertMessageInfo.AlertMessage.Flags)
            {
            case AlertMessageFlags.System:
                alertMessageInfo.AlertMessage.To = "everyone";
                break;

            default:
                alertMessageInfo.AlertMessage.To = securityUser.UserName;
                break;
            }

            alertMessageInfo.AlertMessage.Subject   = model.Subject;
            alertMessageInfo.AlertMessage.TimeStamp = DateTimeOffset.Now;

            return(alertMessageInfo);
        }