public ChatController() { viewRepository = new ViewRepository(dataContext); chatRepository = new ChatRepository(dataContext); userRepository = new UserRepository(dataContext); privateMessageRepository = new PrivateMessageRepository(dataContext); }
public BaseController(MessageStackContext messageStackContext) { _accountRepository = new AccountRepository(messageStackContext); _contactRepository = new ContactRepository(messageStackContext); _groupChatRepository = new GroupChatRepository(messageStackContext); _groupMessageRepository = new GroupMessageRepository(messageStackContext); _privateChatRepository = new PrivateChatRepository(messageStackContext); _privateMessageRepository = new PrivateMessageRepository(messageStackContext); }
public void GetSent_GivesRightRowsCount() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); const string connection = "Server=(localdb)\\MSSQLLocalDB;Database=ChatDB3;MultipleActiveResultSets=true;"; optionsBuilder.UseSqlServer(connection); var dbcontext = new ApplicationDbContext(optionsBuilder.Options); var privateMessageRepository = new PrivateMessageRepository(dbcontext, new LoggerFactory()); var privateMessageStatusesRepository = new PrivateMessageRepository(dbcontext, new LoggerFactory()); }
public async void CreatePrivateMessageAsync(PrivateMessage privateMessage) { using (PrivateMessageRepository db = GetUnit().PrivateMessage) { await Task.Run( () => { db.Add(privateMessage); db.Save(); }); } }
public List <PrivateMessage> GetPrivateMessages(User user, PrivateMessageBoxType boxType, int pageIndex, out PagerContext pagerContext) { var total = PrivateMessageRepository.GetBoxCount(user.UserID, boxType); var pageSize = SettingsManager.Current.TopicsPerPage; var startRow = ((pageIndex - 1) * pageSize) + 1; var totalPages = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / Convert.ToDouble(pageSize))); pagerContext = new PagerContext { PageCount = totalPages, PageIndex = pageIndex, PageSize = pageSize }; return(PrivateMessageRepository.GetPrivateMessages(user.UserID, boxType, startRow, pageSize)); }
public PrivateMessage Create(string subject, string fullText, User user, List <User> toUsers) { if (String.IsNullOrWhiteSpace(subject)) { throw new ArgumentNullException("subject"); } if (String.IsNullOrWhiteSpace(fullText)) { throw new ArgumentNullException("fullText"); } if (user == null) { throw new ArgumentNullException("user"); } if (toUsers == null || toUsers.Count == 0) { throw new ArgumentException("toUsers must include at least one user.", "toUsers"); } var names = user.Name; foreach (var toUser in toUsers) { names += ", " + toUser.Name; } var now = DateTime.UtcNow; var pm = new PrivateMessage { Subject = TextParsingService.EscapeHtmlAndCensor(subject), UserNames = names, LastPostTime = now }; pm.PMID = PrivateMessageRepository.CreatePrivateMessage(pm); PrivateMessageRepository.AddUsers(pm.PMID, new List <int> { user.UserID }, now, true); PrivateMessageRepository.AddUsers(pm.PMID, toUsers.Select(u => u.UserID).ToList(), now.AddSeconds(-1), false); var post = new PrivateMessagePost { FullText = TextParsingService.ForumCodeToHtml(fullText), Name = user.Name, PMID = pm.PMID, PostTime = now, UserID = user.UserID }; PrivateMessageRepository.AddPost(post); return(pm); }
public Unit(string dataSource, string catalog) { if (string.IsNullOrEmpty(dataSource)) { dataSource = @"(localdb)\MSSQLLocalDB"; } if (string.IsNullOrEmpty(catalog)) { catalog = "GrammesDb"; } string connectionString = $"Data Source={dataSource};Initial Catalog={catalog};Integrated Security=True;"; var context = new GrammesDbContext(connectionString); User = new UserRepository(context); GeneralMessage = new GeneralMessageRepository(context); PrivateMessage = new PrivateMessageRepository(context); Event = new EventRepository(context); }
public async Task <List <PrivateMessage> > GetPrivateMessageAsync() { var returnPrivateMessage = new List <PrivateMessage>(); using (PrivateMessageRepository db = GetUnit().PrivateMessage) { await Task.Run( () => { foreach (PrivateMessage message in db.GetAll()) { db.GrammesDbContext.Entry(message).Reference(u => u.Sender).Load(); db.GrammesDbContext.Entry(message).Reference(u => u.Target).Load(); returnPrivateMessage.Add(message); } }); } return(returnPrivateMessage); }
public void Reply(PrivateMessage pm, string fullText, User user) { if (pm == null || pm.PMID == 0) { throw new ArgumentException("Can't reply to a PM that hasn't been persisted.", "pm"); } if (fullText == null) { throw new ArgumentNullException("fullText"); } if (user == null) { throw new ArgumentNullException("user"); } if (!IsUserInPM(user, pm)) { throw new Exception("Can't add a PM reply for a user not part of the PM."); } var post = new PrivateMessagePost { FullText = TextParsingService.ForumCodeToHtml(fullText), Name = user.Name, PMID = pm.PMID, PostTime = DateTime.UtcNow, UserID = user.UserID }; PrivateMessageRepository.AddPost(post); var users = PrivateMessageRepository.GetUsers(pm.PMID); foreach (var u in users) { PrivateMessageRepository.SetArchive(pm.PMID, u.UserID, false); } var now = DateTime.UtcNow; PrivateMessageRepository.UpdateLastPostTime(pm.PMID, now); PrivateMessageRepository.SetLastViewTime(pm.PMID, user.UserID, now); }
public PrivateMessageController() { privateMessageRepository = new PrivateMessageRepository(dataContext); chatRepository = new ChatRepository(dataContext); }
public MessageManager() { repository = new PrivateMessageRepository(); }
public int GetUnreadCount(User user) { return(PrivateMessageRepository.GetUnreadCount(user.UserID)); }
public List <PrivateMessagePost> GetPosts(PrivateMessage pm) { return(PrivateMessageRepository.GetPosts(pm.PMID)); }
public PrivateMessage Get(int pmID) { return(PrivateMessageRepository.Get(pmID)); }
public void Unarchive(User user, PrivateMessage pm) { PrivateMessageRepository.SetArchive(pm.PMID, user.UserID, false); }
public void MarkPMRead(User user, PrivateMessage pm) { PrivateMessageRepository.SetLastViewTime(pm.PMID, user.UserID, DateTime.UtcNow); }
public bool IsUserInPM(User user, PrivateMessage pm) { var pmUsers = PrivateMessageRepository.GetUsers(pm.PMID); return(pmUsers.Where(p => p.UserID == user.UserID).Count() != 0); }