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