public User GetUser(string userUri) { _logger.Log(LogLevel.Debug, String.Format("Find User {0}", userUri)); DomainServices.MessageServices messageServices = new DomainServices.MessageServices(_ctx); var uriType = messageServices.GetURIType(userUri); _logger.Log(LogLevel.Debug, String.Format("Find User {0} with UriType {1}", userUri, uriType)); User user = null; try { switch (uriType) { case URIType.FacebookAccount: user = _ctx.Users .FirstOrDefault(u => u.UserName.Equals(userUri)); return(user); case URIType.MECode: var meCode = _ctx.MECodes .Include("User") .FirstOrDefault(m => m.MeCode.Equals(userUri)); if (meCode == null) { return(null); } user = meCode.User; return(user); case URIType.EmailAddress: user = _ctx.Users .FirstOrDefault(u => u.EmailAddress == userUri); return(user); case URIType.MobileNumber: var phoneNumber = formattingServices.RemoveFormattingFromMobileNumber(userUri); user = _ctx.Users .FirstOrDefault(u => u.MobileNumber == phoneNumber); return(user); } } catch (Exception ex) { _logger.Log(LogLevel.Error, String.Format("Exception Getting User {0}", userUri)); } return(null); }
// GET /api/{userId}/PayStreamMessages public HttpResponseMessage <List <MessageModels.MessageResponse> > Get(string userId) { DomainServices.MessageServices messageServices = new DomainServices.MessageServices(_ctx); var user = GetUser(userId); if (user == null) { var message = new HttpResponseMessage <List <MessageModels.MessageResponse> >(HttpStatusCode.NotFound); message.ReasonPhrase = String.Format("User {0} specified in the request not found.", userId); return(message); } var messages = _ctx.Messages .Where(m => m.SenderId == user.UserId || m.RecipientId.Value == user.UserId) .OrderByDescending(m => m.CreateDate) .ToList <Message>(); List <MessageModels.MessageResponse> messageResponse = new List <MessageModels.MessageResponse>(); URIType senderUriType = URIType.MECode; URIType recipientUriType = URIType.MECode; string senderName = ""; string recipientName = ""; try { foreach (var message in messages) { senderUriType = URIType.MECode; recipientUriType = URIType.MECode; senderUriType = messageServices.GetURIType(message.SenderUri); recipientUriType = messageServices.GetURIType(message.RecipientUri); if (!String.IsNullOrEmpty(message.Sender.FirstName) || !String.IsNullOrEmpty(message.Sender.LastName)) { senderName = message.Sender.FirstName + " " + message.Sender.LastName; } else if (!String.IsNullOrEmpty(message.senderFirstName) || !String.IsNullOrEmpty(message.senderLastName)) { senderName = message.senderFirstName + " " + message.Sender.LastName; } else { senderName = (senderUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.SenderUri) : message.SenderUri); } if (message.Recipient != null && (!String.IsNullOrEmpty(message.Recipient.FirstName) || !String.IsNullOrEmpty(message.Recipient.LastName))) { recipientName = message.Recipient.FirstName + " " + message.Recipient.LastName; } else if (!String.IsNullOrEmpty(message.recipientFirstName) || !String.IsNullOrEmpty(message.recipientLastName)) { recipientName = message.recipientFirstName + " " + message.recipientLastName; } else { recipientName = (recipientUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.RecipientUri) : message.RecipientUri); } _logger.Log(LogLevel.Error, String.Format("URI Formats {0} {1}", senderUriType, recipientUriType)); String direction = "In"; if (message.SenderId.Equals(user.UserId)) { direction = "Out"; } messageResponse.Add(new MessageModels.MessageResponse() { amount = message.Amount, comments = message.Comments, createDate = message.CreateDate.ToString("ddd MMM dd HH:mm:ss zzz yyyy"), Id = message.Id, //lastUpdatedDate = m.LastUpdatedDate.ToString("ddd MMM dd HH:mm:ss zzz yyyy"), messageStatus = message.MessageStatus.ToString(), messageType = message.MessageType.ToString(), recipientUri = (recipientUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.RecipientUri) : message.RecipientUri), senderUri = (senderUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.SenderUri) : message.SenderUri), direction = direction, latitude = message.Latitude, longitutde = message.Longitude, senderName = senderName, senderImageUri = message.senderImageUri, recipientName = recipientName, recipientImageUri = message.recipientImageUri }); _logger.Log(LogLevel.Error, String.Format("Added MEssage {0} {1}", senderUriType, recipientUriType)); } } catch (Exception ex) { _logger.Log(LogLevel.Error, String.Format("Unhandled Exception formatting response. {0}", ex.Message)); } if (messageResponse == null) { var message = new HttpResponseMessage <List <MessageModels.MessageResponse> >(HttpStatusCode.InternalServerError); message.ReasonPhrase = String.Format("Unhandled exception get message for {0}", userId); return(message); } return(new HttpResponseMessage <List <MessageModels.MessageResponse> >(messageResponse, HttpStatusCode.OK)); }
// GET /api/{userId}/PayStreamMessages public HttpResponseMessage<List<MessageModels.MessageResponse>> Get(string userId) { DomainServices.MessageServices messageServices = new DomainServices.MessageServices(_ctx); var user = GetUser(userId); if (user == null) { var message = new HttpResponseMessage<List<MessageModels.MessageResponse>>(HttpStatusCode.NotFound); message.ReasonPhrase = String.Format("User {0} specified in the request not found.", userId); return message; } var messages = _ctx.Messages .Where(m => m.SenderId == user.UserId || m.RecipientId.Value == user.UserId) .OrderByDescending(m => m.CreateDate) .ToList<Message>(); List<MessageModels.MessageResponse> messageResponse = new List<MessageModels.MessageResponse>(); URIType senderUriType = URIType.MECode; URIType recipientUriType = URIType.MECode; string senderName = ""; string recipientName = ""; try { foreach (var message in messages) { senderUriType = URIType.MECode; recipientUriType = URIType.MECode; senderUriType = messageServices.GetURIType(message.SenderUri); recipientUriType = messageServices.GetURIType(message.RecipientUri); if (!String.IsNullOrEmpty(message.Sender.FirstName) || !String.IsNullOrEmpty(message.Sender.LastName)) senderName = message.Sender.FirstName + " " + message.Sender.LastName; else if (!String.IsNullOrEmpty(message.senderFirstName) || !String.IsNullOrEmpty(message.senderLastName)) senderName = message.senderFirstName + " " + message.Sender.LastName; else senderName = (senderUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.SenderUri) : message.SenderUri); if (message.Recipient != null && (!String.IsNullOrEmpty(message.Recipient.FirstName) || !String.IsNullOrEmpty(message.Recipient.LastName))) recipientName = message.Recipient.FirstName + " " + message.Recipient.LastName; else if (!String.IsNullOrEmpty(message.recipientFirstName) || !String.IsNullOrEmpty(message.recipientLastName)) recipientName = message.recipientFirstName + " " + message.recipientLastName; else recipientName = (recipientUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.RecipientUri) : message.RecipientUri); _logger.Log(LogLevel.Error, String.Format("URI Formats {0} {1}", senderUriType, recipientUriType)); String direction = "In"; if (message.SenderId.Equals(user.UserId)) direction = "Out"; messageResponse.Add(new MessageModels.MessageResponse() { amount = message.Amount, comments = message.Comments, createDate = message.CreateDate.ToString("ddd MMM dd HH:mm:ss zzz yyyy"), Id = message.Id, //lastUpdatedDate = m.LastUpdatedDate.ToString("ddd MMM dd HH:mm:ss zzz yyyy"), messageStatus = message.MessageStatus.ToString(), messageType = message.MessageType.ToString(), recipientUri = (recipientUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.RecipientUri) : message.RecipientUri), senderUri = (senderUriType == URIType.MobileNumber ? _formattingServices.FormatMobileNumber(message.SenderUri) : message.SenderUri), direction = direction, latitude = message.Latitude, longitutde = message.Longitude, senderName = senderName, senderImageUri = message.senderImageUri, recipientName = recipientName, recipientImageUri = message.recipientImageUri }); _logger.Log(LogLevel.Error, String.Format("Added MEssage {0} {1}", senderUriType, recipientUriType)); } } catch (Exception ex) { _logger.Log(LogLevel.Error, String.Format("Unhandled Exception formatting response. {0}", ex.Message)); } if (messageResponse == null) { var message = new HttpResponseMessage<List<MessageModels.MessageResponse>>(HttpStatusCode.InternalServerError); message.ReasonPhrase = String.Format("Unhandled exception get message for {0}", userId); return message; } return new HttpResponseMessage<List<MessageModels.MessageResponse>>(messageResponse, HttpStatusCode.OK); }
public User GetUser(string userUri) { _logger.Log(LogLevel.Debug, String.Format("Find User {0}", userUri)); DomainServices.MessageServices messageServices = new DomainServices.MessageServices(_ctx); var uriType = messageServices.GetURIType(userUri); _logger.Log(LogLevel.Debug, String.Format("Find User {0} with UriType {1}", userUri, uriType)); User user = null; try { switch (uriType) { case URIType.FacebookAccount: user = _ctx.Users .FirstOrDefault(u => u.UserName.Equals(userUri)); return user; case URIType.MECode: var meCode = _ctx.MECodes .Include("User") .FirstOrDefault(m => m.MeCode.Equals(userUri)); if (meCode == null) return null; user = meCode.User; return user; case URIType.EmailAddress: user = _ctx.Users .FirstOrDefault(u => u.EmailAddress == userUri); return user; case URIType.MobileNumber: var phoneNumber = formattingServices.RemoveFormattingFromMobileNumber(userUri); user = _ctx.Users .FirstOrDefault(u => u.MobileNumber == phoneNumber); return user; } } catch (Exception ex) { _logger.Log(LogLevel.Error, String.Format("Exception Getting User {0}", userUri)); } return null; }