Beispiel #1
0
        /// <summary>Retrieve key certificate from this authority.</summary>
        /// <param name="forceDownload"></param>
        /// <returns></returns>
        internal KeyCertificate GetKeyCertificate(RetrievalOptions options)
        {
            string cachedCertificateFilePath = CacheManager.GetKeyCertificateFilePath(this);
            string certificateText           = null;

            if ((0 == (RetrievalOptions.ForceDownload & options)) &&
                (0 != (RetrievalOptions.UseCache & options)))
            {
                if (File.Exists(cachedCertificateFilePath))
                {
                    certificateText = File.ReadAllText(cachedCertificateFilePath);
                }
            }
            if (null == certificateText)
            {
                certificateText = Encoding.ASCII.GetString(
                    WellKnownUrlRetriever.Retrieve(
                        WellKnownUrlRetriever.Document.KeyCertificate, this, true));
                if (0 == (RetrievalOptions.DoNotUseCache & options))
                {
                    File.WriteAllText(cachedCertificateFilePath, certificateText);
                }
            }
            // Should the key certificate not be found, we expect the above code to throw
            // an exception. TODO : verify this expectation.
            KeyCertificate result = new KeyCertificateParser().Parse(certificateText);

            result.Verify(this);
            return(result);
        }
Beispiel #2
0
        public ScsmObject[] GetObjectsByTypeName(string typeName, string criteria, RetrievalOptions retrievalOptions = null)
        {
            var objs = ScsmClient.ScsmObject()
                       .GetObjectsByTypeName(typeName, criteria, retrievalOptions).ToArray();

            return(objs);
        }
Beispiel #3
0
 /// <inheritdoc />
 public Task <IEnumerable <Request> > GetAllRequestsAsync(CancellationToken cancellationToken,
                                                          SizeOptions sizeOptions = null,
                                                          ExpirationDateOptions expirationDateOptions = null,
                                                          IDomainId domainIdOption          = null,
                                                          RetrievalOptions retrievalOptions = RetrievalOptions.ExcludeSoftDeleted,
                                                          RequestStatus?requestStatus       = null)
 {
     return(RetryAsync(
                nameof(ISymbolServiceClient.GetAllRequestsAsync),
                (client, ct) => client.GetAllRequestsAsync(ct, sizeOptions, expirationDateOptions, domainIdOption, retrievalOptions, requestStatus),
                cancellationToken));
 }
Beispiel #4
0
 /// <inheritdoc />
 public Task <IEnumerable <Request> > GetRequestPaginatedAsync(
     String continueFromRequestId,
     int pageSize,
     CancellationToken cancellationToken,
     SizeOptions sizeOptions = null,
     ExpirationDateOptions expirationDateOptions = null,
     IDomainId domainIdOption          = null,
     RetrievalOptions retrievalOptions = RetrievalOptions.ExcludeSoftDeleted,
     RequestStatus?requestStatus       = null)
 {
     return(RetryAsync(
                nameof(ISymbolServiceClient.GetRequestPaginatedAsync),
                (client, ct) => client.GetRequestPaginatedAsync(continueFromRequestId, pageSize, ct, sizeOptions, expirationDateOptions, domainIdOption, retrievalOptions, requestStatus),
                cancellationToken));
 }
 /// <inheritdoc />
 public Task <IEnumerable <DropItem> > ListAsync(
     string dropNamePrefix,
     PathOptions pathOptions,
     bool includeNonFinalizedDrops,
     CancellationToken cancellationToken,
     RetrievalOptions retrievalOptions,
     SizeOptions sizeOptions,
     ExpirationDateOptions expirationDateOptions,
     IDomainId domainId,
     int pageSize = -1,
     string continueFromDropName = null)
 {
     return(RetryAsync(
                nameof(IDropServiceClient.ListAsync),
                (client, ct) => client.ListAsync(dropNamePrefix, pathOptions, includeNonFinalizedDrops, ct, retrievalOptions, sizeOptions, expirationDateOptions, domainId, pageSize, continueFromDropName),
                cancellationToken));
 }
Beispiel #6
0
        /// <summary>Retrieve and parse a valid consensus, depending on flags value,
        /// either grab it from cache and/or download it from a random authority.</summary>
        /// <param name="options"></param>
        internal static Consensus Fetch(RetrievalOptions options)
        {
            // TODO : Factorize RetrievalOptions behavior with Authority.GetKeyCertificate
            string consensusContent = null;

            if ((0 == (RetrievalOptions.ForceDownload & options)) &&
                (0 != (RetrievalOptions.UseCache & options)) &&
                File.Exists(CacheManager.CachedConsensusFilePath))
            {
                consensusContent = File.ReadAllText(CacheManager.CachedConsensusFilePath);
            }
            else if ((0 != (options & RetrievalOptions.ForceDownload)) ||
                     (0 != (options & RetrievalOptions.DoNotUseCache)))
            {
                consensusContent = Encoding.ASCII.GetString(
                    WellKnownUrlRetriever.Retrieve(
                        WellKnownUrlRetriever.Document.MostRecentV3Consensus));
                if (0 == (RetrievalOptions.DoNotUseCache & options))
                {
                    File.WriteAllText(CacheManager.CachedConsensusFilePath, consensusContent);
                }
            }
            Consensus result = null;

            if (null != consensusContent)
            {
                result = Parser.ParseAndValidate(consensusContent);
            }
            // if the consensus is invalid, we have to download it anyway
            // TODO : Don't download if options do not allow to do so.
            if ((null == result) || (result.ValidUntilUTC < DateTime.UtcNow))
            {
                consensusContent = Encoding.ASCII.GetString(
                    WellKnownUrlRetriever.Retrieve(
                        WellKnownUrlRetriever.Document.MostRecentV3Consensus));
                if (0 == (options & RetrievalOptions.DoNotUseCache))
                {
                    File.WriteAllText(CacheManager.CachedConsensusFilePath, consensusContent);
                }
                result = Parser.ParseAndValidate(consensusContent);
            }
            return(result);
        }
