コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }