public async Task <IActionResult> UpdateSkill([FromRoute] Guid skillId, [FromBody] ContractorSkillInput input) { var result = await _skills.Update(_contractor, skillId, input); return(Ok(result)); }
public async Task <ContractorSkillOutput> Update(IContractor contractor, Guid skillId, ContractorSkillInput input) { var skill = await Repository.Queryable() .Where(x => x.ContractorId == contractor.Id && x.SkillId == skillId) .FirstAsync(); skill.SelfAssessment = input.Priority; skill.Updated = DateTimeOffset.UtcNow; skill.InjectFrom(input); var result = await Repository.UpdateAsync(skill, true); return(await Repository.Queryable() .Where(x => x.ContractorId == contractor.Id && x.SkillId == skillId) .ProjectTo <ContractorSkillOutput>(ProjectionMapping) .FirstAsync()); }
public async Task <ContractorSkillOutput> Add(IContractor contractor, Guid skillId, ContractorSkillInput input) { var x1 = await Repository.Queryable() .Where(x => x.ContractorId == contractor.Id && x.SkillId == skillId) .FirstOrDefaultAsync(); if (x1 == null) { var entity = new ContractorSkill() { Created = DateTimeOffset.UtcNow, ObjectState = ObjectState.Added, ContractorId = contractor.Id, SkillId = skillId }.InjectFrom(input) as ContractorSkill; var result = await Repository.InsertAsync(entity, true); } var output = await Repository.Queryable() .Where(x => x.ContractorId == contractor.Id && x.SkillId == skillId) .ProjectTo <ContractorSkillOutput>(this.ProjectionMapping) .FirstAsync(); return(output); }