Beispiel #7
0
        private RetrievalOptions <TodoListItem> ToRetrievalOptions(TodoQuery query)
        {
            var options = new RetrievalOptions <TodoListItem>();

            if (query.OrderBy.HasValue)
            {
                options.OrderBy.Predicate = GetSortByExpression(query);
                if (!query.OrderByDirection.HasValue)
                {
                    options.OrderBy.Ascending = true;
                }
                else
                {
                    options.OrderBy.Ascending = query.OrderByDirection.Value == QueryDirection.Ascending;
                }
            }

            options.Where = GetWhereExpression(query);
            return(options);
        }
Beispiel #8
0
 /// <summary>
 ///     Check if one or more options included.
 /// </summary>
 /// <param name="options">one or more EntityOptions options</param>
 /// <returns>true if one or more of the options are set</returns>
 public bool HasSome(RetrievalOptions options)
 {
     return (Options & options) != 0;
 }
Beispiel #9
0
 /// <summary>
 ///     Check if all options included.
 /// </summary>
 /// <param name="options">one or more EntityOptions options</param>
 /// <returns>true if all the passed options are set</returns>
 public bool HasAll(RetrievalOptions options)
 {
     return (Options & options) == options;
 }
Beispiel #10
0
 /// <inheritdoc />
 public Task <IEnumerable <DropItem> > ListAsync(string dropNamePrefix, PathOptions pathOptions, bool includeNonFinalizedDrops, CancellationToken cancellationToken, RetrievalOptions retrievalOptions = RetrievalOptions.ExcludeSoftDeleted)
 {
     return(RetryAsync(
                nameof(IDropServiceClient.ListAsync),
                (client, ct) => client.ListAsync(dropNamePrefix, pathOptions, includeNonFinalizedDrops, ct, retrievalOptions),
                cancellationToken));
 }
Beispiel #11
0
 /// <summary>
 ///     Request with one ID, SessionID and optionsl options.
 /// </summary>
 /// <param name="id">The id</param>
 /// <param name="sessionId">The session id</param>
 /// <param name="options">The options</param>
 public IDRequest(Guid id, Guid sessionId, RetrievalOptions options = RetrievalOptions.None)
 {
     Initialize(id, sessionId, options);
 }
Beispiel #12
0
 public ScsmObject[] GetObjectsByTypeId(Guid id, string criteria, RetrievalOptions retrievalOptions = null)
 {
     return(ScsmClient.ScsmObject()
            .GetObjectsByTypeId(id, criteria, retrievalOptions).ToArray());
 }
Beispiel #13
0
 public ScsmObject[] GetObjectsByTypeId(string id, string criteria, RetrievalOptions retrievalOptions = null)
 {
     return(GetObjectsByTypeId(id.ToGuid(), criteria, retrievalOptions));
 }
Beispiel #14
0
        /// <summary>
        ///     Use this method as opposed to constructors to initialize IDRequest.
        ///     This is required because of the nature of SessionID storage.
        /// </summary>
        private void Initialize(Guid id, Guid? sessionId = null, RetrievalOptions? flags = null)
        {
            ID = id;

            if (sessionId.HasValue)
            {
                SessionID = sessionId.Value;
            }

            if (flags.HasValue)
            {
                Options = flags.Value;
            }
        }
Beispiel #15
0
 public List <ChangeRequest> GetByCriteria(string criteria, RetrievalOptions retrievalOptions = null)
 {
     return(ScsmClient.ChangeRequest().GetByCriteria(criteria, retrievalOptions));
 }
Beispiel #16
0
 /// <summary>
 ///     Request with one ID and options.
 /// </summary>
 /// <param name="id">The id</param>
 /// <param name="options">The retrieval options</param>
 public IDRequest(Guid id, RetrievalOptions options)
 {
     Initialize(id, null, options);
 }
 Task <IEnumerable <DropItem> > IDropServiceClient.ListAsync(string dropNamePrefix, PathOptions pathOptions, bool includeNonFinalizedDrops, CancellationToken cancellationToken, RetrievalOptions retrievalOptions)
 {
     throw new NotImplementedException();
 }
 Task <IEnumerable <DropItem> > IDropServiceClient.ListAsync(string dropNamePrefix, PathOptions pathOptions, bool includeNonFinalizedDrops, CancellationToken cancellationToken, RetrievalOptions retrievalOptions, SizeOptions sizeOptions, ExpirationDateOptions expirationDateOptions, IDomainId domainId, int pageSize, string continueFromDropName)
 {
     throw new NotImplementedException();
 }
Beispiel #19
0
 public List <Incident> GetByCriteria(string criteria, RetrievalOptions retrievalOptions = null)
 {
     return(ScsmClient.Incident().GetByCriteria(criteria, retrievalOptions));
 }