示例#1
0
        /// <summary>
        /// Updates a contact.
        /// </summary>
        /// <param name="contactId">Contact identifier.</param>
        /// <param name="contactResource">New contact information</param>
        /// <returns>Contact information.</returns>
        public async Task <DataResponse <ContactResource> > UpdateAsync(int contactId,
                                                                        SaveContactResource contactResource)
        {
            try
            {
                if (contactResource == null)
                {
                    throw new ArgumentNullException(nameof(contactResource));
                }

                var contact = await _contactRepository.FindByIdAsync(contactId);

                if (contact == null)
                {
                    throw new NotFoundException(nameof(Contact), contactId);
                }

                ContactMapper.Map(contact, contactResource);
                _contactRepository.Update(contact);
                await _unitOfWork.SaveChangesAsync();

                var resource = _mapper.Map <Contact, ContactResource>(contact);
                return(new DataResponse <ContactResource>(resource));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(new DataResponse <ContactResource>(ex.Message));
            }
        }
示例#2
0
        public async Task <IActionResult> PostAsync(
            [FromBody] SaveContactResource saveContactResource)
        {
            var response = await _contactService.AddAsync(saveContactResource);

            if (!response.Success)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
示例#3
0
        public async Task <IActionResult> PutAsync(int id,
                                                   [FromBody] SaveContactResource saveContactResource)
        {
            var response = await _contactService.UpdateAsync(id, saveContactResource);

            if (!response.Success)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
示例#4
0
        public async Task CreateContact([FromBody] SaveContactResource contact)
        {
            var validator = new SaveContactResourceValidator();
            var result    = await validator.ValidateAsync(contact);

            if (!result.IsValid)
            {
                throw new Exception(result.Errors.ToString());
            }
            var contactToCreate = this._mapper.Map <SaveContactResource, GebruikerContact>(contact);
            await _contactService.CreateContact(contactToCreate);
        }
示例#5
0
        public static void Map(Contact contact, SaveContactResource contactResource)
        {
            if (contact == null || contactResource == null)
            {
                throw new ArgumentNullException("Wrong contact or contact resource provided.");
            }

            var type = Enum.GetValues(typeof(ContactType))
                       .Cast <ContactType>()
                       .Where(t => t.ToString() == contactResource.Type)
                       .FirstOrDefault();

            contact.Name      = contactResource.Name;
            contact.Type      = type;
            contact.BirthDate = contactResource.BirthDate;
            contact.Phone     = contactResource.Phone;
        }
示例#6
0
        /// <summary>
        /// Adds a contact.
        /// </summary>
        /// <param name="contactResource">New contact information</param>
        /// <returns>Contact information.</returns>
        public async Task <DataResponse <ContactResource> > AddAsync(SaveContactResource contactResource)
        {
            try
            {
                if (contactResource == null)
                {
                    throw new ArgumentNullException(nameof(contactResource));
                }

                var contact = _mapper.Map <SaveContactResource, Contact>(contactResource);
                await _contactRepository.AddAsync(contact);

                await _unitOfWork.SaveChangesAsync();

                var resource = _mapper.Map <Contact, ContactResource>(contact);
                return(new DataResponse <ContactResource>(resource));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(new DataResponse <ContactResource>(ex.Message));
            }
        }