public static bool SynchronizeTo(this IParentStudentSchoolAssociation source, IParentStudentSchoolAssociation target) { bool isModified = false; var sourceSupport = source as IParentStudentSchoolAssociationSynchronizationSourceSupport; // Back synch non-reference portion of PK (PK properties cannot be changed, therefore they can be omitted in the resource payload, but we need them for proper comparisons for persistence) if (source.SchoolName != target.SchoolName) { source.SchoolName = target.SchoolName; } if (source.StudentFirstName != target.StudentFirstName) { source.StudentFirstName = target.StudentFirstName; } if (source.StudentLastSurname != target.StudentLastSurname) { source.StudentLastSurname = target.StudentLastSurname; } // Copy non-PK properties // Sync lists return(isModified); }
public static void MapTo(this IParentStudentSchoolAssociation source, IParentStudentSchoolAssociation target, Action <IParentStudentSchoolAssociation, IParentStudentSchoolAssociation> onMapped) { var sourceSynchSupport = source as IParentStudentSchoolAssociationSynchronizationSourceSupport; var targetSynchSupport = target as IParentStudentSchoolAssociationSynchronizationSourceSupport; // Copy contextual primary key values target.SchoolName = source.SchoolName; target.StudentFirstName = source.StudentFirstName; target.StudentLastSurname = source.StudentLastSurname; // Copy non-PK properties // Copy Aggregate Reference Data if (GeneratedArtifactStaticDependencies.AuthorizationContextProvider == null || GeneratedArtifactStaticDependencies.AuthorizationContextProvider.GetAction() == RequestActions.ReadActionUri) { target.StudentSchoolAssociationResourceId = source.StudentSchoolAssociationResourceId; target.StudentSchoolAssociationDiscriminator = source.StudentSchoolAssociationDiscriminator; } // ---------------------------------- // Map One-to-one relationships // ---------------------------------- // Map lists var eTagProvider = new ETagProvider(); // Convert value to ETag, if appropriate var entityWithETag = target as IHasETag; if (entityWithETag != null) { entityWithETag.ETag = eTagProvider.GetETag(source); } // Convert value to LastModifiedDate, if appropriate var dateVersionedEntity = target as IDateVersionedEntity; var etagSource = source as IHasETag; if (dateVersionedEntity != null && etagSource != null) { dateVersionedEntity.LastModifiedDate = eTagProvider.GetDateTime(etagSource.ETag); } }