public async Task<HttpResponseMessage> Put(ClientModel model) { // Change e-mail await _userService.ChangeEmailAsync(UserId, model.Email); // Update user var userUpdate = new UserUpdateOptions { Country = model.Country, UserName = model.ContactPerson }; DomainUser user = await _userService.UpdateAsync(UserId, userUpdate); // Update company var companyUpdate = new CompanyUpdateOptions { Address = model.Address, Country = model.Country, Ein = model.Ein, Name = model.CompanyName, Phone = model.PhoneNumber, ZipCode = model.ZipCode, Email = model.Email }; DomainCompany company = await _companyService.UpdateByUserAsync(UserId, companyUpdate); Client client = _mapper.Map<Tuple<DomainUser, DomainCompany>, Client>(new Tuple<DomainUser, DomainCompany>(user, company)); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, client); return response; }
public async Task<DomainUser> UpdateAsync(string userId, UserUpdateOptions update) { var user = await _userRepository.GetAsync(userId); if (user == null) { throw new NotFoundException(string.Format("Could not find user '{0}'.", userId)); } // Patching user.Modified = DateTime.UtcNow; user.Name = update.UserName; user.NameSort = update.UserName == null ? null : update.UserName.ToLowerInvariant(); user.City = update.City; user.Country = update.Country; user.Timezone = update.Timezone; user.NotifyOnVideoComments = update.NotifyOnVideoComments; user = await _userRepository.UpdateAsync(user); // Calculate storage space var storageSpace = _fileRepository.Context.Where(p => p.UserId == userId).ToList(); var profile = _mapper.Map<UserEntity, DomainUser>(user); profile.UsedStorageSpace = storageSpace.Where(p => !p.IsArtifact).Sum(p => p.Length); return profile; }