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