public Action <Project> InitializeDomainObject() { return(p => { p.StatusMode = StatusMode.FromValue(StatusModeValue); p.Name = Name; p.Id = Id; p.CcXmlUrl = CcXmlUrl; var mappedCruiseProjects = (CruiseProjectAssociations ?? new JsonCruiseProjectAssociation[0]).Select(cp => cp.BuildDomainObject()).ToArray(); p.CruiseProjectAssociations = mappedCruiseProjects; foreach (var jsonGroup in Groups) { p.CreateGroup(jsonGroup.InitializeDomainObject()); } }); }