public ActionResult CreateConversation(CreateConversationDTO createConversation) { if (createConversation.Users.Count != createConversation.Users.Distinct().Count()) { return(BadRequest(new { message = Errors.DuplicateUserIds })); } //Load users by ids var users = _userService.LoadByIds(createConversation.Users); if (users.Count != createConversation.Users.Count) { return(BadRequest(new { message = Errors.InvalidUserIds })); } var conversation = new Conversation() { CreateDate = DateTime.Now, Type = createConversation.Type, Users = users.Select(x => new UserConversation() { CreateDate = DateTime.Now, NotificationStatus = 1, Status = 0, User = x }).ToList(), Name = string.IsNullOrEmpty(createConversation.Name) ? BuildConversationName(users.Select(x => x.FullName).ToList()) : createConversation.Name }; return(Ok(_conversationService.Save(conversation))); }
public Guid CreateConversation(Guid sessionId, CreateConversationDTO conversationInfo) { string fixHint = null; var request = new RestRequest("api/conversation?token={session}", Method.POST); request.AddUrlSegment("session", sessionId); request.AddHeader("content-type", "application/json"); request.AddBody(conversationInfo); var response2 = _client.Execute(request); if (ProcessResponse(response2, out fixHint)) { } return(Guid.Empty); }
public ActionResult CreateConversation(Guid token, [FromBody] CreateConversationDTO createInfo) { Session session = _loginService.ValidateUserContext(token); Guid conversation; if (createInfo.Channel != Guid.Empty) { conversation = _dataService.CreateConversation(session.User, createInfo.Channel); } else if (createInfo.UserSet.Any() == true) { conversation = _dataService.CreateConversationWithUserSet(session.User, createInfo.UserSet); } else { return(BadRequest("Users or Channel not available.")); } if (conversation == Guid.Empty) { return(BadRequest("Unable to create required channel.")); } return(Created("", conversation)); }