Пример #1
0
        public TopicRepository(
            ApplicationDbContext dbContext,
            UserContext userContext,
            BoardRepository boardRepository,
            MessageRepository messageRepository,
            PinRepository pinRepository,
            NotificationRepository notificationRepository,
            RoleRepository roleRepository,
            SettingsRepository settingsRepository,
            SmileyRepository smileyRepository,
            AccountRepository accountRepository,
            IActionContextAccessor actionContextAccessor,
            IUrlHelperFactory urlHelperFactory
            )
        {
            DbContext   = dbContext;
            UserContext = userContext;

            AccountRepository      = accountRepository;
            BoardRepository        = boardRepository;
            MessageRepository      = messageRepository;
            NotificationRepository = notificationRepository;
            PinRepository          = pinRepository;
            RoleRepository         = roleRepository;
            SettingsRepository     = settingsRepository;
            SmileyRepository       = smileyRepository;

            UrlHelper = urlHelperFactory.GetUrlHelper(actionContextAccessor.ActionContext);
        }
Пример #2
0
        public void Toggle(InputModels.ToggleBoardInput input)
        {
            var messageRecord = DbContext.Messages.Find(input.MessageId);

            if (messageRecord is null)
            {
                throw new HttpNotFoundError();
            }

            if (!BoardRepository.Any(r => r.Id == input.BoardId))
            {
                throw new HttpNotFoundError();
            }

            var messageId = input.MessageId;

            if (messageRecord.ParentId > 0)
            {
                messageId = messageRecord.ParentId;
            }

            var boardId = input.BoardId;

            var existingRecord = DbContext.MessageBoards.FirstOrDefault(p => p.MessageId == messageId && p.BoardId == boardId);

            if (existingRecord is null)
            {
                var messageBoardRecord = new DataModels.MessageBoard {
                    MessageId = messageId,
                    BoardId   = boardId,
                    UserId    = UserContext.ApplicationUser.Id
                };

                DbContext.MessageBoards.Add(messageBoardRecord);
            }
            else
            {
                DbContext.MessageBoards.Remove(existingRecord);
            }

            DbContext.SaveChanges();
        }
Пример #3
0
        public async Task <ServiceModels.ServiceResponse> CreateTopic(InputModels.MessageInput input)
        {
            var serviceResponse = new ServiceModels.ServiceResponse();

            var processedMessage = await ProcessMessageInput(serviceResponse, input.Body);

            if (!serviceResponse.Success)
            {
                return(serviceResponse);
            }

            var record = CreateMessageRecord(processedMessage, null);

            var existingMessageBoards = DbContext.MessageBoards.Where(item => item.MessageId == record.Id).ToList();

            foreach (var item in existingMessageBoards)
            {
                DbContext.Remove(item);
            }

            foreach (var selectedBoard in input.SelectedBoards)
            {
                var board = BoardRepository.FirstOrDefault(item => item.Id == selectedBoard);

                if (board != null)
                {
                    DbContext.MessageBoards.Add(new DataModels.MessageBoard {
                        MessageId = record.Id,
                        BoardId   = board.Id,
                        TimeAdded = DateTime.Now,
                        UserId    = UserContext.ApplicationUser.Id
                    });
                }
            }

            DbContext.SaveChanges();

            serviceResponse.RedirectPath = UrlHelper.DirectMessage(record.Id);
            return(serviceResponse);
        }
Пример #4
0
 public MessageRepository(
     ApplicationDbContext dbContext,
     UserContext userContext,
     BoardRepository boardRepository,
     SettingsRepository settingsRepository,
     SmileyRepository smileyRepository,
     AccountRepository accountRepository,
     IActionContextAccessor actionContextAccessor,
     IUrlHelperFactory urlHelperFactory,
     IImageStore imageStore,
     BBCodeParser bbcParser
     )
 {
     DbContext          = dbContext;
     UserContext        = userContext;
     BoardRepository    = boardRepository;
     SettingsRepository = settingsRepository;
     SmileyRepository   = smileyRepository;
     AccountRepository  = accountRepository;
     UrlHelper          = urlHelperFactory.GetUrlHelper(actionContextAccessor.ActionContext);
     ImageStore         = imageStore;
     BBCParser          = bbcParser;
 }