/// <summary> /// Retrieves messages from a candidate's CMO mailbox. /// </summary> /// <param name="candidateID">The CFIS ID of the desired candidate.</param> /// <param name="view">The mailbox view type.</param> /// <param name="elections">A collection of election cycles to filter against.</param> /// <returns>A collection of <see cref="CmoMessage"/> objects for the specified mailbox sorted according to the properties of the mailbox.</returns> public List <CmoMessage> GetMailboxMessages(string candidateID, CmoMailboxView view, HashSet <string> elections) { using (Data.CmoEntities context = new Data.CmoEntities()) { IQueryable <Data.CmoMessage> matches = context.CmoMessages.Where(m => m.PostDate.HasValue && m.CandidateId == candidateID); switch (view) { case CmoMailboxView.All: break; case CmoMailboxView.Archived: matches = matches.Where(m => m.ArchiveDate.HasValue); break; case CmoMailboxView.FollowUp: matches = matches.Where(m => m.FollowUp); break; case CmoMailboxView.Unopened: matches = matches.Where(m => !m.OpenDate.HasValue); break; case CmoMailboxView.Current: default: matches = matches.Where(m => !m.ArchiveDate.HasValue); break; } if (elections != null && elections.Count > 0) { matches = matches.Where(m => elections.Contains(m.ElectionCycle)); } return(matches.AsEnumerable().Select(m => CreateCmoMessage(m)).ToList()); } }
public ActionResult Index(CmoMailboxView view, string id = null) { var mailbox = GetMailbox(view); MessageViewModel message = null; if (id != null) { message = MessagesViewModelsFactory.MessageFrom(id, mailbox);; if (message == null) { return(HttpNotFound()); } if (Request.IsAjaxRequest()) { return(PartialView("Details", message)); } } var model = MessagesViewModelsFactory.MessageCenterFrom(mailbox, message); if (Request.IsAjaxRequest()) { return(PartialView("_MailboxViewPanel", model)); } return(View(model)); }
/// <summary> /// Raises the <see cref="Control.Init"/> event. /// </summary> /// <param name="e">An <see cref="EventArgs"/> object that contains the event data.</param> protected override void OnInit(EventArgs e) { base.OnInit(e); // check if a view is defined string viewName = Page.Request.QueryString[CmoMailbox.ViewParameter]; _view = !string.IsNullOrEmpty(viewName) && Enum.IsDefined(typeof(CmoMailboxView), viewName) ? CPConvert.ParseEnum <CmoMailboxView>(viewName) : CmoMailbox.DefaultView; }
public ActionResult Update(CmoMailboxView view, string updateAction, string[] message_ids) { int count = 0; bool error = false; foreach (var id in message_ids) { if (UpdateMessage(id, updateAction)) { count++; } else { error = true; } } SetUpdateResultMessage(updateAction, count, error); if (Request.IsAjaxRequest()) { return(PartialView(ViewName_MessagesList, MessagesViewModelsFactory.MessageCenterFrom(GetMailbox(view)).Messages)); } return(Index(view, null)); }
/// <summary> /// Gets the URL that loads a specific view. /// </summary> /// <param name="view">The target view.</param> /// <returns>A root-relative URL for loading the view indicated by <paramref name="view"/>.</returns> private string GetViewUrl(CmoMailboxView view) { return(string.Format("{0}?{1}={2}", PageUrlManager.CmoMailboxUrl, CmoMailbox.ViewParameter, view)); }
/// <summary> /// Retrieves messages from the mailbox. /// </summary> /// <param name="view">The desired mailbox view.</param> /// <returns>A collection of <see cref="CmoMessage"/> objects matching the specified view.</returns> public List <CmoMessage> GetMessages(CmoMailboxView view) { this.View = view; this.GetMessages(); return(this.Messages); }
/// <summary> /// Retrieves messages from a candidate's CMO mailbox. /// </summary> /// <param name="candidateID">The CFIS ID of the desired candidate.</param> /// <param name="view">The mailbox view type.</param> /// <param name="elections">A collection of election cycles to filter against.</param> /// <returns>A collection of <see cref="CmoMessage"/> objects for the specified mailbox sorted according to the properties of the mailbox.</returns> public List <CmoMessage> GetMailboxMessages(string candidateID, CmoMailboxView view, HashSet <string> elections) { using (DataClient client = new DataClient()) { return(client.GetMailboxMessages(candidateID, view, elections == null ? null : elections.ToList())); } }