Пример #1
0
        /// <summary>
        /// Get a user summary anonymously, typically as an initial call to check the status of the account etc.
        /// </summary>
        /// <param name="email">The user name/email</param>
        /// <returns>The user summary</returns>
        public async Task <UserAccount> GetAllAccountsUserAccountAsync(string userName)
        {
            if (userName == null)
            {
                throw new ArgumentNullException(nameof(userName));
            }

            Uri resource = BaseUrl.PathCombine("users/all/accounts/{0}".With(ApiCaller.PathSegmentEncode(userName)));

            RestResponse restResponse = await Caller.RestAsync(new RestIdentity(), new RestRequest(resource, Timeout)).Free();

            if (restResponse.StatusCode == HttpStatusCode.NotFound)
            {
                return(new UserAccount(userName, SubscriptionLevel.Unknown, AccountStatus.NotFound));
            }
            if (restResponse.StatusCode == HttpStatusCode.BadRequest)
            {
                return(new UserAccount(userName, SubscriptionLevel.Unknown, AccountStatus.InvalidName));
            }
            ApiCaller.EnsureStatusOk(restResponse);

            UserAccount userAccount = Serializer.Deserialize <UserAccount>(restResponse.Content);

            return(userAccount);
        }
Пример #2
0
        /// <summary>
        /// Gets the public key of any user. If the user does not exist, he or she is invited by the current user.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <returns></returns>
        public async Task <AccountKey> GetPublicApiKeyAllAccountsOtherUserPublicKeyAsync(string userName)
        {
            if (userName == null)
            {
                throw new ArgumentNullException(nameof(userName));
            }

            Uri resource = BaseUrl.PathCombine("public/all/accounts/{0}/key".With(ApiCaller.PathSegmentEncode(userName)));

            RestResponse restResponse = await Caller.RestAsync(Identity, new RestRequest(resource, Timeout)).Free();

            ApiCaller.EnsureStatusOk(restResponse);

            AccountKey accountKey = Serializer.Deserialize <AccountKey>(restResponse.Content);

            return(accountKey);
        }
Пример #3
0
        public async Task PostAllAccountsUserAsync(string userName, CultureInfo culture)
        {
            if (userName == null)
            {
                throw new ArgumentNullException(nameof(userName));
            }
            if (culture == null)
            {
                throw new ArgumentNullException(nameof(culture));
            }

            Uri resource = BaseUrl.PathCombine("users/all/accounts/{0}?culture={1}".With(ApiCaller.PathSegmentEncode(userName), culture.Name));

            RestResponse restResponse = await Caller.RestAsync(new RestIdentity(), new RestRequest("POST", resource, Timeout)).Free();

            ApiCaller.EnsureStatusOk(restResponse);
        }
Пример #4
0
        /// <summary>
        /// Gets the public key of any user. If the user does not exist, he or she is invited by the current user.
        /// The invitation is customized with the selected language/culture and personalized message.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <param name="customParameters">The message custom parameters.</param>
        /// <returns></returns>
        public async Task <AccountKey> PostAllAccountsOtherUserInvitePublicKeyAsync(string userName, CustomMessageParameters customParameters)
        {
            if (userName == null)
            {
                throw new ArgumentNullException(nameof(userName));
            }

            Uri resource = BaseUrl.PathCombine("users/all/accounts/invite/{0}/key".With(ApiCaller.PathSegmentEncode(userName)));

            RestContent content = new RestContent(Serializer.Serialize(customParameters));

            RestResponse restResponse = await Caller.RestAsync(Identity, new RestRequest("POST", resource, Timeout, content)).Free();

            ApiCaller.EnsureStatusOk(restResponse);

            AccountKey accountKey = Serializer.Deserialize <AccountKey>(restResponse.Content);

            return(accountKey);
        }