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); }
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(); }
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); }
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; }