コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        /// <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 };
        }