public bool SendMessageToGroupChat(int groupId, string content) { if (!GroupChats.ContainsKey(groupId)) { return(false); } var group = GroupChats[groupId]; group.SendMessage(new Message(content)); return(true); }
public static async Task <bool> AddItemAsync(GroupChats item) { if (item == null || !IsConnected) { return(false); } var client = new HttpClient(); var serializedItem = JsonConvert.SerializeObject(item); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", Preferences.Get("token", string.Empty)); var response = await client.PostAsync(postchatUrl, new StringContent(serializedItem, Encoding.UTF8, "application/json")); return(response.IsSuccessStatusCode); }
public ActionResult GetGroupChat(string Token, int GroupID, int?Page) { var user = CheckUser(Token); if (user == null) { return(Json(new GroupChats { Code = 500, IsSuccess = false, Info = "AccessToken不正确" })); } var group = DbContext.Groups.Find(GroupID); if ((from gm in @group.GroupMembers where gm.UserID == user.ID select gm).Count() == 0) { return(Json(new Base { Code = 808, IsSuccess = false, Info = "您不是该群的成员" })); } if (Page == null) { Page = 0; } var ret = new GroupChats { Code = 0, IsSuccess = true, Info = "", List = new List <GroupChat>(), PageCount = group.GroupChats.Count / 50 + 1 }; var chats = group.GroupChats.OrderByDescending(x => x.Time).Skip(Page.Value * 50).Take(50).Reverse(); foreach (var chat in chats) { ret.List.Add(new GroupChat { ID = chat.ID, AvatarURL = Helpers.Gravatar.GetAvatarURL(chat.User.Gravatar, 180), GroupID = chat.GroupID, Message = chat.Message, Nickname = chat.User.Nickname, Time = chat.Time, UserID = chat.UserID }); } return(Json(ret)); }
public async void OpenChat(GroupChatDisplayModel gcdm) { var chat = GroupChats.Where(x => x.Id == gcdm.Id).First(); if (chat.Views != null) { var list = chat.Views.Where(x => x.UserId == User.Id); if (list.Count() != 0) { var view = new Models.View { UserId = User.Id }; await _api.AddViewToGroupChat(view, chat.Id); } } Application.Current.MainPage = new MainPage(new ChatPage(chat)); }
public static async Task <GroupChats> PostChat(GroupChats req) { var client = new HttpClient(); var json = JsonConvert.SerializeObject(req); var content = new StringContent(json, Encoding.UTF8, "application/json"); //client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", Preferences.Get("token", string.Empty)); var response = await client.PostAsync(postchatUrl, content); if (!response.IsSuccessStatusCode) { return(null); } var jsonResult = await response.Content.ReadAsStringAsync(); var responsecontent = JsonConvert.DeserializeObject <GroupChats>(jsonResult); return(responsecontent); }
public void AddConversation(GroupChat groupChat) => GroupChats.Add(groupChat.Id, groupChat);
public bool AddnewChat(string chatName, string[] Participents, int chatId, string status = "", bool isTicket = false, string TicketTitle = "", string Department = "") { try { // string[] groupchatparticpents = Participents.Split(','); if (chatId > 0) { var groupChat = _db.GroupsChats.Where(x => x.Id == chatId).FirstOrDefault(); if (groupChat.CreatedBy != User.Identity.GetUserId()) { return(false); } groupChat.ChatName = chatName; groupChat.GroupStatus = status; //if (isTicket == true && groupChat.isTicket==true) //{ // groupChat.Department = Department; //} //else //{ // if (isTicket == true && groupChat.isTicket == false) // { // groupChat.isTicket = true; // groupChat.Department = Department; // groupChat.TicketTitle = TicketTitle; // groupChat.TicketNum = "T-" + DateTime.Now.ToString("MMddyyyyhhmm") + "-" + groupChat.Id.ToString(); // } //} groupChat.UpdatedBy = User.Identity.GetUserId(); groupChat.UpdatedOn = DateTime.Now; _db.Entry(groupChat).State = EntityState.Modified; _db.SaveChanges(); if (Participents.Count() > 0) { var alreadyparticipents = _db.GroupChatParticipants.Where(x => x.GroupChatId == chatId).ToList(); _db.GroupChatParticipants.RemoveRange(alreadyparticipents); _db.SaveChanges(); foreach (var item in Participents) { GroupChatParticipants groupChatParticipants = new GroupChatParticipants { GroupChatId = groupChat.Id, UserId = item, isCreater = false }; _db.GroupChatParticipants.Add(groupChatParticipants); } GroupChatParticipants groupChatParticipants1 = new GroupChatParticipants { GroupChatId = groupChat.Id, UserId = User.Identity.GetUserId(), isCreater = true }; _db.GroupChatParticipants.Add(groupChatParticipants1); _db.SaveChanges(); } } else { GroupChats groupChat = new GroupChats { ChatName = chatName, GroupStatus = "Open", CreatedBy = User.Identity.GetUserId(), CreatedOn = DateTime.Now, }; _db.GroupsChats.Add(groupChat); _db.SaveChanges(); if (isTicket == true) { var groupchat = _db.groupChats.Where(x => x.Id == groupChat.Id).FirstOrDefault(); groupchat.isTicket = true; groupchat.Department = Department; groupchat.TicketTitle = TicketTitle; groupchat.TicketNum = "T-" + DateTime.Now.ToString("MMddyyyyhhmm") + "-" + groupChat.Id.ToString(); _db.Entry(groupChat).State = EntityState.Modified; _db.SaveChanges(); } if (Participents.Count() > 0) { foreach (var item in Participents) { GroupChatParticipants groupChatParticipants = new GroupChatParticipants { GroupChatId = groupChat.Id, UserId = item, isCreater = false }; _db.GroupChatParticipants.Add(groupChatParticipants); } GroupChatParticipants groupChatParticipants1 = new GroupChatParticipants { GroupChatId = groupChat.Id, UserId = User.Identity.GetUserId(), isCreater = true }; _db.GroupChatParticipants.Add(groupChatParticipants1); _db.SaveChanges(); } } } catch (Exception ex) { return(false); } return(true); }