Beispiel #1
0
        /// <summary>
        /// Ads a base to the settings and the observable collection
        /// </summary>
        public void Add()
        {
            if (string.IsNullOrEmpty(Name))
            {
                return;
            }
            string oldSetting = Properties.Settings.Default[Setting].ToString();

            Properties.Settings.Default[Setting] = $"{oldSetting};{Name}";

            Properties.Settings.Default.Save();
            Blocked.Add(Name);
        }
Beispiel #2
0
        private void SortRelationship(DiscordRelationship rel, bool skipAll = false)
        {
            RemoveRelationship(rel, skipAll);

            switch (rel.RelationshipType)
            {
            case DiscordRelationshipType.Friend:
                int i;

                if (!skipAll)
                {
                    i = _allList.BinarySearch(rel);
                    if (i < 0)
                    {
                        i = ~i;
                    }

                    _allList.Insert(i, rel);
                    _syncContext.Post(a => All.Insert(i, rel), null);
                }

                if (rel.User.Presence != null && rel.User.Presence.Status != UserStatus.Offline)
                {
                    i = _onlineList.BinarySearch(rel);
                    if (i < 0)
                    {
                        i = ~i;
                    }

                    _onlineList.Insert(i, rel);
                    _syncContext.Post(a => Online.Insert(i, rel), null);
                }
                break;

            case DiscordRelationshipType.Blocked:
                _syncContext.Post(a => Blocked.Add(rel), null);
                break;

            case DiscordRelationshipType.IncomingRequest:
            case DiscordRelationshipType.OutgoingRequest:
                _syncContext.Post(a => Pending.Add(rel), null);
                break;

            default:
                break;
            }
        }
 public RateLimitingOptions Block(string name, AsyncSelector <bool> predicate)
 {
     Blocked.Add(new Check(name, predicate));
     return(this);
 }
            public async Task To(StationDesc destination)
            {
                var cli    = RouterConn.Client;
                var dstMsg = new Metro.Api.Station {
                    Name = destination.Name, Image = destination.Image
                };

                switch (_type)
                {
                default: break;

                case MsgType.Signal:
                {
                    var req = new Metro.Api.TransmitRequest {
                        Token = Token.Create(), Src = _srcMsg, Dst = dstMsg, Message = _msg
                    };
                    var res = await RouterConn.Client.TransmitAsync(req);

                    switch (res.Code)
                    {
                    case 200: return;

                    case 403: throw new NotPermittedException(destination);

                    case 404: throw new ImageNotFoundException(destination);

                    default: throw new UnmanagedStatusCodeException(res.Code);
                    }
                }

                case MsgType.Link:
                {
                    var req = new Metro.Api.LinkRequest {
                        Token = Token.Create(), Src = _srcMsg, Dst = dstMsg, Message = _msg
                    };
                    var res = await RouterConn.Client.LinkAsync(req);

                    switch (res.Code)
                    {
                    case 200: return;

                    case 404: throw new ImageNotFoundException(destination);

                    default: throw new UnmanagedStatusCodeException(res.Code);
                    }
                }

                case MsgType.Block:
                {
                    _blocked.Add(destination);
                    var req = new Metro.Api.BlockRequest {
                        Token = Token.Create(), Src = _srcMsg, Dst = dstMsg, Message = _msg
                    };
                    var res = await RouterConn.Client.BlockAsync(req);

                    switch (res.Code)
                    {
                    case 200: return;

                    case 404: throw new ImageNotFoundException(destination);

                    default: throw new UnmanagedStatusCodeException(res.Code);
                    }
                }
                }

                return;
            }