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)); }
/// <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); }