public ServiceTemplate MakeChild(ServiceTemplateLevel level) { #if !SILVERLIGHT var serviceTemplateChild = new ServiceTemplate { Id = Guid.NewGuid(), Name = this.Name, ParentServiceTemplate = this, ServiceTemplateLevel = level, CreatedDate = DateTime.UtcNow }; if (serviceTemplateChild.ServiceTemplateLevel == ServiceTemplateLevel.ServiceProviderDefined) serviceTemplateChild.OwnerServiceProvider = this.OwnerServiceProvider; if (serviceTemplateChild.ServiceTemplateLevel == ServiceTemplateLevel.ClientDefined) serviceTemplateChild.OwnerClient = this.OwnerClient; if (serviceTemplateChild.ServiceTemplateLevel == ServiceTemplateLevel.RecurringServiceDefined) serviceTemplateChild.OwnerRecurringService = this.OwnerRecurringService; if (serviceTemplateChild.ServiceTemplateLevel == ServiceTemplateLevel.ServiceDefined) serviceTemplateChild.OwnerService = this.OwnerService; foreach (var field in this.Fields.ToArray()) serviceTemplateChild.Fields.Add(field.MakeChild()); //TODO: Uncomment. //if (this.Invoice != null) //{ // serviceTemplateChild.Invoice = this.Invoice.MakeChild(); // serviceTemplateChild.Invoice.Id = serviceTemplateChild.Id; //} return serviceTemplateChild; #else var serviceTemplateChild = MakeChildSilverlight(level); //TODO: Uncomment. //if (this.Invoice != null) //{ // serviceTemplateChild.Invoice = this.Invoice.MakeChild(); // serviceTemplateChild.Invoice.Id = serviceTemplateChild.Id; //} return serviceTemplateChild; #endif }
/// <summary> /// Makes a child of this ServiceTemplate. /// </summary> /// <param name="serviceTemplateLevel">The service template level of the child.</param> /// <returns></returns> private ServiceTemplate MakeChildSilverlight(ServiceTemplateLevel serviceTemplateLevel) { var serviceTemplateChild = MakeFamilyMember(); //Setup the ServiceTemplateLevel serviceTemplateChild.ServiceTemplateLevel = serviceTemplateLevel; //Set the ParentServiceTemplate to this serviceTemplateChild.ParentServiceTemplate = this; //Make children of each of this fields foreach (var fieldToCopy in this.Fields.ToArray()) { var childField = fieldToCopy.MakeChild(); //set the field's service template childField.OwnerServiceTemplate = serviceTemplateChild; } return serviceTemplateChild; }