public HttpResponseMessage ReceiveMessage() { return this.ExecuteOperationAndHandleExceptions(() => { HttpResponseMessage result = null; var httpRequest = HttpContext.Current.Request; var data = new MessagesRepository( ConfigurationManager.AppSettings["MongoConnectionString"], ConfigurationManager.AppSettings["Database"]); var recipient = httpRequest.Unvalidated.Form["recipient"].Split('@'); var recipientName = recipient[0].Trim(); DbMessageModel model = new DbMessageModel() { BodyHtml = httpRequest.Unvalidated.Form["body-html"], BodyPlain = httpRequest.Unvalidated.Form["body-plain"], Date = DateTime.Now, Sender = httpRequest.Unvalidated.Form["from"], Recipient = httpRequest.Unvalidated.Form["recipient"], Subject = httpRequest.Unvalidated.Form["subject"], Username = recipientName }; data.Add(model); var responseModel = new MessageResponceModel { Id = model.Id, BodyHtml = model.BodyHtml, BodyPlain = model.BodyPlain, Date = model.Date, Recipient = model.Recipient, Sender = model.Sender, Subject = model.Subject }; var response = this.Request.CreateResponse(HttpStatusCode.Created, responseModel); return response; }); }
public void SaveMessage(DbMessageModel dbMessage) { this.sentMessages.Insert(dbMessage); }
public void Add(DbMessageModel message) { this.receivedMessages.Insert(message); }
public HttpResponseMessage SendMessage(MessageResponceModel message, [ValueProvider(typeof(HeaderValueProviderFactory<string>))] string accessToken) { var data = new MessagesRepository( ConfigurationManager.AppSettings["MongoConnectionString"], ConfigurationManager.AppSettings["Database"]); var user = this.GetUserByAccessToken(accessToken, data.Db); if (user == null) { return this.Request.CreateResponse(HttpStatusCode.Unauthorized); } message.Sender = user.Username + "@" + MailDomain; ValidateMessage(message); SendMessageToMailgun(message); DbMessageModel dbMessage = new DbMessageModel() { BodyHtml = message.BodyHtml, BodyPlain = message.BodyPlain, Date = message.Date, Recipient = message.Recipient, Sender = message.Sender, Subject = message.Subject, Username = user.Username }; data.SaveMessage(dbMessage); var response = this.Request.CreateResponse(HttpStatusCode.Created, message); return response; }