示例#1
0
 public void Release(HubRequest req)
 {
     lock ( _keepersLock )
     {
         _keepers.RemoveAll(r => r.DataMartId == req.DataMartId && r.Source.ID == req.Source.ID);
     }
 }
示例#2
0
 public void Lock(HubRequest req)
 {
     lock ( _keepersLock )
     {
         _keepers.Add(req);
     }
 }
示例#3
0
        public async Task Join(HubRequest <MessengerConnection> request)
        {
            // Set connection Id
            request.Data.ConnectionId = Context.ConnectionId;
            request.Data.DeviceId     = request.Data.DeviceId ?? defaultDevice;
            // Mapping connecting user to db  models
            var user = new Service.SignalR.ViewModels.MixMessengerUsers.ConnectViewModel(request.Data);

            user.CreatedDate = DateTime.UtcNow;
            // Save user and current device to db
            var result = await user.Join();

            //  save success
            if (result.IsSucceed)
            {
                //  Send success msg to caller
                var getAvailableUsers = Service.SignalR.ViewModels.MixMessengerUsers.DefaultViewModel.Repository.GetModelListBy(u => u.Status == 1);
                SendToCaller(getAvailableUsers.Data, Constants.Enums.MessageReponseKey.ConnectSuccess);
                // Announce every one there's new member
                SendToAll(user, Constants.Enums.MessageReponseKey.NewMember, false);
            }
            else
            {
                //  Send failed msg to caller
                SendToConnection(result, Constants.Enums.MessageReponseKey.ConnectFailed, Context.ConnectionId, false);
            }
        }
示例#4
0
        /// <summary>
        /// Execute query only and do not upload results
        /// </summary>
        /// <param name="qdm">Query to be processed</param>
        private void ProcessRequest(HubRequest request)
        {
            NetWorkSetting networkSetting = Configuration.Instance.GetNetworkSetting(request.NetworkId);

            _log.Info(String.Format("BackgroundProcess:  Processing request {0} (RequestID: {3}, DataMartId: {1}, NetworkId: {2})", request.Source.Identifier, request.DataMartId, networkSetting.NetworkId, request.Source.ID));

            try
            {
                string requestId = ProcessRequest(request, request.Processor, networkSetting);

                RequestStatus.StatusCode statusCode = request.Processor.Status(requestId).Code;
                if (request.RoutingStatus == Lpp.Dns.DTO.DataMartClient.Enums.DMCRoutingStatus.Failed)
                {
                    HubRequestStatus hubRequestStatus = DnsServiceManager.ConvertModelRequestStatus(request.Processor.Status(requestId));
                    hubRequestStatus.Message = request.Processor.Status(requestId).Message;
                    DnsServiceManager.SetRequestStatus(request, hubRequestStatus, request.Properties, networkSetting);
                }
                else
                {
                    DnsServiceManager.SetRequestStatus(request, DnsServiceManager.ConvertModelRequestStatus(request.Processor.Status(requestId)), request.Properties, networkSetting);
                }

                _log.Info(String.Format("The following query {3} (ID: {0}) was executed on behalf of {1}:\n\n{2}",
                                        request.Source.ID, networkSetting.Profile.Username, "", request.Source.Identifier));
            }
            catch (Exception ex)
            {
                string message = string.Format("BackgroundProcess: An error occurred when processing request {0} (RequestID: {3}, DataMartId: {1}, NetworkId: {2}", request.Source.Identifier, request.DataMartId, networkSetting.NetworkId, request.Source.ID);
                _log.Error(message, ex);
                DnsServiceManager.SetRequestStatus(request, new HubRequestStatus(Lpp.Dns.DTO.DataMartClient.Enums.DMCRoutingStatus.Failed, message), request.Properties, networkSetting);
            }

            _log.Info(String.Format("BackgroundProcess:  Finished processing request {0} (RequestID: {3}, DataMartId: {1}, NetworkId: {2})", request.Source.Identifier, request.DataMartId, networkSetting.NetworkId, request.Source.ID));
        }
