partial void CopyExtraPropertiesToClone(Script clone, bool includeLocalProperties);
public Script Clone(bool includeLocalProperties) { var c = new Script { AssignedTo = AssignedTo, AssignedToId = AssignedToId, ChangeComment = ChangeComment, CreatedAt = CreatedAt, CreatedBy = CreatedBy, CreatedById = CreatedById, Description = Description, EstimatedDuration = EstimatedDuration, FieldValues = FieldValues, HasAttachments = HasAttachments, Id = Id, LastUpdatedAt = LastUpdatedAt, LastUpdatedBy = LastUpdatedBy, LastUpdatedById = LastUpdatedById, Name = Name, Notes = Notes, Number = Number, Objective = Objective, OrderNumber = OrderNumber, Package = Package, PackageId = PackageId, PackageName = PackageName, PostCondition = PostCondition, PreCondition = PreCondition, Priority = Priority, PriorityId = PriorityId, ProjectId = ProjectId, ProjectName = ProjectName, Status = Status, StatusId = StatusId, Type = Type, TypeId = TypeId, VersionNumber = VersionNumber, Assignments = Assignments.Select(x=>x.Clone(includeLocalProperties)).ToList(), Attachments = Attachments.Select(x=>x.Clone(includeLocalProperties)).ToList(), Steps = Steps.Select(x=>x.Clone(includeLocalProperties)).ToList(), Widgets = Widgets.Select(x=>x.Clone(includeLocalProperties)).ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }