コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: ContactService.cs プロジェクト: pandadoudou/Owt
        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));
        }
コード例 #3
0
        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());
        }
コード例 #4
0
ファイル: ContactService.cs プロジェクト: pandadoudou/Owt
        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.");
            }
        }
コード例 #5
0
ファイル: ContactService.cs プロジェクト: pandadoudou/Owt
        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);
        }
コード例 #6
0
        public IActionResult Post([FromBody] ContactSkill value)
        {
            if (value == null)
            {
                return(BadRequest());
            }

            var createdContactSkill = _contactskillRepository.Add(value);

            return(CreatedAtAction("Get", new { id = createdContactSkill.IdContact, createdContactSkill }));
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
ファイル: ContactService.cs プロジェクト: pandadoudou/Owt
        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));
        }
コード例 #11
0
        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));
        }
コード例 #12
0
ファイル: ContactService.cs プロジェクト: pandadoudou/Owt
        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));
        }
コード例 #13
0
 public async Task <EntityEntry <ContactSkill> > AddContactSkillsAsync(ContactSkill contactSkill)
 {
     return(await ContactSkills.AddAsync(contactSkill));
 }
コード例 #14
0
        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();
        }
コード例 #15
0
        public async Task <dynamic> AddSkill(ContactSkill skill)
        {
            var result = await _requestService.postDataFromServiceAuthority("api/CandidateDetails/AddEditContactSkills", skill);

            return(result);
        }
コード例 #16
0
 public void SetContactSkill(ContactSkill skill)
 {
     m_ContactSkill = skill;
 }