/// <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)) }); }
/// <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)); }
/// <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)); }
/// <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); }
/// <summary> /// Delete the specified deletedSkill. /// </summary> /// <param name="deletedSkill">Deleted skill</param> public Task Delete(CodingSkillEntity deletedSkill) { return(Task.FromResult(_context.CodingSkills.Remove(deletedSkill))); }
/// <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); }
/// <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) { }