Example #1
0
        public bool SendMessageToGroupChat(int groupId, string content)
        {
            if (!GroupChats.ContainsKey(groupId))
            {
                return(false);
            }

            var group = GroupChats[groupId];

            group.SendMessage(new Message(content));

            return(true);
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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);
        }
Example #6
0
 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);
        }