public static MailboxNameData.Parsed Parse(this MailboxNameData target) { var modelStateDictionary = new System.Web.Http.ModelBinding.ModelStateDictionary(); MailboxName parsed0 = null; if (!MailboxName.IsEmpty(target.MailboxName)) { System.Collections.Generic.IReadOnlyCollection <string> parsed0Errors; if (!MailboxName.TryParse(target.MailboxName, out parsed0, out parsed0Errors)) { var modelState = new System.Web.Http.ModelBinding.ModelState(); foreach (var errorMessage in parsed0Errors) { modelState.Errors.Add(errorMessage); } modelStateDictionary.Add("MailboxName", modelState); } } else { var modelState = new System.Web.Http.ModelBinding.ModelState(); modelState.Errors.Add("Value required"); modelStateDictionary.Add("MailboxName", modelState); } if (!modelStateDictionary.IsValid) { throw new Fifthweek.Api.Core.ModelValidationException(modelStateDictionary); } return(new MailboxNameData.Parsed( parsed0)); }
public async Task <HttpResponseMessage> GetLatestMessageAndClearMailboxAsync(string mailboxName) { mailboxName.AssertUrlParameterProvided("mailboxName"); var parsedMailboxName = new MailboxNameData(mailboxName).Parse().MailboxName; string responseBody; var latestMessage = await this.tryGetLatestMessage.HandleAsync(new TryGetLatestMessageQuery(parsedMailboxName)); if (latestMessage == null) { responseBody = @"<p class=""lead text-danger""><span id=""mailbox-empty"">Mailbox Empty!</span></p>"; } else { await this.deleteAllMessages.HandleAsync(new DeleteAllMessagesCommand(parsedMailboxName)); responseBody = string.Format( @"<p class=""lead""><span id=""email-subject"">{0}</span></p> <hr /> <div id=""email-body"">{1}</div>", latestMessage.Subject, latestMessage.Body); } var response = new HttpResponseMessage { Content = new StringContent(ApplyHtmlTemplate(responseBody)) }; response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return(response); }