Пример #1
0
        public async Task <IActionResult> CreateContact([FromBody] ContactForCreationDto contactForCreationDto)
        {
            if (contactForCreationDto == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var contactEntity = Mapper.Map <Entities.Contact>(contactForCreationDto);

                _registrationRepository.AddContact(contactEntity);

                if (!_registrationRepository.Save())
                {
                    return(StatusCode(500, "A problem happened while handling your request."));
                }

                var createdContactToReturn = Mapper.Map <ContactDto>(contactEntity);

                var email = await _emailService.GenerateEmailMessageAsync(createdContactToReturn);

                await _emailService.SendMessage(email);

                return(CreatedAtRoute("GetContact", new
                                      { id = createdContactToReturn.Id }, createdContactToReturn));
            }
            catch (Exception)
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }
        }