예제 #1
0
        public async Task <CrmActionParameterHandleResult> Convert(string name, object parameter)
        {
            CrmActionParameterHandleResult result;

            if (parameter == null)
            {
                result = new CrmActionParameterHandleResult()
                {
                    Name  = name,
                    Value = JToken.Parse("null")
                };

                return(await Task.FromResult(result));
            }

            if (!_handleFactories.TryGetValue(parameter.GetType(), out IFactory <ICrmActionParameterHandle> handleFactory))
            {
                var fragment = new TextFragment()
                {
                    Code = TextCodes.NotFoundCrmActionParameterHandleByType,
                    DefaultFormatting = "找不到类型为{0}的Crm动作参数处理,发生位置:{1}",
                    ReplaceParameters = new List <object>()
                    {
                        parameter.GetType().FullName, $"{ this.GetType().FullName }.Convert"
                    }
                };

                throw new UtilityException((int)Errors.NotFoundCrmActionParameterHandleByType, fragment);
            }
            result = await handleFactory.Create().Convert(name, parameter);

            return(result);
        }
예제 #2
0
        public async Task <CrmActionParameterHandleResult> Convert(string name, object parameter)
        {
            CrmExecuteEntity realParameter = parameter as CrmExecuteEntity;

            JObject valueResult = new JObject();

            if (realParameter.Id != Guid.Empty)
            {
                if (realParameter.IsActivity)
                {
                    valueResult["activityid"] = JToken.FromObject(realParameter);
                }
                else
                {
                    valueResult[$"{realParameter.EntityName}id"] = JToken.FromObject(realParameter);
                }
            }

            valueResult["@odata.type"] = JToken.FromObject($"Microsoft.Dynamics.CRM.{realParameter.EntityName}");

            foreach (var attributeItem in realParameter.Attributes)
            {
                var attributeResult = await _crmActionParameterHandle.Convert(attributeItem.Key, attributeItem.Value);

                valueResult[attributeResult.Name] = attributeResult.Value;
            }

            CrmActionParameterHandleResult result = new CrmActionParameterHandleResult()
            {
                Name  = name,
                Value = valueResult
            };

            return(result);
        }
예제 #3
0
        public async Task <CrmActionParameterHandleResult> Convert(string name, object parameter)
        {
            CrmActionParameterHandleResult result = new CrmActionParameterHandleResult()
            {
                Name  = name,
                Value = JToken.FromObject(parameter)
            };

            return(await Task.FromResult(result));
        }
        public async Task <CrmActionParameterHandleResult> Convert(string name, object parameter)
        {
            var realParameter = parameter as CrmEntityReferenceNull;

            CrmActionParameterHandleResult result = new CrmActionParameterHandleResult()
            {
                Name  = $"{name}@odata.bind",
                Value = JToken.Parse("null")
            };

            return(await Task.FromResult(result));
        }
예제 #5
0
        public async Task <CrmActionParameterHandleResult> Convert(string name, object parameter)
        {
            var realParameter = parameter as CrmEntityReference;


            CrmActionParameterHandleResult result = new CrmActionParameterHandleResult()
            {
                Name  = $"{name}@odata.bind",
                Value = JToken.FromObject($"/{realParameter.EntityName.ToPlural()}({realParameter.Id.ToString()})")
            };

            return(await Task.FromResult(result));
        }
        public async Task <CrmActionParameterHandleResult> Convert(string name, object parameter)
        {
            IList <CrmExecuteEntity> realParameter = parameter as IList <CrmExecuteEntity>;
            List <JToken>            valueList     = new List <JToken>();

            foreach (var item in realParameter)
            {
                if (item == null)
                {
                    valueList.Add(JToken.Parse("null"));
                    continue;
                }

                var handleResult = await _crmActionParameterHandle.Convert(string.Empty, item);

                valueList.Add(handleResult.Value);
            }
            CrmActionParameterHandleResult result = new CrmActionParameterHandleResult();

            result.Name  = name;
            result.Value = JsonSerializerHelper.Deserialize <JToken>(JsonSerializerHelper.Serializer(valueList));
            return(result);
        }