public static ProjectData Create(ProjectId id)
 {
     return(new ProjectData(ProjectInformationData.Create(id),
                            ImmutableDictionary <TaskId, TaskData> .Empty,
                            ImmutableDictionary <ResourceId, ResourceData> .Empty,
                            ImmutableDictionary <AssignmentId, AssignmentData> .Empty));
 }
 private ProjectData(ProjectInformationData information,
                     ImmutableDictionary <TaskId, TaskData> taskMap,
                     ImmutableDictionary <ResourceId, ResourceData> resourceMap,
                     ImmutableDictionary <AssignmentId, AssignmentData> assignmentMap)
 {
     _information   = information;
     _taskMap       = taskMap;
     _resourceMap   = resourceMap;
     _assignmentMap = assignmentMap;
 }
        private ProjectData With(ProjectInformationData information,
                                 ImmutableDictionary <TaskId, TaskData> taskMap,
                                 ImmutableDictionary <ResourceId, ResourceData> resourceMap,
                                 ImmutableDictionary <AssignmentId, AssignmentData> assignmentMap)
        {
            if (information == _information &&
                taskMap == _taskMap &&
                resourceMap == _resourceMap &&
                assignmentMap == _assignmentMap)
            {
                return(this);
            }

            return(new ProjectData(information, taskMap, resourceMap, assignmentMap));
        }