Note that there are some explanatory texts on larger screens.

plurals
  1. POasp.net mvc related, mainly a refactor question
    text
    copied!<p>can anyone think of a better way to do this?</p> <pre><code> [AcceptVerbs(HttpVerbs.Post)] public ActionResult SaveAction() { NameValueDeserializer value = new NameValueDeserializer(); // selected messages MemberMessageSaveAction[] messages = (MemberMessageSaveAction[])value.Deserialize(Request.Form, "value", typeof(MemberMessageSaveAction[])); // selected action MemberMessageAction action = (MemberMessageAction)Enum.Parse(typeof(MemberMessageAction), Request.Form["action"]); // determine action if (action != MemberMessageAction.MarkRead &amp;&amp; action != MemberMessageAction.MarkUnRead &amp;&amp; action != MemberMessageAction.Delete) { // selected action requires special processing IList&lt;MemberMessage&gt; items = new List&lt;MemberMessage&gt;(); // add selected messages to list for (int i = 0; i &lt; messages.Length; i++) { foreach (int id in messages[i].Selected) { items.Add(MessageRepository.FetchByID(id)); } } // determine action further if (action == MemberMessageAction.MoveToFolder) { // folders IList&lt;MemberMessageFolder&gt; folders = FolderRepository.FetchAll(new MemberMessageFolderCriteria { MemberID = Identity.ID, ExcludedFolder = Request.Form["folder"] }); if (folders.Total &gt; 0) { ViewData["messages"] = items; ViewData["folders"] = folders; return View("move"); } return Url&lt;MessageController&gt;(c =&gt; c.Index("inbox", 1)).Redirect(); } else if (action == MemberMessageAction.ExportXml) { return new MemberMessageDownload(Identity.ID, items, MemberMessageDownloadType.Xml); } else if (action == MemberMessageAction.ExportCsv) { return new MemberMessageDownload(Identity.ID, items, MemberMessageDownloadType.Csv); } else { return new MemberMessageDownload(Identity.ID, items, MemberMessageDownloadType.Text); } } else if (action == MemberMessageAction.Delete) { for (int i = 0; i &lt; messages.Length; i++) { foreach (int id in messages[i].Selected) { MemberMessage message = MessageRepository.FetchByID(id); if (message.Sender.ID == Identity.ID || message.Receiver.ID == Identity.ID) { if (message.Sender.ID == Identity.ID) { message.SenderActive = false; } else { message.ReceiverActive = false; } message.Updated = DateTime.Now; MessageRepository.Update(message); if (message.SenderActive == false &amp;&amp; message.ReceiverActive == false) { MessageRepository.Delete(message); } } } } } else { for (int i = 0; i &lt; messages.Length; i++) { foreach (int id in messages[i].Selected) { MemberMessage message = MessageRepository.FetchByID(id); if (message.Receiver.ID == Identity.ID) { if (action == MemberMessageAction.MarkRead) { message.ReceiverRead = true; } else { message.ReceiverRead = false; } message.Updated = DateTime.Now; MessageRepository.Update(message); } } } } return Url&lt;MessageController&gt;(c =&gt; c.Index("inbox", 1)).Redirect(); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload