Beispiel #1
0
        private async Task <UpdateResult> UpdateUser(string id, UpdateMyAccountBindingModel model)
        {
            var user = await Context.GetUserCollection().Find(x => x.Id.Equals(id)).SingleAsync();

            var updateBuilder     = Builders <Domain.Entity.User> .Update;
            var updateBuilderList = new List <UpdateDefinition <Domain.Entity.User> >();

            if (!string.IsNullOrEmpty(model.FirstName))
            {
                updateBuilderList.Add(updateBuilder.Set(x => x.FirstName, model.FirstName));
            }

            if (!string.IsNullOrEmpty(model.LastName))
            {
                updateBuilderList.Add(updateBuilder.Set(x => x.LastName, model.LastName));
            }

            if (!string.IsNullOrEmpty(model.UserName))
            {
                updateBuilderList.Add(updateBuilder.Set(x => x.UserName, model.UserName));
            }

            if (!string.IsNullOrEmpty(model.Gender))
            {
                updateBuilderList.Add(updateBuilder.Set(x => x.Gender, GetGender(model.Gender)));
            }

            if (model.BirthDate != null)
            {
                updateBuilderList.Add(updateBuilder.Set(x => x.BirthDate, model.BirthDate));
            }

            if (!string.IsNullOrEmpty(model.Email) && !model.Email.Equals(user.Email))
            {
                updateBuilderList.Add(updateBuilder.Set(x => x.Email, model.Email));
                updateBuilderList.Add(updateBuilder.Set(x => x.EmailConfirmed, false));
            }

            var update = updateBuilder.Combine(updateBuilderList);

            return(await Context.GetUserCollection().UpdateOneAsync(x => x.Id.Equals(id), update));
        }
Beispiel #2
0
 public async Task<IHttpActionResult> UpdateMyAccount(UpdateMyAccountBindingModel model)
 {
     var userId = User.Identity.GetUserId();
     return Ok(await _userService.UpdateMyAccount(userId, model));
 }