Esempio n. 1
0
            private static void MergeDutySkills(PersonExperienceDuty duty, PersonExpDutySkillDto[] skills)
            {
                var toAdd = from r in skills ?? System.Array.Empty <PersonExpDutySkillDto>()
                            join e in duty.PersonExperienceDutySkill on r.SkillId equals e.SkillId into ge
                            from e in ge.DefaultIfEmpty()
                            where e == null || !r.IsRelevant
                            select(r, e);

                foreach (var(skill, existing) in toAdd)
                {
                    if (existing == null)
                    {
                        if (skill.IsRelevant)
                        {
                            duty.PersonExperienceDutySkill.Add(new PersonExperienceDutySkill()
                            {
                                SkillId = skill.SkillId
                            });
                        }
                    }
                    else
                    {
                        duty.PersonExperienceDutySkill.Remove(existing);
                    }
                }
            }
 private void AssertPersonExperienceDuty(PersonExperienceDuty exp,
                                         UpsertPersonExperienceDutyCommand sut)
 {
     Assert.NotNull(exp);
     Assert.Equal(1, sut.ExperienceId);
     Assert.Equal(sut.Name, exp.Name);
 }
        internal static async Task SeedExperience(this ILifetimeScope scope,
                                                  int experienceId = 1,
                                                  int personId     = Defaults.PersonId,
                                                  bool seedDuty    = true,
                                                  bool seedSkill   = true)
        {
            var db = scope.Resolve <AppDbContext>();

            var toAdd = new PersonExperience()
            {
                ExperienceId = experienceId,
                PersonId     = personId,
                CompanyName  = "CompanyName",
                FromDate     = Defaults.Today.AddDays(-10),
                ToDate       = Defaults.Today.AddDays(-1),
                Location     = "Location",
                ModifyDate   = Defaults.Today,
                Position     = "Position",
            };

            if (seedDuty)
            {
                var duty = new PersonExperienceDuty()
                {
                    DutyId = 1,
                    Name   = "DutyName"
                };
                if (seedSkill)
                {
                    duty.PersonExperienceDutySkill = new List <PersonExperienceDutySkill>()
                    {
                        new PersonExperienceDutySkill()
                        {
                            Id    = 1,
                            Skill = SkillHelper.CreateSkill()
                        }
                    };
                }
                toAdd.PersonExperienceDuty = new List <PersonExperienceDuty>()
                {
                    duty
                };
            }
            db.PersonExperience.Add(toAdd);
            await db.SaveChangesAsync();
        }