public static ApplicationInstance GetApplicationInstance(string tenantName, string applicationName)
        {
            LbGetRoutingMeshRequest request = new LbGetRoutingMeshRequest(Settings.Credentials);

            request.ApplicationName = Decode(applicationName);
            request.TenantName      = Decode(tenantName);
            LbGetRoutingMeshResponse response = EndPoints.LoadBalancerWebService.GetRoutingMesh(request);

            if ((response != null) && (response.ApplicationsInstances != null) && (response.ApplicationsInstances.Count > 0))
            {
                return(FindNextAvailableInstance(response.ApplicationsInstances));
            }
            return(null);
        }
        public LbGetRoutingMeshResponse GetRoutingMesh(LbGetRoutingMeshRequest request)
        {
            try
            {
                Log.Debug(this, "GetRoutingMesh()");

                Authenticate(request);
                LbGetRoutingMeshResponse response = new LbGetRoutingMeshResponse();
                if ((!string.IsNullOrEmpty(request.ApplicationName)) && (!string.IsNullOrEmpty(request.TenantName)))
                {
                    response.ApplicationsInstances = Database.GetInstance().RoutingMesh.FindAll(x => (x.ApplicationName.ToLower().Equals(request.ApplicationName.ToLower())) &&
                                                                                                (x.Tenant.Name.ToLower().Equals(request.TenantName.ToLower())));
                }
                return(response);
            }
            catch (Exception e)
            {
                Log.Error(this, e);
                throw e;
            }
        }