示例#5
0
        /// <summary>
        /// Execute query only and do not upload results
        /// </summary>
        /// <param name="qdm">Query to be processed</param>
        private void ProcessRequest(HubRequest request)
        {
            Log.Info(string.Format("BackgroundProcess:  Processing request {0} (RequestID: {3}, DataMartId: {1}, NetworkId: {2})", request.Source.Identifier, request.DataMartId, request.NetworkId, request.Source.ID));

            try
            {
                var key = MakeKey(request);
                if (RequestStatuses.ContainsKey(key))
                {
                    RequestStatuses[key] = ProcessingStatus.InProcessing;
                }

                string requestId = ProcessRequest(request, request.Processor);

                RequestStatus.StatusCode statusCode = request.Processor.Status(requestId).Code;

                if (statusCode == RequestStatus.StatusCode.Error)
                {
                    HubRequestStatus hubRequestStatus = DnsServiceManager.ConvertModelRequestStatus(request.Processor.Status(requestId));
                    hubRequestStatus.Message = request.Processor.Status(requestId).Message;
                    DnsServiceManager.SetRequestStatus(request, hubRequestStatus, request.Properties, _networkSetting);
                }

                Log.Info(String.Format("The following query {3} (ID: {0}) was executed on behalf of {1}:\n\n{2}", request.Source.ID, _networkSetting.Profile.Username, "", request.Source.Identifier));
            }
            catch (Exception ex)
            {
                string message = string.Format("BackgroundProcess: An error occurred when processing request {0} (RequestID: {3}, DataMartId: {1}, NetworkId: {2}", request.Source.Identifier, request.DataMartId, request.NetworkId, request.Source.ID);
                Log.Error(message, ex);
                DnsServiceManager.SetRequestStatus(request, new HubRequestStatus(Lpp.Dns.DTO.DataMartClient.Enums.DMCRoutingStatus.Failed, message), request.Properties, _networkSetting);
            }

            Log.Info(string.Format("BackgroundProcess:  Finished processing request {0} (RequestID: {3}, DataMartId: {1}, NetworkId: {2})", request.Source.Identifier, request.DataMartId, request.NetworkId, request.Source.ID));
        }
示例#6
0
        /// <summary>
        /// Prepare notification and show through system tray icon
        /// </summary>
        /// <param name="hubRequest"></param>
        internal static void GenerateNotification(HubRequest hubRequest, int networkId)
        {
            log.Info(String.Format("BackgroundProcess: Generating notification for query {0} from {1} (NetworkId: {2})", hubRequest.Source.ID, hubRequest.DataMartName, networkId));

            string message = $"New query submitted in { hubRequest.ProjectName } Project: { hubRequest.Source.Name }";

            DisplayNewQueryNotificationToolTip(message);
        }
示例#7
0
        private async Task <object> GetGroupMembersAsync(HubRequest <JObject> request)
        {
            Expression <Func <MixAttributeSetValue, bool> > predicate = m => m.Specificulture == request.Specificulture &&
                                                                        m.AttributeSetName == Constants.HubMessages.HubMemberName && m.AttributeFieldName == request.Room;
            var data = await Lib.ViewModels.MixAttributeSetDatas.FormViewModel.FilterByValueAsync(request.Specificulture, request.Room, new Dictionary <string, Microsoft.Extensions.Primitives.StringValues>());

            return(data);
        }
示例#8
0
        /// <summary>
        /// Prepare notification and show through system tray icon
        /// </summary>
        /// <param name="hubRequest"></param>
        internal static void generate_notification(HubRequest hubRequest, int NetworkId)
        {
            log.Info(String.Format("BackgroundProcess:  Generating notification for query {0} from {1} (NetworkId: {2})", hubRequest.Source.ID, hubRequest.DataMartName, NetworkId));

            string Message = string.Format("New query submitted by {0}.", hubRequest.Source.Author.Username);

            DisplayNewQueryNotificationToolTip(Message);
        }
示例#9
0
        private object GetGroupMembers(HubRequest <JObject> request)
        {
            Expression <Func <MixAttributeSetValue, bool> > predicate = m => m.Specificulture == request.Specificulture &&
                                                                        m.AttributeSetName == MixConstants.ServiceHub.HubMemberName && m.AttributeFieldName == request.Room;
            var data = Lib.ViewModels.MixAttributeSetDatas.HubViewModel.FilterByValue(predicate);

            return(data);
        }
