public bool MessageSeen(string userId, int[] messagesIDs) { using (DataContext db = new DataContext()) { try { // performances check - try to fetch user group first foreach (var message in db.ChatMessages.Where(cm => messagesIDs.Contains(cm.Id))) { message.SeenBy += (!String.IsNullOrEmpty(message.SeenBy) ? "," : String.Empty) + userId; } //db.SaveChanges(); return(true); } catch (DbEntityValidationException ex) { ExceptionLogingHelper.LogException(ex); } catch (Exception ex) { ExceptionLogingHelper.LogException(ex); } return(false); } }
public int StoreChatMessage(string senderId, int userGroupId, string message) { try { using (DataContext db = new DataContext()) { var newMessage = new ChatMessage() { SenderId = senderId, UsersGroupId = userGroupId, Message = message, SeenBy = String.Empty, DateCreated = DateTime.Now }; db.ChatMessages.Add(newMessage); db.SaveChanges(); return(newMessage.Id); } } catch (DbEntityValidationException ex) { ExceptionLogingHelper.LogException(ex); return(0); } }
protected void Application_Error() { var ex = Server.GetLastError(); //log the error! ExceptionLogingHelper.LogException(ex); }
public int CreateGroup(string senderId, string receiverUserName) { try { using (DataContext db = new DataContext()) { var receiver = db.AspNetUsers.FirstOrDefault(u => u.UserName == receiverUserName); if (receiver != null) { string receiverId = receiver.Id; UsersGroup userGroup = new UsersGroup() { UserCreatorId = senderId, DateCreated = DateTime.Now }; db.UsersGroups.Add(userGroup); db.SaveChanges(); db.GroupMembers.Add(new GroupMember() { MemberId = senderId, UsersGroupId = userGroup.Id }); db.GroupMembers.Add(new GroupMember() { MemberId = receiverId, UsersGroupId = userGroup.Id }); db.SaveChanges(); return(userGroup.Id); } else { return(0); } } } catch (DbEntityValidationException ex) { ExceptionLogingHelper.LogException(ex); return(0); } }
public UserGroupWithMessagesViewModel GetUserGroupWithMessages(int userGroupId, int userGroupLatMessageId) { using (DataContext db = new DataContext()) { var currentUserGroupViewModel = new UserGroupWithMessagesViewModel(); try { var usersGroup = db.UsersGroups.FirstOrDefault(ug => ug.Id == userGroupId); if (usersGroup != null) { currentUserGroupViewModel.Id = userGroupId; if (userGroupLatMessageId == 0) { currentUserGroupViewModel.ChatMessagesByDay = _mapper.Map <List <ChatMessageViewModel> >(usersGroup.ChatMessages .OrderByDescending(cm => cm.DateCreated) .Take(MaxMessageCountPerPage)) .GroupBy(cm => cm.DateCreated.Date) .OrderBy(g => g.Key); } else { currentUserGroupViewModel.ChatMessagesByDay = _mapper.Map <List <ChatMessageViewModel> >(usersGroup.ChatMessages .OrderBy(cm => cm.DateCreated) .SkipWhile(cm => userGroupLatMessageId == 0 ? true : cm.Id == userGroupLatMessageId) .Take(MaxMessageCountPerPage)) .GroupBy(cm => cm.DateCreated.Date) .OrderBy(g => g.Key); } currentUserGroupViewModel.UserGroupMembers = usersGroup.GroupMembers.Select(gm => new UserGroupMemberViewModel() { Id = gm.Id, UserName = gm.AspNetUser.UserName }).ToList(); } } catch (Exception ex) { ExceptionLogingHelper.LogException(ex); } return(currentUserGroupViewModel); } }