public static bool SynchronizeTo(this ISchoolYearType source, ISchoolYearType target) { bool isModified = false; var sourceSupport = source as ISchoolYearTypeSynchronizationSourceSupport; // 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.SchoolYear != target.SchoolYear) { source.SchoolYear = target.SchoolYear; } // Copy non-PK properties // Sync lists return(isModified); }
public static void MapTo(this ISchoolYearType source, ISchoolYearType target, Action <ISchoolYearType, ISchoolYearType> onMapped) { var sourceSynchSupport = source as ISchoolYearTypeSynchronizationSourceSupport; var targetSynchSupport = target as ISchoolYearTypeSynchronizationSourceSupport; // Copy resource Id target.Id = source.Id; // Copy contextual primary key values target.SchoolYear = source.SchoolYear; // Copy non-PK properties // Copy Aggregate Reference Data // ---------------------------------- // 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); } }