Exemplo n.º 1
0
 private static void VerifyDataForEachField(PrivateApiResponse <Dictionary <string, object> > response, FieldQueryParameters field, int index, Operations op, bool searchMail = false)
 {
     if (BadRequestCases.Contains($"{field.ToString()}.{op.ToString()}"))
     {
         PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest));
     }
     else
     if (IgnoredTempCases.Contains($"{field.ToString()}.{op.ToString()}"))
     {
         //Nothing to do, b/c the response does not contain for this parameters
         PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK));
     }
     else
     {
         PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK));
         PrAssert.That(response.Result["totalHits"], PrIs.GreaterThan(0), "The response is empty.");
         foreach (var result in JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(response.Result["hits"].ToString()))
         {
             var fieldName = field.GetEnumStringValue();
             if (field == FieldQueryParameters.Body)
             {
                 fieldName = "preview";
             }
             Assertions[op](result[fieldName].ToString(), MappingValues[field](index, searchMail ? DateListMultipleMail.ElementAt(NumberOfMail / 2) : DateListSingleMail.ElementAt(NumberOfMail / 2)).ToString());
         }
     }
 }
        public static IDataSource Create(
            IQualifiedMember sourceMember,
            int dataSourceIndex,
            IChildMemberMappingData childMappingData)
        {
            var childMapperData = childMappingData.MapperData;

            if (!childMapperData.MapperContext.UserConfigurations.HasMappingFactories)
            {
                return(new NullDataSource(Constants.EmptyExpression));
            }

            var childObjectMappingData = ObjectMappingDataFactory.ForChild(
                sourceMember,
                childMapperData.TargetMember,
                dataSourceIndex,
                childMappingData.Parent);

            var childCreationContext = new MappingCreationContext(childObjectMappingData);

            var mapping = ConfiguredMappingFactory
                          .GetMappingOrNull(childCreationContext, out _);

            if (mapping == null)
            {
                return(new NullDataSource(Constants.EmptyExpression));
            }

            var childObjectMapperData = childObjectMappingData.MapperData;
            var sourceMemberAccess    = sourceMember.GetRelativeQualifiedAccess(childMapperData);
            var targetMemberAccess    = childMapperData.GetTargetMemberAccess();

            var mappingValues = new MappingValues(
                sourceMemberAccess,
                targetMemberAccess,
                childMapperData.ElementIndex,
                childMapperData.ElementKey,
                dataSourceIndex);

            var directAccessMapping = MappingFactory.GetDirectAccessMapping(
                mapping,
                childObjectMapperData,
                mappingValues,
                MappingDataCreationFactory.ForChild(mappingValues, childObjectMapperData));

            var returnValue = childObjectMapperData
                              .GetFinalisedReturnValue(directAccessMapping, out var returnsDefault);

            if (returnsDefault)
            {
                returnValue = Expression.Block(directAccessMapping, returnValue);
            }

            return(new AdHocDataSource(sourceMember, returnValue, childMapperData));
        }
Exemplo n.º 3
0
        protected override IDictionary <string, object> GetMappingValue(KCMapObjectRequest request, PropertyDescriptor property)
        {
            PXResult <KCMapping> exportMappingRow = _mappingMaint.ExportMappingRow.Select(request.EntityType, property.Name, request.ViewName).FirstOrDefault();

            if (exportMappingRow == null)
            {
                return(null);
            }
            KCMapping mapping = exportMappingRow.GetItem <KCMapping>();
            KCAcumaticaMappingField             acumaticaField = exportMappingRow.GetItem <KCAcumaticaMappingField>();
            List <Dictionary <string, object> > mappingValue   = MappingValues.GetValue(new KCMappingKey(acumaticaField.ViewDisplayName, request.Id));

            return(mappingValue?.FirstOrDefault());
        }
        public Expression GetMapRepeatedCallFor(
            IObjectMappingData childMappingData,
            MappingValues mappingValues,
            ObjectMapperData declaredTypeMapperData)
        {
            if (ShortCircuitRecursion(childMappingData.MapperData))
            {
                return(GetMappingShortCircuit(childMappingData));
            }

            var inlineMappingBlock = MappingFactory.GetInlineMappingBlock(
                childMappingData,
                mappingValues,
                MappingDataCreationFactory.ForChild);

            return(inlineMappingBlock);
        }
Exemplo n.º 5
0
        public Expression GetMapRepeatedCallFor(
            IObjectMappingData mappingData,
            MappingValues mappingValues,
            ObjectMapperData declaredTypeMapperData)
        {
            var childMapperData = mappingData.MapperData;

            if (WillNotMap(childMapperData))
            {
                return(Constants.EmptyExpression);
            }

            childMapperData.CacheMappedObjects = true;

            childMapperData.RegisterRepeatedMapperFunc(mappingData);

            var mapRepeatedCall = declaredTypeMapperData.GetMapRepeatedCall(
                childMapperData.TargetMember,
                mappingValues,
                mappingValues.DataSourceIndex);

            return(mapRepeatedCall);
        }