示例#10
0
        private async Task <object> GetGroupMembersAsync(HubRequest <JObject> request)
        {
            Expression <Func <MixAttributeSetValue, bool> > predicate = m => m.Specificulture == request.Specificulture &&
                                                                        m.AttributeSetName == Constants.HubMessages.HubMemberName && m.AttributeFieldName == request.Room;
            var data = await Lib.ViewModels.MixAttributeSetDatas.Helper.FilterByKeywordAsync <Lib.ViewModels.MixAttributeSetDatas.FormViewModel>(
                request.Specificulture, request.Room, null, null);

            return(data);
        }
示例#11
0
        public HttpResponseMessage Deploy(BdioContent bdioContent)
        {
            HubRequest request = new HubRequest(RestConnection);

            request.Path = $"api/{ApiLinks.BOM_IMPORTS_LINK}";
            HttpResponseMessage response = request.ExecuteJsonLDPost(bdioContent.ToString());

            return(response);
        }
示例#12
0
        public void Process(RetrieveRequest request)
        {
            this.agencyRegister = this.agencyRepository.GetAgencyByCode(request.AgencyCode);
            //AgencyRegister agencyRegister = this.agencyRepository.GetAgencyByCode(request.AgencyCode);
            System.Threading.Thread.Sleep(request.SleepSeconds * 1000);
            HubRequest hubRequest = this.MapToHubRequest(request, agencyRegister.ID);

            this.hubRepository.SaveHubRequest(hubRequest);
        }
示例#13
0
 public void SaveHubRequest(HubRequest request)
 {
     using (UnityContainerEntities context = new UnityContainerEntities())
     {
         context.HubRequests.Add(request);
         request.CreatedDateTime = DateTime.Now;
         context.SaveChanges();
     }
 }
示例#14
0
        private async Task <object> GetGroupMembersAsync(HubRequest <JObject> request)
        {
            Expression <Func <MixDatabaseDataValue, bool> > predicate = m => m.Specificulture == request.Specificulture &&
                                                                        m.MixDatabaseName == HubMessages.HubMemberName && m.MixDatabaseColumnName == request.Room;
            var data = await Lib.ViewModels.MixDatabaseDatas.Helper.FilterByKeywordAsync <Lib.ViewModels.MixDatabaseDatas.FormViewModel>(
                request.Specificulture, request.Room, null, null);

            return(data);
        }
        public VersionBomPolicyStatusView GetVersionBomPolicyStatusView(ProjectVersionView projectVersionView)
        {
            string     policyStatusUrl = MetadataResponseService.GetLink(projectVersionView, ApiLinks.POLICY_STATUS_LINK);
            HubRequest request         = new HubRequest(RestConnection);

            request.SetUriFromString(policyStatusUrl);
            VersionBomPolicyStatusView response = request.ExecuteGetForResponse <VersionBomPolicyStatusView>();

            return(response);
        }
示例#16
0
        private Task SaveData(HubRequest <JObject> request)
        {
            var data = new Lib.ViewModels.MixAttributeSetDatas.HubViewModel()
            {
                AttributeSetName = request.AttributeSetName,
                Data             = request.Data
            };

            throw new NotImplementedException();
        }
示例#17
0
        public HubPagedResponse <ProjectView> GetPagedProjectView(string projectName)
        {
            HubRequest hubRequest = new HubRequest(RestConnection);

            hubRequest.Path = $"api/{ApiLinks.PROJECTS_LINK}";
            hubRequest.QueryParameters[HubRequest.Q_QUERY] = $"name:{projectName}";
            HubPagedResponse <ProjectView> response = hubRequest.ExecuteGetForResponsePaged <ProjectView>();

            return(response);
        }
示例#18
0
 private async Task SaveData(HubRequest <JObject> request)
 {
     var data = new Lib.ViewModels.MixAttributeSetDatas.FormViewModel()
     {
         Specificulture   = request.Specificulture,
         AttributeSetName = request.Room,
         Obj       = request.Data,
         CreatedBy = request.Uid
     };
     var saveData = await data.SaveModelAsync(true);
 }
