コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: ContactService.cs プロジェクト: pandadoudou/Owt
        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));
        }