예제 #1
0
        public async Task <R2Ping> GetCurrentUserPing(string pkgFilename, CancellationToken cancelTkn)
        {
            var list = await _client.List <PingsForCurrentUser1>(cancelTkn);

            if (list.Count == 0)
            {
                throw Fault.NoItems("Pings for current user");
            }

            var named = list.Where(x
                                   => x.PackageFilename == pkgFilename).ToList();

            if (named.Count == 0)
            {
                throw Fault
                      .NoMatch <R2Ping>("PkgFilename", pkgFilename);
            }

            if (named.Count > 1)
            {
                throw Fault
                      .NonSolo($"Pings for {pkgFilename}", named.Count);
            }

            return(named.First());
        }
예제 #2
0
        public LeaseDTO FindLease(int leaseID)
        {
            var match = ActiveLeases.Find(leaseID, false);

            if (match != null)
            {
                return(match);
            }

            match = InactiveLeases.Find(leaseID, false);

            if (match == null)
            {
                throw Fault.NoMatch <LeaseDTO>("Id", leaseID);
            }

            return(match);
        }