Ejemplo n.º 1
0
        /// <inheritdoc/>
        public void AddServer(ServerIconDto serverIcon, IChatEntityRepositoryProxy <Server, ChatDbContext> repo)
        {
            var newServer = new Server(serverIcon);

            repo.Add(newServer);
            _unitOfWork.Submit();
        }
Ejemplo n.º 2
0
        /// <inheritdoc />>
        public void DeleteMessage(int messageId, IChatEntityRepositoryProxy <Message, ChatDbContext> repo)
        {
            var message = repo.Find(messageId);

            _requestValidator.IsChannelRequestValid(message.Channel, message.Channel.Server, _user, PermissionTypes.CanWrite);

            repo.Delete(message);
            _unitOfWork.Submit();
        }
Ejemplo n.º 3
0
        /// <inheritdoc/>
        public void DeleteServer(int serverId, IChatEntityRepositoryProxy <Server, ChatDbContext> repo)
        {
            var server = repo.Find(serverId);

            _requestValidator.IsServerRequestValid(server, _user, PermissionTypes.CanManageServer);

            repo.Delete(repo.Find(serverId));
            _unitOfWork.Submit();
        }
Ejemplo n.º 4
0
        /// <inheritdoc/>
        public void DeleteChannel(int channelId, IChatEntityRepositoryProxy <Channel, ChatDbContext> repo)
        {
            var channel = repo.Find(channelId);

            _requestValidator.IsServerRequestValid(channel.Server, _user, PermissionTypes.CanManageChannels);

            repo.Delete(channel);
            _unitOfWork.Submit();
        }
Ejemplo n.º 5
0
        /// <inheritdoc/>
        public ServerDataDto GetServerData(int serverId,
                                           IChatDtoFactory <Server, ServerDataDto> dtoFactory,
                                           IChatEntityRepositoryProxy <Server, ChatDbContext> repoProxy)
        {
            var server = repoProxy.Find(serverId);

            //TODO validator, error handling
            return(dtoFactory.CreateDto(server));
        }
Ejemplo n.º 6
0
        public ChatControllerService(IChatRequestValidator requestValidator,
                                     IHttpContextAccessor httpContextAccessor,
                                     IChatEntityRepositoryProxy <ChatUser, ChatDbContext> userRepo)
        {
            _requestValidator = requestValidator;
            var token = (JwtSecurityToken)httpContextAccessor.HttpContext.Items["UserToken"];

            _user = userRepo.Find(token.Id);
        }
Ejemplo n.º 7
0
 public ChatHub(IChatHubService chatService,
                IChatEntityRepositoryProxy <Message, ChatDbContext> messageRepo,
                IChatEntityRepositoryProxy <Channel, ChatDbContext> channelRepo,
                IChatEntityRepositoryProxy <Server, ChatDbContext> serverRepo)
 {
     _chatService = chatService;
     _messageRepo = messageRepo;
     _channelRepo = channelRepo;
     _serverRepo  = serverRepo;
 }
Ejemplo n.º 8
0
        /// <inheritdoc/>
        public List <MessageDto> GetChannelMessages(int channelId,
                                                    IChatDtoFactory <Message, MessageDto> dtoFactory,
                                                    IChatEntityRepositoryProxy <Channel, ChatDbContext> channelRepo)
        {
            var channel = channelRepo.Find(channelId);

            _requestValidator.IsChannelRequestValid(channel, channel.Server, _user, PermissionTypes.CanView);

            //TODO Pagination, return 20-40 messages in one batch
            return(dtoFactory.CreateDtoList(channel.Messages));
        }
Ejemplo n.º 9
0
        public ChatHubService(EntityUnitOfWork unitOfWork,
                              IChatRequestValidator requestValidator,
                              HttpContextAccessor contextAccessor,
                              IChatEntityRepositoryProxy <ChatUser, ChatDbContext> repo)
        {
            _unitOfWork       = unitOfWork;
            _requestValidator = requestValidator;

            var token = (JwtSecurityToken)contextAccessor.HttpContext.Items["UserToken"];

            _user = repo.Find(token.Id);
        }
Ejemplo n.º 10
0
        /// <inheritdoc/>
        public void AddMessage(MessageDto message,
                               IChatEntityRepositoryProxy <Message, ChatDbContext> messageRepo,
                               IChatEntityRepositoryProxy <Channel, ChatDbContext> channelRepo)
        {
            var channel = channelRepo.Find(message.ChannelId);

            _requestValidator.IsChannelRequestValid(channel, channel.Server, _user, PermissionTypes.CanWrite);

            var newMessage = new Message(message, _user);

            messageRepo.Add(newMessage);
            _unitOfWork.Submit();
        }
Ejemplo n.º 11
0
        /// <inheritdoc/>
        public void AddChannel(ChannelIconDto channelIcon,
                               IChatEntityRepositoryProxy <Channel, ChatDbContext> channelRepo,
                               IChatEntityRepositoryProxy <Server, ChatDbContext> serverRepo)
        {
            var server = serverRepo.Find(channelIcon.ServerId);

            _requestValidator.IsServerRequestValid(server, _user, PermissionTypes.CanManageChannels);

            var newChannel = new Channel(channelIcon);

            channelRepo.Add(newChannel);
            _unitOfWork.Submit();
        }