Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        internal static List <T> CreateFromDropDownOptions(string response, ObjectProperty name, Func <string, T> createObj)
        {
            var val = SetObjectPropertyParameters.GetParameterName(name).TrimEnd('_');

            return(CreateFromDropDownOptions(response, val, createObj));
        }