Example #1
0
        public async Task <IHttpActionResult> PutUserInfo([FromBody] PutUserInfoRequest request)
        {
            string className  = "UsersController";
            string methodName = "PutUserInfo";

            this.LogControllerStart(this.log, className, methodName);

            // If user handle is null, return 404
            if (this.UserHandle == null)
            {
                return(this.NotFound(ResponseStrings.UserNotFound));
            }

            var userProfileEntity = await this.usersManager.ReadUserProfile(this.UserHandle, this.AppHandle);

            if (userProfileEntity == null)
            {
                return(this.NotFound(ResponseStrings.UserNotFound));
            }

            await this.usersManager.UpdateUserInfo(
                ProcessType.Frontend,
                this.UserHandle,
                this.AppHandle,
                request.FirstName,
                request.LastName,
                request.Bio,
                DateTime.UtcNow,
                userProfileEntity);

            this.LogControllerEnd(this.log, className, methodName);
            return(this.NoContent());
        }
Example #2
0
        public async Task PutUserTest()
        {
            // Set up initial stuff
            SocialPlusClient client           = new SocialPlusClient(TestConstants.ServerApiBaseUrl);
            PostUserResponse postUserResponse = await TestUtilities.DoLogin(client, "ü", "§", "╚");

            string auth = AuthHelper.CreateSocialPlusAuth(postUserResponse.SessionToken);

            PutUserInfoRequest putUserInfoRequest = new PutUserInfoRequest(firstName: "Wilman", lastName: "Flinstone", bio: "Changed it up!");
            await client.Users.PutUserInfoAsync(putUserInfoRequest, auth);

            // Call Get User
            UserProfileView getUserProfile = await client.Users.GetUserAsync(postUserResponse.UserHandle, auth);

            // Clean up first before verifying
            await client.Users.DeleteUserAsync(auth);

            // Verify changes ... also verify rest to make sure nothing else wiped out
            Assert.AreEqual("Changed it up!", getUserProfile.Bio);
            Assert.AreEqual("Wilman", getUserProfile.FirstName);
            Assert.AreEqual("Flinstone", getUserProfile.LastName);
            Assert.AreEqual(FollowerStatus.None, getUserProfile.FollowerStatus);
            Assert.AreEqual(FollowingStatus.None, getUserProfile.FollowingStatus);
            Assert.AreEqual(null, getUserProfile.PhotoHandle);
            Assert.AreEqual(null, getUserProfile.PhotoUrl);
            Assert.AreEqual(ProfileStatus.Active, getUserProfile.ProfileStatus);
            Assert.AreEqual(0, getUserProfile.TotalFollowers);
            Assert.AreEqual(0, getUserProfile.TotalFollowing);
            Assert.AreEqual(0, getUserProfile.TotalTopics);
            Assert.AreEqual(postUserResponse.UserHandle, getUserProfile.UserHandle);
            Assert.AreEqual(Visibility.Public, getUserProfile.Visibility);
        }
Example #3
0
 /// <summary>
 /// Update user info
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='request'>
 /// Put user info request
 /// </param>
 /// <param name='authorization'>
 /// Format is: "Scheme CredentialsList". Possible values are:
 ///
 /// - Anon AK=AppKey
 ///
 /// - SocialPlus TK=SessionToken
 ///
 /// - Facebook AK=AppKey|TK=AccessToken
 ///
 /// - Google AK=AppKey|TK=AccessToken
 ///
 /// - Twitter AK=AppKey|RT=RequestToken|TK=AccessToken
 ///
 /// - Microsoft AK=AppKey|TK=AccessToken
 ///
 /// - AADS2S AK=AppKey|[UH=UserHandle]|TK=AADToken
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> PutUserInfoAsync(this IUsers operations, PutUserInfoRequest request, string authorization, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.PutUserInfoWithHttpMessagesAsync(request, authorization, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Example #4
0
        /// <summary>
        /// Update user profle
        /// </summary>
        /// <returns>result of put user operation</returns>
        public async Task <IHttpActionResult> PutUser()
        {
            var putUserInfoRequest = new PutUserInfoRequest
            {
                FirstName = "Barack" + this.seqNumber.GenerateStronglyOrderedSequenceNumber(),
                LastName  = "Obama" + this.seqNumber.GenerateStronglyOrderedSequenceNumber(),
                Bio       = "President" + this.seqNumber.GenerateStronglyOrderedSequenceNumber(),
            };

            return(await this.PutUserInfo(putUserInfoRequest));
        }
        public override async Task <WopiResponse> PutUserInfo(PutUserInfoRequest putUserInfoRequest)
        {
            var userId = WopiSecurity.GetIdentityNameFromToken(putUserInfoRequest.AccessToken);
            var wopiFileRespository = new WopiFileRepository();
            var response            = await wopiFileRespository.SaveWopiUserInfo(putUserInfoRequest.ResourceId, userId, putUserInfoRequest.UserInfo);

            if (response == HttpStatusCode.NotFound)
            {
                return(putUserInfoRequest.ResponseNotFound());
            }
            else if (response == HttpStatusCode.OK)
            {
                return(putUserInfoRequest.ResponseOK());
            }
            else
            {
                return(putUserInfoRequest.ResponseServerError(string.Format("Unknown HTTPStatusCode from WopiFileRepository.SaveWopiUserInfo: {0}", response)));
            }
        }
        public override async Task <WopiResponse> PutUserInfo(PutUserInfoRequest putUserInfoRequest)
        {
            WopiResponse wopiResponse = null;
            var          file         = DocumentDBRepository <DetailedFileModel> .GetItem("Files", i => i.id.ToString() == putUserInfoRequest.ResourceId);

            // Check for null file
            if (file != null)
            {
                file.UserInfo = putUserInfoRequest.UserInfo;

                // Update the file in DocumentDB
                await DocumentDBRepository <FileModel> .UpdateItemAsync("Files", file.id.ToString(), (FileModel)file);

                // Return success
                return(putUserInfoRequest.ResponseOK());
            }
            else
            {
                wopiResponse = putUserInfoRequest.ResponseNotFound();
            }
            return(wopiResponse);
        }
 public abstract Task <WopiResponse> PutUserInfo(PutUserInfoRequest putUserInfoRequest);
Example #8
0
 /// <summary>
 /// Update user info
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='request'>
 /// Put user info request
 /// </param>
 /// <param name='authorization'>
 /// Format is: "Scheme CredentialsList". Possible values are:
 ///
 /// - Anon AK=AppKey
 ///
 /// - SocialPlus TK=SessionToken
 ///
 /// - Facebook AK=AppKey|TK=AccessToken
 ///
 /// - Google AK=AppKey|TK=AccessToken
 ///
 /// - Twitter AK=AppKey|RT=RequestToken|TK=AccessToken
 ///
 /// - Microsoft AK=AppKey|TK=AccessToken
 ///
 /// - AADS2S AK=AppKey|[UH=UserHandle]|TK=AADToken
 /// </param>
 public static object PutUserInfo(this IUsers operations, PutUserInfoRequest request, string authorization)
 {
     return(Task.Factory.StartNew(s => ((IUsers)s).PutUserInfoAsync(request, authorization), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }