/// <summary>
        /// Get specific chat
        /// </summary>
        /// <param name="id"></param>
        /// <returns>ChatDTO</returns>
        public ChatDTO GetChatById(int id)
        {
            Logger.log.Debug("at WCFService.ChatService.GetChatById");
            var chat = ChatProvider.GetChatById(id);

            return(_chatConverter.ToDataTransferEntity(chat));
        }
Exemple #2
0
 /// <inheritdoc />
 public string SetProviderInfo(ChatSetupInfo info)
 {
     info.AdminList.RemoveAll(x => String.IsNullOrWhiteSpace(x));
     info.AdminChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x));
     info.GameChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x));
     info.DevChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x));
     info.WatchdogChannels.RemoveAll(x => String.IsNullOrWhiteSpace(x));
     try
     {
         lock (ChatLock)
         {
             foreach (var ChatProvider in ChatProviders)
             {
                 if (info.Provider == ChatProvider.ProviderInfo().Provider)
                 {
                     return(ChatProvider.SetProviderInfo(info));
                 }
             }
             return("Error: Invalid provider: " + info.Provider.ToString());
         }
     }
     catch (Exception e)
     {
         return(e.ToString());
     }
 }
Exemple #3
0
        private static void LoadProvider()
        {
            // if we do not have initiated the provider
            if (_provider == null)
            {
                lock (_lock)
                {
                    // Do this again to make sure _provider is still null
                    if (_provider == null)
                    {
                        // Get a reference to the <requestService> section
                        ChatServiceSection section = (ChatServiceSection)WebConfigurationManager.GetSection("LCSK/chatService");

                        // Load the default provider
                        if (section.Providers.Count > 0 && !string.IsNullOrEmpty(section.DefaultProvider) && section.Providers[section.DefaultProvider] != null)
                        {
                            _provider = (ChatProvider)ProvidersHelper.InstantiateProvider(section.Providers[section.DefaultProvider], typeof(ChatProvider));
                        }

                        if (_provider == null)
                        {
                            throw new ProviderException("Unable to load the ChatProvider");
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Add chat to db
        /// </summary>
        /// <param name="newChat"></param>
        /// <returns>Created chat id</returns>
        public int AddChat(ChatDTO newChat)
        {
            Logger.log.Debug("at WCFService.ChatService.AddChat");
            var chat = _chatConverter.ToBusinessEntity(newChat);

            return(ChatProvider.AddChat(chat));
        }
Exemple #5
0
        /// <summary>
        /// Constructs a <see cref="ChatSetupInfo"/> from optional <paramref name="baseInfo"/>
        /// </summary>
        /// <param name="provider">The <see cref="ChatProvider"/> that this <see cref="ChatSetupInfo"/> is for</param>
        /// <param name="baseInfo">Optional past data</param>
        /// <param name="numFields">The number of fields in this chat provider</param>
        protected internal ChatSetupInfo(ChatProvider provider, ChatSetupInfo baseInfo, int numFields)
        {
            numFields       += BaseIndex;
            InitializeFields = baseInfo == null || baseInfo.DataFields.Count != numFields;

            if (InitializeFields)
            {
                DataFields = new List <string>(numFields);
                for (var I = 0; I < numFields; ++I)
                {
                    DataFields.Add(null);
                }

                AdminList        = new List <string>();
                AdminChannels    = new List <string>();
                DevChannels      = new List <string>();
                GameChannels     = new List <string>();
                WatchdogChannels = new List <string>();
                AdminsAreSpecial = false;
                Enabled          = false;
            }
            else
            {
                DataFields = baseInfo.DataFields;
            }
            Provider = provider;
            Specialize(true);               //to check we have a valid provider
        }
Exemple #6
0
 private void IRCProviderSwitch_CheckedChanged(object sender, EventArgs e)
 {
     if (!updatingChat && IRCProviderSwitch.Checked)
     {
         ModifyingProvider = ChatProvider.IRC;
         LoadChatPage();
     }
 }
 public ChatService()
 {
     ChatProvider      = new ChatProvider();
     MessageProvider   = new MessageProvider();
     _userConverter    = new UserConverter();
     _chatConverter    = new ChatConverter();
     _messageConverter = new MessageConverter();
 }
        /// <summary>
        /// Get all users from this chat
        /// </summary>
        /// <param name="id"></param>
        /// <returns>List of users</returns>
        public IList <UserInfoDTO> GetAllUsersFromChat(int id)
        {
            Logger.log.Debug("at WCFService.ChatService.GetAllUsersFromChat");
            var chat  = ChatProvider.GetChatById(id);
            var users = ChatProvider.GetUsersOfChat(chat);

            return(_userConverter.ToDataTransferEntityList(users.ToList()));
        }
        /// <summary>
        /// Get all messages from this chat
        /// </summary>
        /// <param name="id"></param>
        /// <returns>List of messages</returns>
        public IList <MessageDTO> GetAllMessagesFromChat(int id)
        {
            Logger.log.Debug("at WCFService.ChatService.GetAllMessagesFromChat");
            var chat     = ChatProvider.GetChatById(id);
            var messages = ChatProvider.GetMessagesFromChat(chat);

            return(_messageConverter.ToDataTransferEntityList(messages.ToList()));
        }
Exemple #10
0
        public void AddUserToChat(User user, Chat chat)
        {
            chat.UserChats.Add(new UserChat {
                Chat = chat
            });
//            var userChat = new UserChat { User = user, Chat = chat };
//            UserChatProvider.Add(userChat);
//            UserChatProvider.SaveChanges();
            ChatProvider.SaveChanges();
        }
Exemple #11
0
 /// <inheritdoc />
 public string Reconnect(ChatProvider providerType)
 {
     foreach (var I in ChatProviders)
     {
         if (I.ProviderInfo().Provider == providerType)
         {
             return(I.Reconnect());
         }
     }
     return("Could not find specified provider!");
 }
Exemple #12
0
 /// <inheritdoc />
 public bool Connected(ChatProvider providerType)
 {
     foreach (var I in ChatProviders)
     {
         if (I.ProviderInfo().Provider == providerType)
         {
             return(I.Connected());
         }
     }
     return(false);
 }
        /// <summary>
        /// Add user to chat
        /// </summary>
        /// <param name="chatId"></param>
        /// <param name="userId"></param>
        /// <returns>Result of opreation</returns>
        public bool AddUser(int chatId, int userId)
        {
            Logger.log.Debug("at WCFService.ChatService.AddUser");
            var user = new User()
            {
                Id = userId
            };
            var chat = ChatProvider.GetChatById(chatId);

            return(ChatProvider.AddUserToChat(user, chat));
        }
Exemple #14
0
        public Chat GetChatById(int chatId, Include <Chat> include = null)
        {
            var chat = ChatProvider.All(include).FirstOrDefault(c => c.ChatId == chatId);

            if (chat == null)
            {
                throw new ServiceException {
                          Code = StatusCode.ChatNotFoundError
                };
            }

            return(chat);
        }
Exemple #15
0
        /// <summary>
        /// Properly shuts down all <see cref="ChatProviders"/>
        /// </summary>
        void DisposeChat()
        {
            var infosList = new List <IList <string> >();

            foreach (var ChatProvider in ChatProviders)
            {
                infosList.Add(ChatProvider.ProviderInfo().DataFields);
                ChatProvider.Dispose();
            }
            ChatProviders = null;

            var rawdata = JsonConvert.SerializeObject(infosList, Formatting.Indented);

            Config.ChatProviderData    = Interface.Helpers.EncryptData(rawdata, out string entrp);
            Config.ChatProviderEntropy = entrp;
        }
Exemple #16
0
 /// <summary>
 /// Broadcast a message to appropriate channels based on the message type
 /// </summary>
 /// <param name="msg">The message to send</param>
 /// <param name="mt">The message type</param>
 public void SendMessage(string msg, MessageType mt)
 {
     lock (ChatLock)
     {
         foreach (var ChatProvider in ChatProviders)
         {
             try
             {
                 ChatProvider.SendMessage(msg, mt);
             }
             catch (Exception e)
             {
                 WriteWarning(String.Format("Chat broadcast failed (Provider: {3}) (Flags: {0}) (Message: {1}): {2}", mt, msg, e.ToString(), ChatProvider.ProviderInfo().Provider), EventID.ChatBroadcastFail);
             }
         }
     }
 }
        static void Main(string[] args)
        {
            //UserProvider usrPrv = new UserProvider();
            //var user = usrPrv.GetUserById(1);
            //var user2 = usrPrv.GetUserById(5);
            //var way = usrPrv.GetWayBetweenFriends(user, user2);
            //Console.WriteLine("{0},{1},{2}",way[0].FirstName,
            //                    way[1].FirstName,
            //                    way[2].FirstName);
            ChatProvider c    = new ChatProvider();
            UserProvider u    = new UserProvider();
            var          user = u.GetUserById(2);
            var          chat = c.GetChatById(3);

            c.AddUserToChat(user, chat);
            Console.ReadLine();
        }
Exemple #18
0
        public Chat GetOrCreateChatWithUser(User sender, User receiver, Include <Chat> include = null)
        {
            var chat = ChatProvider.All(include)
                       .Include(c => c.UserChats)
                       .ThenInclude(uc => uc.User)
                       .FirstOrDefault(c => c.UserChats.Select(uc => uc.User.UserId).Contains(receiver.UserId));

            if (chat == null)
            {
                chat = new Chat {
                    Type = ChatType.Personal
                };
                ChatProvider.Add(chat);
                AddUserToChat(sender, chat);
                AddUserToChat(receiver, chat);
            }

            return(chat);
        }
Exemple #19
0
 public ChatStatusCommand(ChatProvider pI)
 {
     Keyword       = "status";
     providerIndex = (int)pI;
 }
Exemple #20
0
 public IQueryable <Chat> GetUserChats(User user)
 {
     return(ChatProvider.All().Include(c => c.UserChats)
            .Where(c => c.UserChats.Any(uc => uc.UserId == user.UserId)));
 }
Exemple #21
0
 public ChatPartCommand(ChatProvider pI)
 {
     Keyword            = "part";
     RequiredParameters = 2;
     providerIndex      = (int)pI;
 }
 public virtual void Dispose()
 {
     ChatProvider.Dispose();
     MessageProvider.Dispose();
 }
 /// <summary>
 /// Update this chat
 /// </summary>
 /// <param name="chat"></param>
 /// <returns>Result</returns>
 public bool UpdateChat(ChatDTO chat)
 {
     Logger.log.Debug("at WCFService.ChatService.UpdateChat");
     return(ChatProvider.UpdateChat(_chatConverter.ToBusinessEntity(chat)));
 }
Exemple #24
0
 public ChatListAdminsCommand(ChatProvider pI)
 {
     Keyword       = "list-admins";
     providerIndex = (int)pI;
 }
Exemple #25
0
 public ChatReconnectCommand(ChatProvider pI)
 {
     Keyword       = "reconnect";
     providerIndex = pI;
 }
Exemple #26
0
 public ChatServiceTests()
 {
     _chatClient  = new ChatServiceReference.ChatServiceClient();
     _userClient  = new UserServiceReference.UserServiceClient();
     ChatProvider = new ChatProvider();
 }
Exemple #27
0
 public ChatJoinCommand(ChatProvider pI)
 {
     Keyword            = "join";
     RequiredParameters = 2;
     providerIndex      = (int)pI;
 }
Exemple #28
0
 public ChatDeadminCommand(ChatProvider pI)
 {
     Keyword            = "deadmin";
     RequiredParameters = 1;
     providerIndex      = (int)pI;
 }
Exemple #29
0
 public ChatDisableCommand(ChatProvider pI)
 {
     Keyword       = "disable";
     providerIndex = (int)pI;
 }