private async Task <SetObjectPropertyParameters> CreateSetObjectPropertyParametersAsync(int[] objectIds, PropertyParameter[] @params, CancellationToken token) { foreach (var prop in @params) { var attrib = prop.Property.GetEnumAttribute <TypeAttribute>(); if (attrib != null) { try { var method = attrib.Class.GetMethod("ResolveAsync", BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Static); if (method != null) { var task = ((Task)method.Invoke(null, new[] { this, prop.Value, token })); await task.ConfigureAwait(false); prop.Value = task.GetType().GetProperty("Result").GetValue(task); } } catch (TargetInvocationException ex) { throw ex.InnerException; } } } var parameters = new SetObjectPropertyParameters(objectIds, @params); return(parameters); }
private SetObjectPropertyParameters CreateSetObjectPropertyParameters(int[] objectIds, params PropertyParameter[] @params) { foreach (var prop in @params) { var attrib = prop.Property.GetEnumAttribute <TypeAttribute>(); if (attrib != null) { try { var method = attrib.Class.GetMethod("Resolve", BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Static); if (method != null) { prop.Value = method.Invoke(null, new[] { this, prop.Value, CancellationToken.None }); } } catch (TargetInvocationException ex) { throw ex.InnerException; } } } var parameters = new SetObjectPropertyParameters(objectIds, @params); return(parameters); }
private async Task <SetObjectPropertyParameters> CreateSetObjectPropertyParametersAsync(int[] objectIds, PropertyParameter[] @params, CancellationToken token) { foreach (var prop in @params) { var attrib = prop.Property.GetEnumAttribute <TypeAttribute>(); if (attrib != null) { if (attrib.Class == typeof(Location)) { prop.Value = await ResolveAddressAsync(prop.Value?.ToString(), token).ConfigureAwait(false); } } } var parameters = new SetObjectPropertyParameters(objectIds, @params); return(parameters); }
private SetObjectPropertyParameters CreateSetObjectPropertyParameters(int[] objectIds, params PropertyParameter[] @params) { foreach (var prop in @params) { var attrib = prop.Property.GetEnumAttribute <TypeAttribute>(); if (attrib != null) { if (attrib.Class == typeof(Location)) { prop.Value = ResolveAddress(prop.Value?.ToString(), CancellationToken.None); } } } var parameters = new SetObjectPropertyParameters(objectIds, @params); return(parameters); }
internal static List <T> CreateFromDropDownOptions(string response, ObjectProperty name, Func <string, T> createObj) { var val = SetObjectPropertyParameters.GetParameterName(name).TrimEnd('_'); return(CreateFromDropDownOptions(response, val, createObj)); }