public async Task <IActionResult> PostContactSkill([FromBody] ContactSkill contactSkill) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.ContactSkills.Add(contactSkill); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (ContactSkillExists(contactSkill.ContactId)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } return(CreatedAtAction("GetContactSkill", new { id = contactSkill.ContactId }, contactSkill)); }
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)); }
public async Task <IActionResult> PutContactSkill([FromRoute] int id, [FromBody] ContactSkill contactSkill) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != contactSkill.ContactId) { return(BadRequest()); } _context.Entry(contactSkill).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ContactSkillExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private async Task CheckIfContactSkillExistsAsync(int contactId, int skillId, CancellationToken cancellationToken) { ContactSkill contactSkill = await this.GetContactSkillModelBySkillAsync(contactId, skillId, false, cancellationToken); if (contactSkill != null) { throw new ArgumentException("Skill already exists for this contact."); } }
private async Task <ContactSkill> GetContactSkillModelBySkillAsync(int contactId, int skillId, bool throwExceptionIfNull, CancellationToken cancellationToken) { ContactSkill contactSkill = await this.contactRepository.GetContactSkillAsync(contactId, cs => cs.SkillId == skillId, cancellationToken); if (throwExceptionIfNull && contactSkill == null) { throw new ArgumentException($"There is no {nameof(ContactSkill)} with {nameof(ContactSkill.ContactId)} {contactId} and {nameof(ContactSkill.SkillId)} {skillId}."); } return(contactSkill); }
public IActionResult Post([FromBody] ContactSkill value) { if (value == null) { return(BadRequest()); } var createdContactSkill = _contactskillRepository.Add(value); return(CreatedAtAction("Get", new { id = createdContactSkill.IdContact, createdContactSkill })); }
private async Task BtnSaveSkillCommandAsync() { var pop = await _dialogService.OpenLoadingPopup(); ContactSkill skill = new ContactSkill { MeasurementName = _skill, ExperienceName = _experienceSelected.Name, ExperienceID = _experienceSelected.Id, }; Dictionary <string, object> obj = await _candidateDetailsService.AddSkill(skill); if (obj != null) { try { if (obj["Success"].ToString() == "true") //success { await _dialogService.PopupMessage("Add new Education Successefully", "#52CD9F", "#FFFFFF"); await PopupNavigation.Instance.PopAllAsync(); await _navigationService.NavigateToAsync <CandidateMainViewModel>(); } else if (obj["Success"].ToString() == "false") { if (obj["Message"].ToString() == "Fail") { await _dialogService.PopupMessage("An error has occurred, please try again!!", "#CF6069", "#FFFFFF"); } else if (obj["Message"].ToString() == "AttachFail") { await _dialogService.PopupMessage("Attach file Fail, please try again!!", "#CF6069", "#FFFFFF"); } } } catch { await _dialogService.PopupMessage("An error has occurred, please try again!!", "#CF6069", "#FFFFFF"); await _dialogService.CloseLoadingPopup(pop); } } await _dialogService.CloseLoadingPopup(pop); }
public async Task TestUpdateOkWhenSameUser() { var contactSkill = new ContactSkill() { Id = ContactSkillIdTest, ContactId = ContactIdTest, SkillId = SkillIdTest }; contactSkillService.Setup(entity => entity.UpdateAsync(ContactSkillIdTest, contactSkill)).Returns(Task.FromResult(contactSkill)); contactSkillService.Setup(entity => entity.ReadAsync(ContactSkillIdTest)).Returns(Task.FromResult(contactSkill)); httpContextAccessor.Setup(acc => acc.HttpContext.User.Identity.Name).Returns(UserIdStr); var contactSkillController = new ContactSkillController(contactSkillService.Object, contactSkillValidation, logger.Object, httpContextAccessor.Object); var result = await contactSkillController.UpdateAsync(contactSkill); Assert.IsTrue(result is OkObjectResult); Assert.IsTrue(((ContactSkill)((OkObjectResult)result).Value).Id == ContactSkillIdTest); }
public async Task TestDeleteNotOkIfOtherUser() { var contactSkill = new ContactSkill() { Id = ContactSkillIdTest, ContactId = ContactIdTest, SkillId = SkillIdTest }; contactSkillService.Setup(entity => entity.DeleteAsync(ContactSkillIdTest)); contactSkillService.Setup(entity => entity.ReadAsync(ContactSkillIdTest)).Returns(Task.FromResult(contactSkill)); httpContextAccessor.Setup(acc => acc.HttpContext.User.Identity.Name).Returns("999"); var contactSkillController = new ContactSkillController(contactSkillService.Object, contactSkillValidation, logger.Object, httpContextAccessor.Object); var result = await contactSkillController.DeleteAsync(ContactSkillIdTest); Assert.IsTrue(result is ObjectResult); Assert.IsTrue(((ObjectResult)result).StatusCode == Constants.InternalServerError); }
public async Task <List <ContactSkillDto> > DeleteContactSkillAsync(int contactId, int contactSkillId, CancellationToken cancellationToken) { this.securityService.Ensure(SecurityEntityTypes.ContactSkills, SecurityMethods.Delete); Contact contact = await this.GetContactModelAsync(contactId, cancellationToken); this.securityService.EnsureOwnership(contact); ContactSkill contactSkill = await this.GetContactSkillModelAsync(contactId, contactSkillId, true, cancellationToken); this.securityService.EnsureOwnership(contactSkill); contactSkill.Deleted = true; await this.contactRepository.UpdateContactSkillAsync(contactSkill, cancellationToken); await this.contactRepository.SaveChangesAsync(cancellationToken); return(await this.GetContactSkillsAsync(contactId, cancellationToken)); }
public async Task <ActionResult> AddSkillToContact(int skillId, int contactId, int skillLevelCode) { var contactSkill = await Context.GetContactSkillAsync(contactId, skillId); if (contactSkill != null) { return(BadRequest(Resources.ContactSkillExists)); } var skill = await Context.GetSkillAsync(skillId); if (skill == null) { return(NotFound(Resources.SkillNotFound)); } var skillLevel = await Context.GetSkillLevelAsync(skillLevelCode); if (skillLevel == null) { return(NotFound(Resources.SkillLevelNotFound)); } var contact = await Context.GetContactAsync(contactId); if (contact == null || contact.UserId != CurrentUserId) { return(NotFound(Resources.ContactNotFound)); } contactSkill = new ContactSkill { Contact = contact, Skill = skill, SkillLevel = skillLevel }; await Context.AddContactSkillsAsync(contactSkill); await Context.SaveChangesAsync(); return(Ok(Resources.ContactSkillCreated)); }
public async Task <List <ContactSkillDto> > UpdateContactSkillAsync(int contactId, int contactSkillId, ContactSkillDto skillToUpdate, CancellationToken cancellationToken) { this.securityService.Ensure(SecurityEntityTypes.ContactSkills, SecurityMethods.Update); if (skillToUpdate == null) { throw new ArgumentNullException(nameof(skillToUpdate)); } if (skillToUpdate.ContactId != contactId) { throw new ArgumentException("ContactId mismatch."); } if (skillToUpdate.Id != contactSkillId) { throw new ArgumentException("ContactSkillId mismatch."); } Contact contact = await this.GetContactModelAsync(contactId, cancellationToken); this.securityService.EnsureOwnership(contact); await this.CheckIfContactSkillExistsAsync(contactId, contactSkillId, cancellationToken); ContactSkill contactSkill = await this.GetContactSkillModelAsync(contactId, contactSkillId, true, cancellationToken); this.securityService.EnsureOwnership(contactSkill); contactSkill = this.mapper.Map(skillToUpdate, contactSkill); await this.contactRepository.UpdateContactSkillAsync(contactSkill, cancellationToken); await this.contactRepository.SaveChangesAsync(cancellationToken); return(await this.GetContactSkillsAsync(contactId, cancellationToken)); }
public async Task <EntityEntry <ContactSkill> > AddContactSkillsAsync(ContactSkill contactSkill) { return(await ContactSkills.AddAsync(contactSkill)); }
public static void Initialize(APIContext context) { context.Database.EnsureCreated(); // Look for any contacts. if (context.Contacts.Any()) { return; // DB has been seeded } var contacts = new Contact[] { new Contact { FirstName = "Anthony", LastName = "Da Silva Ferreira", Address = "1 rue du Président Pompidou", PostalCode = "59000", City = "City", Country = "France", Email = "mail", MobilePhoneNumber = "phone" }, new Contact { FirstName = "Samus", LastName = "Samus Aran", Address = "Space", PostalCode = "666", City = "Chozo Temple", Country = "zebes", Email = "*****@*****.**", MobilePhoneNumber = "+66 1 23 45 76 90" }, new Contact { FirstName = "Frodon", LastName = "Baggins", Address = "1er terrier sur la gauche", PostalCode = "123456", City = "The Shire", Country = "Middle Earth", Email = "*****@*****.**", MobilePhoneNumber = "+11 0 98 76 54 32" }, }; foreach (var c in contacts) { context.Contacts.Add(c); } context.SaveChanges(); // Look for any skills. if (context.Skills.Any()) { return; // DB has been seeded } var skills = new Skill[] { new Skill { Name = ".Net Framework", ExpertiseLevel = 75 }, new Skill { Name = "SQL", ExpertiseLevel = 80 }, new Skill { Name = "Bounty Hunter", ExpertiseLevel = 100 }, new Skill { Name = "Ring Bearer", ExpertiseLevel = 100 } }; foreach (var s in skills) { context.Skills.Add(s); } context.SaveChanges(); // Look for any contact's skills. if (context.ContactSkills.Any()) { return; // DB has been seeded } var contactSkills = new ContactSkill[] { new ContactSkill { ContactId = 1, SkillId = 1 }, new ContactSkill { ContactId = 1, SkillId = 2 }, new ContactSkill { ContactId = 2, SkillId = 3 }, new ContactSkill { ContactId = 2, SkillId = 4 }, }; foreach (var cs in contactSkills) { context.ContactSkills.Add(cs); } context.SaveChanges(); }
public async Task <dynamic> AddSkill(ContactSkill skill) { var result = await _requestService.postDataFromServiceAuthority("api/CandidateDetails/AddEditContactSkills", skill); return(result); }
public void SetContactSkill(ContactSkill skill) { m_ContactSkill = skill; }