public CompileMessageList FetchMessages(Guid workspaceId, Guid serviceId, IList <string> dependants, CompileMessageType[] filter = null) { IList <ICompileMessageTO> result = new List <ICompileMessageTO>(); lock (Lock) { IList <ICompileMessageTO> messages; if (_messageRepo.TryGetValue(workspaceId, out messages)) { var candidateMessage = messages.Where(c => c.ServiceID == serviceId); var compileMessageTos = candidateMessage as IList <ICompileMessageTO> ?? candidateMessage.ToList(); foreach (var msg in compileMessageTos) { if (filter != null) { // TODO : Apply filter logic ;) } else { result.Add(msg); } } } } var compileMessageList = new CompileMessageList { MessageList = result, ServiceID = serviceId, Dependants = dependants }; RemoveMessages(workspaceId, serviceId); return(compileMessageList); }
public void CompileMessageList_Validate_Default() { var expectedMessageList = new List <ICompileMessageTO> { new CompileMessageTO() }; var expectedServiceId = Guid.NewGuid(); var expectedDependants = new List <string> { "test" }; var compileMessageList = new CompileMessageList { MessageList = expectedMessageList, ServiceID = expectedServiceId, Dependants = expectedDependants }; Assert.AreEqual(expectedMessageList, compileMessageList.MessageList); Assert.AreEqual(1, compileMessageList.MessageList.Count); Assert.AreEqual(1, compileMessageList.Count); Assert.AreEqual(expectedServiceId, compileMessageList.ServiceID); Assert.AreEqual(expectedDependants, compileMessageList.Dependants); Assert.AreEqual(1, compileMessageList.Dependants.Count); }
public void CompileMessageList_Count_Expected_Zero() { var compileMessageList = new CompileMessageList { MessageList = null }; Assert.AreEqual(0, compileMessageList.Count); }
void OnReceivedResourceAffectedMessage(Guid resourceId, CompileMessageList compileMessageList) { var numberOfDependants = compileMessageList.Dependants; if (resourceId == ContextualResourceModel.ID && numberOfDependants.Count > 0) { var showResourceChangedUtil = ResourceChangeHandlerFactory.Create(EventPublisher); Execute.OnUIThread(() => { showResourceChangedUtil.ShowResourceChanged(ContextualResourceModel, numberOfDependants); }); } }
static Mock <IEnvironmentConnection> SetupConnectionWithCompileMessageList(List <ICompileMessageTO> compileMessageTos, List <string> deps) { CompileMessageList compileMessageList = new CompileMessageList { MessageList = compileMessageTos, Dependants = deps }; var jsonSer = new Dev2JsonSerializer(); string serializeObject = jsonSer.Serialize(compileMessageList); var envConnection = new Mock <IEnvironmentConnection>(); envConnection.Setup(e => e.IsConnected).Returns(true); envConnection.Setup(c => c.ServerEvents).Returns(new EventPublisher()); envConnection.Setup(connection => connection.ExecuteCommand(It.IsAny <StringBuilder>(), It.IsAny <Guid>(), It.IsAny <Guid>())).Returns(new StringBuilder(serializeObject)); return(envConnection); }
public void SendResourcesAffectedMemo(Guid resourceId, IList <ICompileMessageTO> messages) { var msgs = new CompileMessageList { Dependants = new List <string>() }; messages.ToList().ForEach(s => msgs.Dependants.Add(s.ServiceName)); msgs.MessageList = messages; msgs.ServiceID = resourceId; var serializedMemo = _serializer.Serialize(msgs); var hubCallerConnectionContext = Clients; hubCallerConnectionContext.All.ReceiveResourcesAffectedMemo(serializedMemo); }
private void OnReceivedResourceAffectedMessage(Guid resourceId, CompileMessageList compileMessageList) { var numberOfDependants = compileMessageList.Dependants; if (resourceId == ContextualResourceModel.ID && numberOfDependants.Count > 0) { var showResourceChangedUtil = ResourceChangeHandlerFactory.Create(EventPublisher); Execute.OnUIThread(() => { numberOfDependants = compileMessageList.MessageList.Select(to => to.ServiceID.ToString()).Distinct(StringComparer.InvariantCultureIgnoreCase).ToList(); showResourceChangedUtil.ShowResourceChanged(ContextualResourceModel, numberOfDependants); }); } }
void SendResourcesAffectedMemo(Guid resourceId, IList <ICompileMessageTO> messages) { var msgs = new CompileMessageList { Dependants = new List <string>() }; messages.ToList().ForEach(s => msgs.Dependants.Add(s.ServiceName)); msgs.MessageList = messages; msgs.ServiceID = resourceId; var serializedMemo = _serializer.Serialize(msgs); if (!ResourceAffectedMessagesCache.ContainsKey(resourceId)) { ResourceAffectedMessagesCache.Add(resourceId, serializedMemo); } }
public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace) { string serviceId = null; string workspaceId = null; Dev2JsonSerializer serializer = new Dev2JsonSerializer(); var result = new ExecuteMessage { HasError = false }; StringBuilder tmp; values.TryGetValue("ServiceID", out tmp); if (tmp != null) { serviceId = tmp.ToString(); } values.TryGetValue("WorkspaceID", out tmp); if (tmp != null) { workspaceId = tmp.ToString(); } values.TryGetValue("FilterList", out tmp); if (tmp != null) { } if (string.IsNullOrEmpty(serviceId) || string.IsNullOrEmpty(workspaceId)) { throw new InvalidDataContractException("Null or empty ServiceID or WorkspaceID"); } Guid wGuid; Guid sGuid; Guid.TryParse(workspaceId, out wGuid); Guid.TryParse(serviceId, out sGuid); var thisService = ResourceCatalog.Instance.GetResource(wGuid, sGuid); var msgs = new CompileMessageList(); var dependants = new List <Guid>(); if (thisService != null) { var workspaceGuids = WorkspaceRepository.Instance.GetWorkspaceGuids(); workspaceGuids.ForEach(guid => { var union = dependants.Union(ResourceCatalog.Instance.GetDependants(guid, thisService.ResourceID)); dependants = union.ToList(); }); var enumerable = dependants.Select(a => { var resource = ResourceCatalog.Instance.GetResource(GlobalConstants.ServerWorkspaceID, a) ?? ResourceCatalog.Instance.GetResource(wGuid, a); return(resource == null?"": resource.ResourcePath); }); var deps = enumerable.Distinct().ToList(); if (deps.Count > 0) { // ReSharper disable ExpressionIsAlwaysNull msgs = new CompileMessageList(); var compileMessageTo = new CompileMessageTO { ErrorType = ErrorType.Critical, MessageType = CompileMessageType.MappingChange }; msgs.Dependants = new List <string>(); deps.ForEach(s => msgs.Dependants.Add(s)); msgs.MessageList = new List <ICompileMessageTO> { compileMessageTo }; // ReSharper restore ExpressionIsAlwaysNull return(serializer.SerializeToBuilder(msgs)); } } else { result.Message.Append("Could not locate service with ID [ " + sGuid + " ]"); } return(serializer.SerializeToBuilder(msgs)); }
public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace) { string serviceId = null; string workspaceId = null; Dev2JsonSerializer serializer = new Dev2JsonSerializer(); var result = new ExecuteMessage { HasError = false }; StringBuilder tmp; values.TryGetValue("ServiceID", out tmp); if (tmp != null) { serviceId = tmp.ToString(); } values.TryGetValue("WorkspaceID", out tmp); if (tmp != null) { workspaceId = tmp.ToString(); } values.TryGetValue("FilterList", out tmp); if (tmp != null) { } if (string.IsNullOrEmpty(serviceId) || string.IsNullOrEmpty(workspaceId)) { throw new InvalidDataContractException("Null or empty ServiceID or WorkspaceID"); } Guid wGuid; Guid sGuid; Guid.TryParse(workspaceId, out wGuid); Guid.TryParse(serviceId, out sGuid); var thisService = ResourceCatalog.Instance.GetResource(wGuid, sGuid); if (thisService != null) { var deps = thisService.Dependencies; CompileMessageType[] filters = null; // TODO : Convert string list to enum array ;) // ReSharper disable ExpressionIsAlwaysNull CompileMessageList msgs = CompileMessageRepo.Instance.FetchMessages(wGuid, sGuid, deps, filters); // ReSharper restore ExpressionIsAlwaysNull result.Message.Append(serializer.SerializeToBuilder(msgs)); } else { result.Message.Append("Could not locate service with ID [ " + sGuid + " ]"); result.HasError = true; } return(serializer.SerializeToBuilder(result)); }