public static void MapTo(this IStudentSchoolAssociation source, IStudentSchoolAssociation target, Action <IStudentSchoolAssociation, IStudentSchoolAssociation> onMapped)
        {
            var sourceSynchSupport = source as IStudentSchoolAssociationSynchronizationSourceSupport;
            var targetSynchSupport = target as IStudentSchoolAssociationSynchronizationSourceSupport;

            // Copy resource Id
            target.Id = source.Id;

            // 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.SchoolResourceId     = source.SchoolResourceId;
                target.SchoolDiscriminator  = source.SchoolDiscriminator;
                target.StudentResourceId    = source.StudentResourceId;
                target.StudentDiscriminator = source.StudentDiscriminator;
            }



            // ----------------------------------
            //   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);
            }
        }
        public static void MapTo(this ISchoolAddress source, ISchoolAddress target, Action <ISchoolAddress, ISchoolAddress> onMapped)
        {
            var sourceSynchSupport = source as ISchoolAddressSynchronizationSourceSupport;
            var targetSynchSupport = target as ISchoolAddressSynchronizationSourceSupport;

            // Copy contextual primary key values

            // Copy non-PK properties

            if (sourceSynchSupport.IsCitySupported)
            {
                target.City = source.City;
            }
            else
            {
                targetSynchSupport.IsCitySupported = false;
            }

            // 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);
            }
        }
        public static void MapTo(this IStudentAcademicRecordClassRankingExtension source, IStudentAcademicRecordClassRankingExtension target, Action <IStudentAcademicRecordClassRankingExtension, IStudentAcademicRecordClassRankingExtension> onMapped)
        {
            var sourceSynchSupport = source as IStudentAcademicRecordClassRankingExtensionSynchronizationSourceSupport;
            var targetSynchSupport = target as IStudentAcademicRecordClassRankingExtensionSynchronizationSourceSupport;

            // Copy contextual primary key values

            // Copy non-PK properties

            if (sourceSynchSupport.IsSpecialEducationGraduationStatusDescriptorSupported)
            {
                target.SpecialEducationGraduationStatusDescriptor = source.SpecialEducationGraduationStatusDescriptor;
            }
            else
            {
                targetSynchSupport.IsSpecialEducationGraduationStatusDescriptorSupported = false;
            }

            // 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);
            }
        }
        public static void MapTo(this IName source, IName target, Action <IName, IName> onMapped)
        {
            var sourceSynchSupport = source as INameSynchronizationSourceSupport;
            var targetSynchSupport = target as INameSynchronizationSourceSupport;

            // Copy resource Id
            target.Id = source.Id;

            // Copy contextual primary key values
            target.FirstName   = source.FirstName;
            target.LastSurname = source.LastSurname;

            // 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);
            }
        }