示例#19
0
        public HubPagedResponse <ProjectVersionView> GetPagedProjectVersionView(ProjectView projectView)
        {
            string     projectVersionsUrl = MetadataResponseService.GetLink(projectView, ApiLinks.VERSIONS_LINK);
            HubRequest hubRequest         = new HubRequest(RestConnection);

            hubRequest.QueryParameters[HubRequest.Q_SORT] = "updatedAt asc"; // Sort it by most recent
            hubRequest.SetUriFromString(projectVersionsUrl);
            HubPagedResponse <ProjectVersionView> response = hubRequest.ExecuteGetForResponsePaged <ProjectVersionView>();

            return(response);
        }
        public List <CodeLocationView> FetchCodeLocations(string q, int limit)
        {
            HubRequest request = new HubRequest(RestConnection);

            request.QueryParameters[HubRequest.Q_LIMIT] = limit.ToString();
            request.QueryParameters[HubRequest.Q_QUERY] = q;
            request.Path = $"api/{ApiLinks.CODE_LOCATION_LINK}";
            HubPagedResponse <CodeLocationView> response      = request.ExecuteGetForResponsePaged <CodeLocationView>();
            List <CodeLocationView>             codeLocations = response.Items;

            return(codeLocations);
        }
示例#21
0
        string ProcessRequest(HubRequest request, IModelProcessor processor, NetWorkSetting networkSetting)
        {
            try
            {
                Document[] requestDocuments = request.Documents.Select(d => new Lpp.Dns.DataMart.Model.Document(d.ID.ToString("D"), d.Document.MimeType, d.Document.Name)
                {
                    IsViewable = d.Document.IsViewable, Size = Convert.ToInt32(d.Document.Size), Kind = d.Document.Kind
                }).ToArray();
                Document[] desiredDocuments;
                string     requestId = request.Source.ID.ToString();
                IDictionary <string, string> requestProperties;
                processor.Request(requestId, networkSetting.CreateInterfaceMetadata(), request.CreateInterfaceMetadata(), requestDocuments, out requestProperties, out desiredDocuments);

                _log.Info("Request posted: " + request.Source.Identifier + " (ID: " + requestId + ")");
                _log.Info("Number of documents available: " + requestDocuments.Length);
                _log.Info("Number of documents desired: " + desiredDocuments.Length);
                if (requestProperties != null && requestProperties.Count > 0)
                {
                    _log.Info("Properties: ");
                    foreach (string key in requestProperties.Keys)
                    {
                        _log.Info("Key: " + key + "=" + requestProperties[key]);
                    }
                }

                // TODO[ddee] Needs to update the requestProperties here, but do not have a proper status.
                // Temporarily using InProgress.
                // BMS: Don't report inprogress status until portal is fixed to display status in routings
                // DnsServiceManager.SetRequestStatus(request, DnsServiceManager.ConvertModelRequestStatus(processor.Status(requestId)), requestProperties, networkSetting);

                foreach (Lpp.Dns.DataMart.Model.Document requestDocument in desiredDocuments)
                {
                    _log.Info("About to post desired document id: " + requestDocument.DocumentID);
                    DocumentChunkStream requestDocumentStream = new DocumentChunkStream(Guid.Parse(requestDocument.DocumentID), networkSetting);
                    processor.RequestDocument(requestId, requestDocument.DocumentID, requestDocumentStream);
                    _log.Info("Posted desired document id: " + requestDocument.DocumentID);
                }

                _log.Info("Starting request with local request: " + request.Source.Identifier + " (ID: " + requestId + ")");
                processor.Start(requestId);
                _log.Info("Start finished on request with local request: " + request.Source.Identifier + " (ID: " + requestId + ")");

                return(requestId);
            }
            catch (Exception ex)
            {
                _log.Error("Unexpected exception in Util.ProcessRequest.", ex);
                throw;
            }
        }
        public ActionResult <float> Get(int id)
        {
            var request = new HubRequest {
                Id = id, Properties = new string[] { "1", "2", "3", "4", "5", "6" }
            };

            _logger.LogInformation("Input '{value}' [{type}]", request, request.GetType().Name);

            var response = _pipeline.Process(request);

            _logger.LogInformation("Output '{value}' [{type}]", response, request.GetType().Name);

            return(Ok(response));
        }
