public void CompileMessageTO_Clone_ShouldCloneAllProperties() { //------------Setup for test-------------------------- var message = new CompileMessageTO(); var uniqueID = Guid.NewGuid(); var workspaceID = Guid.NewGuid(); const string serviceName = "Some Service Name"; var messageID = Guid.NewGuid(); var serviceID = Guid.NewGuid(); const ErrorType errorType = ErrorType.Critical; const FixType fixType = FixType.ReloadMapping; const CompileMessageType messageType = CompileMessageType.MappingChange; const string messagePayload = "Test Fix Data"; message.UniqueID = uniqueID; message.WorkspaceID = workspaceID; message.ServiceID = serviceID; message.MessageID = messageID; message.ErrorType = errorType; message.ServiceName = serviceName; message.MessageType = messageType; message.MessagePayload = messagePayload; //------------Execute Test--------------------------- var clonedTO = message.Clone(); //------------Assert Results------------------------- Assert.AreEqual(workspaceID, clonedTO.WorkspaceID); Assert.AreEqual(messageID, clonedTO.MessageID); Assert.AreEqual(serviceID, clonedTO.ServiceID); Assert.AreEqual(uniqueID, clonedTO.UniqueID); Assert.AreEqual(serviceName, clonedTO.ServiceName); Assert.AreEqual(errorType, clonedTO.ErrorType); Assert.AreEqual(fixType, clonedTO.ToFixType()); Assert.AreEqual(messageType, clonedTO.MessageType); Assert.AreEqual(messagePayload, clonedTO.MessagePayload); }
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; }
/// <summary> /// Fetches the messages. /// </summary> /// <param name="workspaceId">The workspace ID.</param> /// <param name="serviceId">The service ID.</param> /// <param name="deps">The deps.</param> /// <param name="filter">The filter.</param> /// <returns></returns> public CompileMessageList FetchMessages(Guid workspaceId, Guid serviceId, IList<IResourceForTree> deps, CompileMessageType[] filter = null) { IList<ICompileMessageTO> result = new List<ICompileMessageTO>(); lock(Lock) { IList<ICompileMessageTO> messages; if(_messageRepo.TryGetValue(workspaceId, out messages)) { // Fetch dep list and process ;) if(deps != null) { foreach(var d in deps) { IResourceForTree d1 = d; var candidateMessage = messages.Where(c => c.ServiceID == d1.ResourceID); var compileMessageTos = candidateMessage as IList<ICompileMessageTO> ?? candidateMessage.ToList(); foreach(var msg in compileMessageTos) { if(filter != null) { // TODO : Apply filter logic ;) } else { // Adjust unique id for return so design surface understands where message goes ;) var tmpMsg = msg.Clone(); tmpMsg.UniqueID = d1.UniqueID; result.Add(tmpMsg); } } } } } } return new CompileMessageList { MessageList = result, ServiceID = serviceId }; }