コード例 #1
0
        public async Task <IActionResult> UpdateSkill([FromRoute] Guid skillId,
                                                      [FromBody] ContractorSkillInput input)
        {
            var result = await _skills.Update(_contractor, skillId, input);

            return(Ok(result));
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
        }