示例#23
0
        // TODO Handle Join/Leave group
        public Task HandleRequest(HubRequest <JObject> request)
        {
            switch (request.Action)
            {
            case MixConstants.ServiceHub.SaveData:
                return(SaveData(request));

            case MixConstants.ServiceHub.JoinGroup:
                return(JoinGroup(request));

            default:
                return(SendToCaller(MixConstants.ServiceHub.UnknowErrorMsg, MessageReponseKey.Error));
            }
        }
        public HubPagedResponse <ScanSummaryView> GetScanSummaries(CodeLocationView codeLocationView)
        {
            if (codeLocationView == null)
            {
                return(null);
            }
            string     codeLocationUrl = MetadataResponseService.GetLink(codeLocationView, ApiLinks.SCANS_LINK);
            HubRequest request         = new HubRequest(RestConnection);

            request.QueryParameters[HubRequest.Q_SORT] = "updated asc";
            request.SetUriFromString(codeLocationUrl);
            HubPagedResponse <ScanSummaryView> response = request.ExecuteGetForResponsePaged <ScanSummaryView>();

            return(response);
        }
示例#25
0
        private HubRequest MapToHubRequest(RetrieveRequest request, int?agencyID = null)
        {
            HubRequest hubRequest = new HubRequest()
            {
                AgencyCode   = request.AgencyCode,
                DOBOfYear    = request.DOBOfYear,
                FamilyName   = request.FamilyName,
                TimeStamp    = request.TimeStamp,
                SleepSeconds = request.SleepSeconds,
                //AgencyID = agencyID
                AgencyID = this.agencyRegister.ID
            };

            return(hubRequest);
        }
 private void CheckPolicyStatusForComponent(string componentPolicyStatusURL, BomComponent component)
 {
     try
     {
         HubRequest request = new HubRequest(RestConnection)
         {
             Uri = new Uri(componentPolicyStatusURL)
         };
         BomComponentPolicyStatusView bomPolicyStatus = request.ExecuteGetForResponse <BomComponentPolicyStatusView>();
         component.PolicyStatus = bomPolicyStatus.ApprovalStatus.ToString();
     }
     catch (BlackDuckIntegrationException)
     {
     }
 }
示例#27
0
 public static void SetRequestStatus(HubRequest request, HubRequestStatus status, IDictionary <string, string> requestProperties, NetWorkSetting ns)
 {
     try
     {
         using (var web = new Lpp.Dns.DataMart.Client.Lib.DnsApiClient(ns, FindCert(ns)))
         {
             Task.Run(() => web.SetRequestStatus(request.Source.ID, request.DataMartId, status.Code, status.Message, requestProperties.EmptyIfNull().Select(p => new DTO.DataMartClient.RoutingProperty {
                 Name = p.Key, Value = p.Value
             }).ToArray())).Wait();
         }
     }
     catch (Exception ex)
     {
         _log.Error(string.Format("Unable to set request status for requestID: {0}.", request.Source.ID), ex);
         throw new SetRequestStatusFailed(ex);
     }
 }
示例#28
0
        private async Task JoinGroup(HubRequest <JObject> request)
        {
            var connection = request.Data.ToObject <MessengerConnection>();

            // Set connection Id
            connection.ConnectionId = Context.ConnectionId;
            connection.DeviceId     = connection.DeviceId ?? Constants.DefaultDevice;

            // Add User to group connections
            await Groups.AddToGroupAsync(Context.ConnectionId, request.Room);

            // Announce Other Group member there is new user
            await SendToGroup(connection, Constants.Enums.MessageReponseKey.NewMember, request.Room);

            // Get Online users
            var getAvailableUsers = ViewModels.MixMessengerUsers.DefaultViewModel.Repository.GetModelListBy(
                u => u.Status == Constants.Enums.OnlineStatus.Connected.ToString());

            if (getAvailableUsers.IsSucceed)
            {
                // Announce User Connected to Group and list available users
                await SendToCaller(getAvailableUsers.Data, Constants.Enums.MessageReponseKey.ConnectSuccess);
            }
            var getPreviousMsgs = Mix.Cms.Service.SignalR.ViewModels.MixAttributeSetDatas.ReadViewModel.Repository.GetModelListBy(
                m => m.AttributeSetName == request.Room && m.Specificulture == request.Specificulture
                , "CreatedDateTime", Heart.Enums.MixHeartEnums.DisplayDirection.Desc, 10, 0);

            // Get previous messages
            if (getPreviousMsgs.IsSucceed)
            {
                getPreviousMsgs.Data.Items = getPreviousMsgs.Data.Items.OrderBy(m => m.CreatedDateTime).ToList();
                await SendToCaller(getPreviousMsgs.Data, Constants.Enums.MessageReponseKey.PreviousMessages);
            }
            var groupMembers = GetGroupMembersAsync(request);


            var result = new RepositoryResponse <bool>();
            // Mapping connecting user to db  models
            var user = new ViewModels.MixMessengerUsers.ConnectViewModel(connection)
            {
                CreatedDate = DateTime.UtcNow
            };

            result = user.Join();
        }
