示例#1
0
        public dynamic Invoke(DynamicViewPoint point, InvokeMemberBinder binder, object[] args)
        {
            string location = point.Location;

            string idValue = args.Length == 1 ? Convert.ToString(args[0]) : "";

            GetDataRequest request = new GetDataRequest
                {
                    Credentials = GetCredentials(),
                    Filter = new DataFilter
                        {
                            Location = location,
                            Criteria = new [] {new FilterEntry {Name = "Id", Value = idValue}},
                        },
                    View = new GetDataView
                        {
                            Module = point.AmplaModule
                        },
                    OutputOptions = new GetDataOutputOptions
                        {
                            ResolveIdentifiers = true
                        },
                };
            GetDataResponse response = WebServiceClient.GetData(request);

            List<dynamic> records = new List<dynamic>();
            IAmplaBinding binding = new AmplaGetDataBinding(response, records);
            if (binding.Validate() && binding.Bind())
            {
                return records.FirstOrDefault();
            }
            return null;
        }
示例#2
0
        public dynamic Invoke(DynamicViewPoint point, InvokeMemberBinder binder, object[] args)
        {
            string location = point.Location;

            string idValue = args.Length == 1 ? Convert.ToString(args[0]) : "";

            GetDataRequest request = new GetDataRequest
            {
                Credentials = GetCredentials(),
                Filter      = new DataFilter
                {
                    Location = location,
                    Criteria = new [] { new FilterEntry {
                                            Name = "Id", Value = idValue
                                        } },
                },
                View = new GetDataView
                {
                    Module = point.AmplaModule
                },
                OutputOptions = new GetDataOutputOptions
                {
                    ResolveIdentifiers = true
                },
            };
            GetDataResponse response = WebServiceClient.GetData(request);

            List <dynamic>         records         = new List <dynamic>();
            DynamicModelProperties modelProperties = new DynamicModelProperties(point);
            IAmplaBinding          binding         = new AmplaGetDataDynamicBinding(response, records, modelProperties);

            if (binding.Validate() && binding.Bind())
            {
                return(records.FirstOrDefault());
            }
            return(null);
        }