Exemplo n.º 1
0
        public EmployeeTalentMap(Concrete.DataRepository repo)
            : base(repo, x => x.EmployeeTalents)
        {
            Members.Add(x => x.Employee)
            .WithColumn(x => x.EmployeeId, col =>
            {
                col.OnWriteRecord(obj => { return(obj.Employee == null ? null : obj.Employee.Id); });
            })
            .OnComplete((rec, obj) =>
            {
                obj.Employee = Repository.FindNow <Employee>(x => x.Id == rec["EmployeeId"]);
            })
            .SetDependencyMode(MemberDependencyMode.Parent);

            Members.Add(x => x.Talent)
            .WithColumn(x => x.TalentId, col =>
            {
                col.OnWriteRecord(obj => { return(obj.Talent == null ? null : obj.Talent.Id); });
            })
            .OnComplete((rec, obj) =>
            {
                obj.Talent = Repository.FindNow <Talent>(x => x.Id == rec["TalentId"]);
            })
            .SetDependencyMode(MemberDependencyMode.Parent);

            VersionColumn.SetName(x => x.RowVersion);
        }
Exemplo n.º 2
0
        public RegionMap(Concrete.DataRepository repo)
            : base(repo, x => x.Regions)
        {
            Members.Add(x => x.Parent)
            .WithColumn(x => x.ParentId, col =>
            {
                col.OnWriteRecord(obj => { return(obj.Parent == null ? null : obj.Parent.Id); });
            })
            .OnComplete((rec, obj) =>
            {
                obj.Parent = Repository.FindNow <Region>(x => x.Id == rec["ParentId"]);
            })
            .SetDependencyMode(MemberDependencyMode.Parent);

            Members.Add(x => x.Childs)
            .OnComplete((rec, obj) =>
            {
                obj.Childs.Clear();
                obj.Childs.AddRange(Repository.Where <Region>(x => x.ParentId == obj.Id).ToList());
            })
            .SetDependencyMode(MemberDependencyMode.Child);

            Members.Add(x => x.Countries)
            .OnComplete((rec, obj) =>
            {
                obj.Countries.Clear();
                obj.Countries.AddRange(Repository.Where <Country>(x => x.RegionId == obj.Id).ToList());
            })
            .SetDependencyMode(MemberDependencyMode.Child);

            VersionColumn.SetName(x => x.RowVersion);
        }
Exemplo n.º 3
0
        public EmployeeMap(Concrete.DataRepository repo)
            : base(repo, x => x.Employees)
        {
            // This is a simple example of a multipart property (multipart ones cannot be lazy)
            Members.Add(x => x.Name)
            .WithColumn(x => x.FirstName, col =>
            {
                col.SetElementName(x => x.Name.First);
            })
            .WithColumn(x => x.LastName, col =>
            {
                col.SetElementName(x => x.Name.Last);
            });

            Members.Add(x => x.Manager)
            .WithColumn(x => x.ManagerId, col =>
            {
                col.OnWriteRecord(obj => { return(obj.Manager == null ? null : obj.Manager.Id); });
            })
            .OnComplete((rec, obj) =>
            {
                obj.Manager = Repository.FindNow <Employee>(x => x.Id == rec["ManagerId"]);
            })
            .SetDependencyMode(MemberDependencyMode.Parent);

            Members.Add(x => x.Country)
            .WithColumn(x => x.CountryId, col =>
            {
                col.OnWriteRecord(obj => { return(obj.Country == null ? null : obj.Country.Id); });
            })
            .OnComplete((rec, obj) =>
            {
                obj.Country = Repository.FindNow <Country>(x => x.Id == rec["CountryId"]);
            })
            .SetDependencyMode(MemberDependencyMode.Parent);

            Members.Add(x => x.Employees)
            .OnComplete((rec, obj) =>
            {
                obj.Employees.Clear();
                obj.Employees.AddRange(Repository.Where <Employee>(x => x.ManagerId == obj.Id).ToList());
            })
            .SetDependencyMode(MemberDependencyMode.Child);

            Members.Add(x => x.EmployeeTalents)
            .OnComplete((rec, obj) =>
            {
                obj.EmployeeTalents.Clear();
                obj.EmployeeTalents.AddRange(Repository.Where <EmployeeTalent>(x => x.EmployeeId == obj.Id).ToList());
            })
            .SetDependencyMode(MemberDependencyMode.Child);

            VersionColumn.SetName(x => x.RowVersion);
        }
Exemplo n.º 4
0
        public TalentMap(Concrete.DataRepository repo)
            : base(repo, x => x.Talents)
        {
            Members.Add(x => x.Employees)
            .OnComplete((rec, obj) =>
            {
                obj.Employees.Clear();

                obj.Employees.AddRange(
                    Repository
                    .Where <Employee>(x => x.Emp.Id == x.Temp.EmployeeId)
                    .MasterAlias(x => x.Emp)
                    .From(x =>
                          x(Repository.Where <EmployeeTalent>(y => y.TalentId == obj.Id))
                          .As(x.Temp))
                    .ToList());
            })
            .SetDependencyMode(MemberDependencyMode.Parent);

            VersionColumn.SetName(x => x.RowVersion);
        }