Exemple #1
0
 /// <summary>
 /// Trigegr coding skill events
 /// </summary>
 private async Task TriggerCodingSkillEvents(IResolverContext ctx, CodingSkillEntity skill)
 {
     await Task.WhenAll(new [] {
         ctx.TriggerEvent(new CodingSkillEvent(Events.ON_SKILL_BY_LEVEL, skill.Level, skill)),
         ctx.TriggerEvent(new CodingSkillEvent(Events.ON_SKILL_BY_NAME, skill.Name, skill)),
         ctx.TriggerEvent(new CodingSkillEvent(Events.ON_SKILL_BY_USER, skill.UserId, skill))
     });
 }
Exemple #2
0
        /// <summary>
        /// Get skill by Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <CodingSkillEntity> GetById(long id)
        {
            CodingSkillEntity skill = await _codingSkillRepository.GetById(id);

            if (skill == null)
            {
                throw new NotFoundException($"Skill with id {id} not found.");
            }

            return(skill);
        }
        public async Task GetSkillById()
        {
            using var ctx = await DBContextHelper.ResetWithData(testSkills);

            ICodingSkillRepository repo = new CodingSkillRepository(ctx);

            CodingSkillEntity skill = await repo.GetById(testSkills.First().Id);

            Assert.Equal(skill.Id, testSkills.First().Id);
            Assert.Equal(skill.Name, testSkills.First().Name);
            Assert.Equal(skill.Level, testSkills.First().Level);
        }
        public async Task AddBadCodingSkill(string name, CodingSkillLevel?level, long?userId)
        {
            var toAdd = new CodingSkillEntity()
            {
                Name  = name,
                Level = level ?? 0
            };

            var _repository        = new Mock <ICodingSkillRepository>();
            var codingSkillService = new CodingSkillService(_repository.Object);

            await Assert.ThrowsAsync <BadRequestException>(() => codingSkillService.Add(toAdd, userId));
        }
Exemple #5
0
        /// <summary>
        /// Add the specified coding skill.
        /// </summary>
        /// <returns>The added coding skill id</returns>
        /// <param name="newSkill">New skill</param>
        /// <param name="userId"></param>
        public async Task <CodingSkillEntity> Add(CodingSkillEntity newSkill, long?userId)
        {
            if (string.IsNullOrWhiteSpace(newSkill.Name) || newSkill.Level == 0 || userId == null)
            {
                throw new BadRequestException($"Missing name {newSkill.Name} or level {newSkill.Level} for new skill.");
            }

            var skill = new CodingSkillEntity()
            {
                Name   = newSkill.Name,
                Level  = newSkill.Level,
                UserId = userId.Value
            };

            return(await _codingSkillRepository.Add(skill));
        }
Exemple #6
0
        /// <summary>
        /// Update the specified coding skill.
        /// </summary>
        /// <returns></returns>
        /// <param name="id">Id</param>
        /// <param name="modifiedSkill">Updated skill</param>
        public async Task <CodingSkillEntity> Update(long id, CodingSkillEntity modifiedSkill)
        {
            if (string.IsNullOrWhiteSpace(modifiedSkill.Name) || modifiedSkill.Level == 0)
            {
                throw new BadRequestException($"Missing name {modifiedSkill.Name} or level {modifiedSkill.Level} for updated skill.");
            }

            CodingSkillEntity skill = await _codingSkillRepository.GetById(id);

            if (skill == null)
            {
                throw new NotFoundException($"Skill with id {id} not found.");
            }

            skill.Level = modifiedSkill.Level;
            skill.Name  = modifiedSkill.Name;
            await _codingSkillRepository.Update(skill);

            return(skill);
        }
Exemple #7
0
 /// <summary>
 /// Delete the specified deletedSkill.
 /// </summary>
 /// <param name="deletedSkill">Deleted skill</param>
 public Task Delete(CodingSkillEntity deletedSkill)
 {
     return(Task.FromResult(_context.CodingSkills.Remove(deletedSkill)));
 }
Exemple #8
0
        /// <summary>
        /// Add the specified newSkill.
        /// </summary>
        /// <returns></returns>
        /// <param name="newSkill">New skill</param>
        public async Task <CodingSkillEntity> Add(CodingSkillEntity newSkill)
        {
            await _context.CodingSkills.AddAsync(newSkill);

            return(newSkill);
        }
Exemple #9
0
 /// <summary>
 /// Update the specified coding skill.
 /// </summary>
 /// <param name="updatedSkill">Updated skill</param>
 public Task Update(CodingSkillEntity updatedSkill)
 {
     return(Task.FromResult(_context.CodingSkills.Update(updatedSkill)));
 }
 public CodingSkillEvent(string eventName, long userId, CodingSkillEntity skill)
     : base(CreateEventDescription(eventName, userId), skill)
 {
 }
 public CodingSkillEvent(string eventName, string name, CodingSkillEntity skill)
     : base(CreateEventDescription(eventName, name), skill)
 {
 }
 /*
  * Constructors
  */
 public CodingSkillEvent(string eventName, CodingSkillLevel level, CodingSkillEntity skill)
     : base(CreateEventDescription(eventName, level), skill)
 {
 }