Master data services service Get data using The WCF Service

1.4k Views Asked by At

Hi I am new to MDS i have everything setup webui/ sql db etc and am now looking to write a demo console app to connect via the wcf service and bring back some data.

I have searched high and low with no luck or found what i believe to be an older api to get the data

Should I be using EnityMember Set?

Or other to get to the data in a model?

Regards

Michael

1

There are 1 best solutions below

0
On

I know it is a bit late to answer your question but I just stumbled onto it.

I used the following example MSDN blogs to get started and wrote the following basic .Net Core Console app. Although far from complete or detailed I hope my code helps you:

using MDService;
using System;
using System.Threading.Tasks;

namespace MDS_WS_Console
{
    class Program
    {
        private static ServiceClient mdsProxy;

        static void Main(string[] args)
        {
            Console.WriteLine("Connecting ...");
            try
            {
                mdsProxy = CreateMdsProxy("http://192.168.0.101:7101/service/service.svc");
                Console.WriteLine("Connected");
            }
            catch (Exception)
            {
                Console.WriteLine("Error connecting ...");
                Console.ReadKey();
                throw;
            }

            Console.WriteLine("Fetching ...");
            ReadRecordsAsync().Wait();
            Console.ReadKey();
        }

        public static async Task ReadRecordsAsync()
        {
            EntityMembersGetRequest getRequest = new EntityMembersGetRequest();
            EntityMembersGetResponse getResponse = new EntityMembersGetResponse();

            EntityMembersGetCriteria membersGetCriteria = new EntityMembersGetCriteria
            {
                ModelId = new Identifier() { Name = "Model1" },
                EntityId = new Identifier() { Name = "Entity1" },
                VersionId = new Identifier() { Name = "VERSION_1" },
                MemberType = MemberType.Leaf,
                MemberReturnOption = MemberReturnOption.DataAndCounts
            };

            getRequest.MembersGetCriteria = membersGetCriteria;
            //EntityMembersGetResponse getResponse = await mdsProxy.EntityMembersGetAsync(getRequest);
            getResponse = await mdsProxy.EntityMembersGetAsync(getRequest);

            Console.WriteLine("Member information: \n Membercount: {0} | TotalPages: {1}", getResponse.EntityMembersInformation.MemberCount, getResponse.EntityMembersInformation.TotalPages);
            //Console.WriteLine("Members: \n Count: {0}", getResponse.EntityMembers.Members.Count.ToString());

            if (getResponse.EntityMembers.Members.Count > 0)
            {              
                foreach (Member individualMember in getResponse.EntityMembers.Members)
                {
                    Console.WriteLine("----------");
                    Console.WriteLine("Individual Member: \n Id: {0} | Code: {1} | Name: {2}",
                        individualMember.MemberId.Id, 
                        individualMember.MemberId.Code,
                        individualMember.MemberId.Name);
                    for (int i = 0; i < individualMember.Attributes.Count; i++)
                    {
                        Console.WriteLine("Attributes ({0}): \n Id Id: {1} | Id name: {2} | Type: {3} | Value: {4} \n ",
                            i,
                            individualMember.Attributes[i].Identifier.Id,
                            individualMember.Attributes[i].Identifier.Name,
                            individualMember.Attributes[i].Type,
                            individualMember.Attributes[i].Value
                            );
                        if (individualMember.Attributes[i].Type == AttributeValueType.Domain)
                        {
                            Console.WriteLine("Domain attribute");
                        }
                    }
                }

            }
        }

        private static ServiceClient CreateMdsProxy(string mdsURL)
        {
            // create endpoint using URL
            System.ServiceModel.EndpointAddress endptAddress = new System.ServiceModel.EndpointAddress(mdsURL);

            // create and configure WS Http binding
            System.ServiceModel.BasicHttpBinding wsBinding = new System.ServiceModel.BasicHttpBinding();

            // create and return the client proxy
            return new ServiceClient(wsBinding, endptAddress);
        }
    }
}