Ejemplo n.º 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;
        }
Ejemplo n.º 2
0
        public async Task<DomainCompany> UpdateByUserAsync(string userId, CompanyUpdateOptions update)
        {
            CompanyEntity company = await _companyRepository.FindByUserAsync(userId);
            if (company == null)
            {
                throw new NotFoundException(string.Format("Could not find company by user id '{0}'.", userId));
            }

            if (company.State == (int)ResourceState.Blocked)
            {
                throw new ForbiddenException(string.Format("Company {0} is blocked", company.Id));
            }
            if (company.State == (int)ResourceState.Deleted)
            {
                throw new NotFoundException(string.Format("Company {0} is deleted", company.Id));
            }

            // Patching
            company.Name = update.Name;
            company.NameSort = update.Name == null ? null : update.Name.ToLowerInvariant();
            company.Country = update.Country;
            company.Ein = update.Ein;
            company.Address = update.Address;
            company.ZipCode = update.ZipCode;
            company.Phone = update.Phone;
            company.Email = update.Email;

            company = await _companyRepository.UpdateAsync(company);

            return _mapper.Map<CompanyEntity, DomainCompany>(company);
        }