示例#29
0
        private string ProcessRequest(HubRequest request, IModelProcessor processor)
        {
            try
            {
                Document[] requestDocuments = request.Documents.Select(d => new Lpp.Dns.DataMart.Model.Document(d.ID.ToString("D"), d.Document.MimeType, d.Document.Name)
                {
                    IsViewable = d.Document.IsViewable, Size = Convert.ToInt32(d.Document.Size), Kind = d.Document.Kind
                }).ToArray();
                Document[] desiredDocuments;
                string     requestId = request.Source.ID.ToString();
                IDictionary <string, string> requestProperties;
                processor.Request(requestId, _networkSetting.CreateInterfaceMetadata(), request.CreateInterfaceMetadata(), requestDocuments, out requestProperties, out desiredDocuments);

                Log.Info("Request posted: " + request.Source.Identifier + " (ID: " + requestId + ")");
                Log.Info("Number of documents available: " + requestDocuments.Length);
                Log.Info("Number of documents desired: " + desiredDocuments.Length);
                if (requestProperties != null && requestProperties.Count > 0)
                {
                    Log.Info("Properties: ");
                    foreach (string key in requestProperties.Keys)
                    {
                        Log.Info("Key: " + key + "=" + requestProperties[key]);
                    }
                }

                foreach (Lpp.Dns.DataMart.Model.Document requestDocument in desiredDocuments)
                {
                    Log.Debug("Downloading document" + requestDocument.Filename + $" for Request: {request.Source.MSRequestID}, DataMart: { request.DataMartName }");
                    DocumentChunkStream requestDocumentStream = new DocumentChunkStream(Guid.Parse(requestDocument.DocumentID), _networkSetting);
                    processor.RequestDocument(requestId, requestDocument.DocumentID, requestDocumentStream);
                    Log.Debug("Successfully Downloaded document" + requestDocument.Filename + $" for Request: {request.Source.MSRequestID}, DataMart: { request.DataMartName }");
                }

                Log.Info("Starting request with local request: " + request.Source.Identifier + " (ID: " + requestId + ")");
                processor.Start(requestId);
                Log.Info("Start finished on request with local request: " + request.Source.Identifier + " (ID: " + requestId + ")");

                return(requestId);
            }
            catch (Exception ex)
            {
                Log.Error("Unexpected exception in Util.ProcessRequest.", ex);
                throw;
            }
        }
示例#30
0
        private Task JoinGroup(HubRequest <JObject> request)
        {
            var groupMembers = GetGroupMembers(request);
            var connection   = request.Data.ToObject <MessengerConnection>();

            // Set connection Id
            connection.ConnectionId = Context.ConnectionId;
            connection.DeviceId     = connection.DeviceId ?? MixConstants.ServiceHub.DefaultDevice;
            // Mapping connecting user to db  models
            var user = new Messenger.ViewModels.MixMessengerUsers.ConnectViewModel(connection)
            {
                CreatedDate = DateTime.UtcNow
            };

            // Save user and current device to db
            return(user.Join().ContinueWith((task) =>
            {
                //  save success
                if (task.Result.IsSucceed)
                {
                    // Get Online users
                    var getAvailableUsers = Messenger.ViewModels.MixMessengerUsers.DefaultViewModel.Repository.GetModelListBy(u => u.Status == (int)Messenger.MixChatEnums.OnlineStatus.Connected);
                    var hubMsg = new RepositoryResponse <MessengerConnection>()
                    {
                        Status = 200,
                        Data = connection
                    };
                    return Task.WhenAll(new Task[]
                    {
                        Groups.AddToGroupAsync(Context.ConnectionId, request.Room),
                        SendToCaller(getAvailableUsers.Data, MessageReponseKey.ConnectSuccess),
                        SendToGroup(connection, MessageReponseKey.NewMember, request.Room),
                        // Announce every one there's new member
                        SendToAll(user, MessageReponseKey.NewMember, false)
                    });
                }
                else
                {
                    //  Send failed msg to caller
                    return SendToConnection(task.Result, MessageReponseKey.ConnectFailed, Context.ConnectionId, false);
                }
            }));
        }