예제 #1
0
        public async Task <IActionResult> AddPerson([FromRoute] Guid organizationId, [FromBody] AddExistingPersonInput input)
        {
            var person =
                await _organizationPersonService.AddExistingPerson(_agencyOwner,
                                                                   input);

            return(Ok(person));
        }
        public async Task <OrganizationPersonResult> AddExistingPerson(IAgencyOwner agencyOwner, AddExistingPersonInput input)
        {
            _logger.LogInformation(GetLogMessage("Organization: {0}; Email: {1}"), agencyOwner.OrganizationId, input.EmailAddress);

            var retVal = new OrganizationPersonResult()
            {
                OrganizationId = agencyOwner.OrganizationId
            };
            var foundPerson = await _accountManager.FindByEmailAsync(input.EmailAddress);

            if (foundPerson != null)
            {
                _logger.LogDebug(GetLogMessage("Person Found: {0}"), foundPerson.Id);

                var orgPersonInput = new OrganizationPersonInput()
                {
                    PersonId = foundPerson.Id
                }.InjectFrom(input) as OrganizationPersonInput;

                retVal = await Create(orgPersonInput, agencyOwner.OrganizationId);

                _logger.LogDebug(GetLogMessage("Person Result: {@result}"), retVal);
            }
            else
            {
                _logger.LogWarning(GetLogMessage("User does not exist"));
            }

            return(retVal);
        }