/// <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); }
/// <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); }
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); }
/// <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); }