Example #1
0
        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;
        }
Example #2
0
        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;
        }