Beispiel #1
0
 public void AddNick(Nick nick)
 {
     if (!connectedNicks.Contains(nick))
     {
         connectedNicks.Add(nick);
     }
 }
Beispiel #2
0
        public static Seen Update(Server ircServer, Nick ircNick, Account ircAccount, Channel ircChannel)
        {
            Seen seen = Seen.Fetch(ircNick);

            if (seen == null)
            {
                seen             = new Seen();
                seen.FirstSeenAt = DateTime.Now;
            }
            seen.Channel    = ircChannel;
            seen.Server     = ircServer;
            seen.Account    = ircAccount;
            seen.Nick       = ircNick;
            seen.LastSeenAt = DateTime.Now;
            seen.Save();

            if (seen.Account != null && ircNick.Account == null)
            {
                ircServer.AddAccount(seen.Account);
                ircNick.Account = seen.Account;
                seen.Account.AddNick(ircNick);
            }

            return(seen);
        }
Beispiel #3
0
 public void AddNick(Nick nick, bool recurse = true)
 {
     if (!Nicks.Contains(nick))
     {
         Nicks.Add(nick);
     }
 }
Beispiel #4
0
        public static Seen FetchByNickId(long nickId)
        {
            Nick    nick    = Nick.Fetch(nickId);
            Account account = Account.FetchByNickId(nickId);

            return(new Seen(nick, account));
        }
Beispiel #5
0
        public Seen(Nick nick = null, Account account = null, Channel channel = null)
        {
            if (nick == null && account == null)
            {
                return;
            }

            if (account == null && nick.Account != null)
            {
                account = nick.Account;
            }
            if (nick == null && account.MostRecentNick != null)
            {
                nick = account.MostRecentNick;
            }
            if (channel == null)
            {
                if (nick != null && nick.ChannelLastSeenIn != null)
                {
                    channel = nick.ChannelLastSeenIn;
                }
                else if (account != null && account.ChannelLastSeenIn != null)
                {
                    channel = account.ChannelLastSeenIn;
                }
            }

            Account = account;
            Nick    = nick;
            Channel = channel;

            Server = nick?.Server ?? account?.Server ?? channel?.Server;

            if (nick != null)
            {
                FirstSeenAt = nick.FirstSeenAt;
                if (account != null && account.FirstSeenAt < FirstSeenAt)
                {
                    FirstSeenAt = account.FirstSeenAt;
                }
            }
            else if (account != null)
            {
                FirstSeenAt = account.FirstSeenAt;
            }
            if (nick != null)
            {
                LastSeenAt = nick.LastSeenAt;
                if (account != null && account.LastSeenAt < LastSeenAt)
                {
                    LastSeenAt = account.LastSeenAt;
                }
            }
            else if (account != null)
            {
                LastSeenAt = account.LastSeenAt;
            }
        }
Beispiel #6
0
        public static Seen FetchByAccountId(long accountId)
        {
            List <Nick> nicks   = Nick.FetchByAccountId(accountId).ToList();
            Account     account = Account.Fetch(accountId);

            Nick nick = nicks.FirstOrDefault();

            return(new Seen(nick, account));
        }
Beispiel #7
0
 public void RemoveNick(Nick nick, bool recurse = true)
 {
     if (ConnectedNicks.Contains(nick))
     {
         ConnectedNicks.Remove(nick);
     }
     if (recurse)
     {
         nick.RemoveChannel(this, false);
     }
 }
Beispiel #8
0
 public void AddNick(Nick nick, bool recurse = true)
 {
     if (!ConnectedNicks.Contains(nick))
     {
         ConnectedNicks.Add(nick);
     }
     if (recurse)
     {
         nick.AddChannel(this, false);
     }
 }
Beispiel #9
0
        public static Seen Fetch(Nick nick)
        {
            if (nick == null)
            {
                return(null);
            }

            Account account = Account.FetchByNickId(nick.Id);

            return(new Seen(nick, account));
        }
Beispiel #10
0
        public static Seen Fetch(Account account)
        {
            if (account == null)
            {
                return(null);
            }

            List <Nick> nicks = Nick.FetchByAccountId(account.Id).ToList();
            Nick        nick  = nicks.FirstOrDefault();

            return(new Seen(nick, account));
        }
Beispiel #11
0
        public static IQueryable <Ban> Fetch(Nick nick)
        {
//            string host = (nick != null && nick.UserName != null && nick.Host != null ? nick.DisplayName + "!" + nick.UserName + "@" + nick.Host : null);
            string accountBan = (nick.Account != null ? "$a:" + nick.Account.Name : null);

            return(from b in LumbricusContext.db.Bans
                   where (/*(b.Mask != null && SqlMethods.Like(host, b.Mask))
                          || */(b.Mask != null && b.Mask == accountBan) ||
                          (b.Nick != null && b.Nick.Id == nick.Id) ||
                          (b.Account != null && nick.Account != null && b.Account.Id == nick.Account.Id))
                   select b);
        }
Beispiel #12
0
 public void RemoveNick(Nick nick, bool recurse = true)
 {
     if (connectedNicks.Contains(nick))
     {
         connectedNicks.Remove(nick);
     }
     if (recurse)
     {
         foreach (Channel channel in connectedChannels)
         {
             channel.RemoveNick(nick);
         }
     }
 }
Beispiel #13
0
        public static Nick Create(string nickName, Server server)
        {
            logger.Debug("Creating new nick `" + nickName + "` to server id `" + server.Id + "`");

            Nick nick = new Nick()
            {
                Name        = nickName.ToLower(),
                DisplayName = nickName,
                Server      = server,
            };

            LumbricusContext.db.Nicks.Add(nick);
            LumbricusContext.db.SaveChanges();

            return(nick);
        }
Beispiel #14
0
        public static Ban Fetch(Channel channel, Nick nick)
        {
//            string host = (nick != null && nick.UserName != null && nick.Host != null ? nick.DisplayName + "!" + nick.UserName + "@" + nick.Host : null);
            string accountBan = (nick.Account != null ? "$a:" + nick.Account.Name : null);

            return((from b in LumbricusContext.db.Bans
                    where b.Channel != null && b.Channel.Id == channel.Id &&
                    (

                        /*(b.Mask != null && SqlMethods.Like(host, b.Mask))
                        || */(b.Mask != null && b.Mask == accountBan) ||
                        (b.Nick != null && b.Nick.Id == nick.Id) ||
                        (b.Account != null && nick.Account != null && b.Account.Id == nick.Account.Id)
                    )
                    select b).FirstOrDefault());
        }
Beispiel #15
0
 public static Seen Update(Server ircServer, Nick ircNick, Account ircAccount)
 {
     return(Update(ircServer, ircNick, ircAccount, null));
 }
Beispiel #16
0
 public static Seen Update(Server ircServer, Nick ircNick)
 {
     return(Update(ircServer, ircNick, null, null));
 }