public static ViewModelContainer Create(IModelChildContainer container, IModelSubject subject, ViewModelInstance parentInstance, ref int nextInstanceID) { ViewModelContainer viewContainer = new ViewModelContainer() { ContainerID = container.ContainerID, ParentContainerID = container.ParentContainerID, DisplayText = container.DisplayText, IsRepeating = container.IsRepeating }; foreach (IModelInstance instance in container.Instances.Where(it => it.ParentInstanceID == parentInstance.InstanceID)) { ViewModelInstance viewInstance = ViewModelInstance.Create(container, subject, instance, parentInstance, ref nextInstanceID); viewContainer.Instances.Add(viewInstance); } if (container.IsRepeating || !viewContainer.Instances.Any()) { ViewModelInstance viewInstance = ViewModelInstance.Create(container, subject, null, parentInstance, ref nextInstanceID); viewContainer.Instances.Add(viewInstance); } return(viewContainer); }
public static ViewModelRootContainer Create(IModelRootContainer container, IModelSubject subject) { ViewModelRootContainer viewContainer = new ViewModelRootContainer() { ContainerID = container.ContainerID, DisplayText = container.DisplayText, IsRepeating = container.IsRepeating }; int nextInstanceID = -1; foreach (IModelInstance instance in container.Instances) { ViewModelInstance viewInstance = ViewModelInstance.Create(container, subject, instance, null, ref nextInstanceID); viewContainer.Instances.Add(viewInstance); } if (container.IsRepeating || !viewContainer.Instances.Any()) { ViewModelInstance viewInstance = ViewModelInstance.Create(container, subject, null, null, ref nextInstanceID); viewContainer.Instances.Add(viewInstance); } return(viewContainer); }