public async Task <IHttpActionResult> CreateContactSkillAsync(int id, NewContactSkillDto newContactSkill, CancellationToken cancellationToken = default(CancellationToken)) { List <ContactSkillDto> contactSkills = await this.contactService.CreateContactSkillAsync(id, newContactSkill, cancellationToken); return(this.Ok(contactSkills)); }
public async Task <List <ContactSkillDto> > CreateContactSkillAsync(int contactId, NewContactSkillDto newContactSkill, CancellationToken cancellationToken) { this.securityService.Ensure(SecurityEntityTypes.ContactSkills, SecurityMethods.Create); if (newContactSkill == null) { throw new ArgumentNullException(nameof(newContactSkill)); } if (newContactSkill.ContactId != contactId) { throw new ArgumentException("ContactId mismatch."); } Contact contact = await this.GetContactModelAsync(contactId, cancellationToken); this.securityService.EnsureOwnership(contact); await this.CheckIfContactSkillExistsAsync(contactId, newContactSkill.Skill.Id, cancellationToken); ContactSkill newContactSkillModel = this.mapper.Map <ContactSkill>(newContactSkill); newContactSkillModel.CreatedBy = this.securityService.GetCurrentIdentityName(); await this.contactRepository.CreateContactSkillAsync(newContactSkillModel, cancellationToken); await this.contactRepository.SaveChangesAsync(cancellationToken); return(await this.GetContactSkillsAsync(contactId, cancellationToken)); }