Exemplo n.º 5
0
        public async Task <ActionResult <UserResource> > GetUserById([FromRoute] long userId)
        {
            var user = await _userService.GetUser(userId);

            if (user == null)
            {
                return(NotFound());
            }

            var responseETag = _etag.GetETag(user);

            if (Request.HasETagHeader() && responseETag == Request.GetETagHeader())
            {
                Response.Headers[HeaderNames.ContentLength] = "0";
                Response.ContentType = null;
                return(StatusCode((int)HttpStatusCode.NotModified));
            }
            Response.AddETagHeader(responseETag);

            // To return only a user excluding links, use the following return
            //return Ok(user);

            return(Ok(_resourceFactory.CreateUserResource(user)));
        }
        public static void MapTo(this ISchool source, ISchool target, Action <ISchool, ISchool> onMapped)
        {
            var sourceSynchSupport = source as ISchoolSynchronizationSourceSupport;
            var targetSynchSupport = target as ISchoolSynchronizationSourceSupport;

            // Copy resource Id
            target.Id = source.Id;

            // Copy contextual primary key values
            target.SchoolName = source.SchoolName;

            // Copy non-PK properties

            if (sourceSynchSupport.IsSchoolYearSupported)
            {
                target.SchoolYear = source.SchoolYear;
            }
            else
            {
                targetSynchSupport.IsSchoolYearSupported = false;
            }

            // Copy Aggregate Reference Data
            if (GeneratedArtifactStaticDependencies.AuthorizationContextProvider == null ||
                GeneratedArtifactStaticDependencies.AuthorizationContextProvider.GetAction() == RequestActions.ReadActionUri)
            {
                target.SchoolYearTypeResourceId    = source.SchoolYearTypeResourceId;
                target.SchoolYearTypeDiscriminator = source.SchoolYearTypeDiscriminator;
            }



            // ----------------------------------
            //   Map One-to-one relationships
            // ----------------------------------
            // SchoolAddress (Source)
            if (sourceSynchSupport.IsSchoolAddressSupported)
            {
                var itemProperty = target.GetType().GetProperty("SchoolAddress");

                if (itemProperty != null)
                {
                    if (source.SchoolAddress == null)
                    {
                        target.SchoolAddress = null;
                    }
                    else
                    {
                        var    itemType            = itemProperty.PropertyType;
                        object targetSchoolAddress = Activator.CreateInstance(itemType);
                        (targetSchoolAddress as IChildEntity)?.SetParent(target);
                        source.SchoolAddress.Map(targetSchoolAddress);

                        // Update the target reference appropriately
                        target.SchoolAddress = (ISchoolAddress)targetSchoolAddress;
                    }
                }
            }
            else
            {
                targetSynchSupport.IsSchoolAddressSupported = false;
            }
            // -------------------------------------------------------------

            // 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);
            }
        }
        public static void MapTo(this IStudentAcademicRecordExtension source, IStudentAcademicRecordExtension target, Action <IStudentAcademicRecordExtension, IStudentAcademicRecordExtension> onMapped)
        {
            var sourceSynchSupport = source as IStudentAcademicRecordExtensionSynchronizationSourceSupport;
            var targetSynchSupport = target as IStudentAcademicRecordExtensionSynchronizationSourceSupport;

            // Copy contextual primary key values

            // Copy non-PK properties

            if (sourceSynchSupport.IsNameOfInstitutionSupported)
            {
                target.NameOfInstitution = source.NameOfInstitution;
            }
            else
            {
                targetSynchSupport.IsNameOfInstitutionSupported = false;
            }

            if (sourceSynchSupport.IsSubmissionCertificationDescriptorSupported)
            {
                target.SubmissionCertificationDescriptor = source.SubmissionCertificationDescriptor;
            }
            else
            {
                targetSynchSupport.IsSubmissionCertificationDescriptorSupported = false;
            }

            // Copy Aggregate Reference Data
            if (GeneratedArtifactStaticDependencies.AuthorizationContextProvider == null ||
                GeneratedArtifactStaticDependencies.AuthorizationContextProvider.GetAction() == RequestActions.ReadActionUri)
            {
                target.PostSecondaryOrganizationResourceId    = source.PostSecondaryOrganizationResourceId;
                target.PostSecondaryOrganizationDiscriminator = source.PostSecondaryOrganizationDiscriminator;
            }



            // ----------------------------------
            //   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);
            }
        }
        public static void MapTo(this IInstitutionControlDescriptor source, IInstitutionControlDescriptor target, Action <IInstitutionControlDescriptor, IInstitutionControlDescriptor> onMapped)
        {
            var sourceSynchSupport = source as IInstitutionControlDescriptorSynchronizationSourceSupport;
            var targetSynchSupport = target as IInstitutionControlDescriptorSynchronizationSourceSupport;

            // Copy resource Id
            target.Id = source.Id;

            // Copy contextual primary key values
            target.InstitutionControlDescriptorId = source.InstitutionControlDescriptorId;

            // Copy inherited non-PK properties

            if (sourceSynchSupport.IsCodeValueSupported)
            {
                target.CodeValue = source.CodeValue;
            }
            else
            {
                targetSynchSupport.IsCodeValueSupported = false;
            }

            if (sourceSynchSupport.IsDescriptionSupported)
            {
                target.Description = source.Description;
            }
            else
            {
                targetSynchSupport.IsDescriptionSupported = false;
            }

            if (sourceSynchSupport.IsEffectiveBeginDateSupported)
            {
                target.EffectiveBeginDate = source.EffectiveBeginDate;
            }
            else
            {
                targetSynchSupport.IsEffectiveBeginDateSupported = false;
            }

            if (sourceSynchSupport.IsEffectiveEndDateSupported)
            {
                target.EffectiveEndDate = source.EffectiveEndDate;
            }
            else
            {
                targetSynchSupport.IsEffectiveEndDateSupported = false;
            }

            if (sourceSynchSupport.IsNamespaceSupported)
            {
                target.Namespace = source.Namespace;
            }
            else
            {
                targetSynchSupport.IsNamespaceSupported = false;
            }

            if (sourceSynchSupport.IsPriorDescriptorIdSupported)
            {
                target.PriorDescriptorId = source.PriorDescriptorId;
            }
            else
            {
                targetSynchSupport.IsPriorDescriptorIdSupported = false;
            }

            if (sourceSynchSupport.IsShortDescriptionSupported)
            {
                target.ShortDescription = source.ShortDescription;
            }
            else
            {
                targetSynchSupport.IsShortDescriptionSupported = false;
            }

            // Copy non-PK properties

            // Copy Aggregate Reference Data


            // ----------------------------------
            //   Map One-to-one relationships
            // ----------------------------------

            // Map inherited lists

            // 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);
            }
        }
        public static void MapTo(this IPostSecondaryOrganization source, IPostSecondaryOrganization target, Action <IPostSecondaryOrganization, IPostSecondaryOrganization> onMapped)
        {
            var sourceSynchSupport = source as IPostSecondaryOrganizationSynchronizationSourceSupport;
            var targetSynchSupport = target as IPostSecondaryOrganizationSynchronizationSourceSupport;

            // Copy resource Id
            target.Id = source.Id;

            // Copy contextual primary key values
            target.NameOfInstitution = source.NameOfInstitution;

            // Copy non-PK properties

            if (sourceSynchSupport.IsAcceptanceIndicatorSupported)
            {
                target.AcceptanceIndicator = source.AcceptanceIndicator;
            }
            else
            {
                targetSynchSupport.IsAcceptanceIndicatorSupported = false;
            }

            if (sourceSynchSupport.IsInstitutionControlDescriptorSupported)
            {
                target.InstitutionControlDescriptor = source.InstitutionControlDescriptor;
            }
            else
            {
                targetSynchSupport.IsInstitutionControlDescriptorSupported = false;
            }

            if (sourceSynchSupport.IsInstitutionLevelDescriptorSupported)
            {
                target.InstitutionLevelDescriptor = source.InstitutionLevelDescriptor;
            }
            else
            {
                targetSynchSupport.IsInstitutionLevelDescriptorSupported = false;
            }

            // 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);
            }
        }