Beispiel #1
0
        public async Task <ActionResult> UpdateUser(UserUpdateRecData userUpdateRecData)
        {
            ContactDetail contactDetail = userUpdateRecData.ContactDetail;
            var           user          = await _userRepository.GetUserByUsername(userUpdateRecData.UserName);

            UserUpdateDto userDto = new UserUpdateDto
            {
                FirstName       = userUpdateRecData.FirstName,
                LastName        = userUpdateRecData.LastName,
                DateOfBirth     = userUpdateRecData.DateOfBirth,
                ContactDetailId = userUpdateRecData.ContactDetail.Id,
                LastActive      = DateTime.Now
            };

            if (contactDetail.Id == 0)
            {
                ContactDetail cd = new ContactDetail {
                    Street       = contactDetail.Street,
                    City         = contactDetail.City,
                    PostalCode   = contactDetail.PostalCode,
                    Province     = contactDetail.Province,
                    Country      = contactDetail.Country,
                    EmailAddress = contactDetail.EmailAddress,
                    PhoneNumber  = contactDetail.PhoneNumber
                };

                await _cdRepository.Save(cd);

                userDto.ContactDetailId = cd.Id;
            }
            else
            {
                var cdId = userUpdateRecData.ContactDetailId;
                var upCd = await _cdRepository.GetByContactDetailId(cdId);

                upCd.Street       = contactDetail.Street;
                upCd.City         = contactDetail.City;
                upCd.PostalCode   = contactDetail.PostalCode;
                upCd.Province     = contactDetail.Province;
                upCd.Country      = contactDetail.Country;
                upCd.EmailAddress = contactDetail.EmailAddress;
                upCd.PhoneNumber  = contactDetail.PhoneNumber;

                _cdRepository.Update(upCd);
                await _cdRepository.SaveAllAsync();
            }

            _mapper.Map(userDto, user);

            _userRepository.Update(user);
            if (await _userRepository.SaveAllAsync())
            {
                return(NoContent());
            }

            return(BadRequest("Failed to Update User"));
        }