public ChatController()
 {
     viewRepository           = new ViewRepository(dataContext);
     chatRepository           = new ChatRepository(dataContext);
     userRepository           = new UserRepository(dataContext);
     privateMessageRepository = new PrivateMessageRepository(dataContext);
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
 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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 10
0
 public PrivateMessageController()
 {
     privateMessageRepository = new PrivateMessageRepository(dataContext);
     chatRepository           = new ChatRepository(dataContext);
 }
Exemplo n.º 11
0
 public MessageManager()
 {
     repository = new PrivateMessageRepository();
 }
Exemplo n.º 12
0
 public int GetUnreadCount(User user)
 {
     return(PrivateMessageRepository.GetUnreadCount(user.UserID));
 }
Exemplo n.º 13
0
 public List <PrivateMessagePost> GetPosts(PrivateMessage pm)
 {
     return(PrivateMessageRepository.GetPosts(pm.PMID));
 }
Exemplo n.º 14
0
 public PrivateMessage Get(int pmID)
 {
     return(PrivateMessageRepository.Get(pmID));
 }
Exemplo n.º 15
0
 public void Unarchive(User user, PrivateMessage pm)
 {
     PrivateMessageRepository.SetArchive(pm.PMID, user.UserID, false);
 }
Exemplo n.º 16
0
 public void MarkPMRead(User user, PrivateMessage pm)
 {
     PrivateMessageRepository.SetLastViewTime(pm.PMID, user.UserID, DateTime.UtcNow);
 }
Exemplo n.º 17
0
        public bool IsUserInPM(User user, PrivateMessage pm)
        {
            var pmUsers = PrivateMessageRepository.GetUsers(pm.PMID);

            return(pmUsers.Where(p => p.UserID == user.UserID).Count() != 0);
        }