示例#1
0
        /// <summary>
        /// Converts Freeform entity message to Moitor entity message
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public MonitorEntity_MsgTgt CreateTargetEntity(IMonitorEntity parent, IFreeformEntity_MsgTgt request)
        {
            using (ILogMethod method = Log.LogMethod(this.DYN_MODULE_NAME, "CreateTargetEntity"))
            {
                MonitorEntity_MsgTgt result = null;

                try
                {
                    IFreeformEntity child = request;
                    if (child.IsLeafNode)
                    {
                        return(null);
                    }

                    string key = child.GetType().FullName;
                    if (!child.EntityKey.IsEmpty())
                    {
                        key += "_" + child.EntityKey;
                    }
                    if (_tgtParserMappingsByTypeG2H.ContainsKey(key))
                    {
                        IMonTgtParser parser = _tgtParserMappingsByTypeG2H[key];
                        MonTgtParserMappingG2HAttribute mappingAttribute = parser.MappingAttributeG2H;
                        result = parser.CreateEntity(parent, child) as MonitorEntity_MsgTgt;
                        if (result != null)
                        {
                            result.FaultSource = mappingAttribute.FaultSource;
                            if (mappingAttribute.FaultType != -1)
                            {
                                result.FaultType = mappingAttribute.FaultType;
                            }
                            result.ExtraAttribute = mappingAttribute;
                        }
                    }
                }
                catch (Exception ex)
                {
                    method.Exception(ex);
                }

                return(result);
            }
        }
示例#2
0
        /// <summary>
        /// Converts Monitor entity message to Freeform entity message
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Freeform entity message.</returns>
        public FFMsg_H2G CreateEntity(MonMsg_H2G request)
        {
            using (ILogMethod method = Log.LogMethod(this.DYN_MODULE_NAME, "CreateEntity"))
            {
                FFMsg_H2G result = null;
                try
                {
                    if (request == null || request.Targets.Count == 0)
                    {
                        Log.Info("Unable to create the freeform message (Invalid targets found).");
                        return(null);
                    }

                    string key = request.FaultSourceTypeKey;

                    foreach (var monTgt in request.Targets)
                    {
                        IMonTgtParser parser = null;
                        MonTgtParserMappingH2GAttribute mappingAttribute = null;

                        //if (_tgtParserMappingsH2G.ContainsKey(key))
                        //{
                        //    parser = _tgtParserMappingsH2G[key];
                        //    mappingAttribute = parser.MappingAttributeH2G;
                        //}

                        //if (parser == null)
                        //{
                        key = monTgt.GetType().FullName;
                        if (_tgtParserMappingsByTypeH2G.ContainsKey(key))
                        {
                            parser           = _tgtParserMappingsByTypeH2G[key];
                            mappingAttribute = parser.MappingAttributeH2G;
                        }
                        //}

                        if (parser != null)
                        {
                            IFreeformEntity_MsgTgt ffTgt = parser.CreateEntity(request, monTgt) as IFreeformEntity_MsgTgt;
                            if (ffTgt != null)
                            {
                                if (result == null)
                                {
                                    result = FreeformEntityFactory.CreateEntity <FFMsg_H2G>(FF_FlowDirection.H2G,
                                                                                            new FFCreateEntityRequest_H2G()
                                    {
                                        PollCode  = mappingAttribute.PollCode,
                                        SessionID = mappingAttribute.SessionID,
                                        IPAddress = request.IpAddress,
                                    });
                                    result.InstallationNo = request.InstallationNo;
                                }
                                result.Targets.Add(ffTgt);
                            }
                        }
                    }

                    if (result == null)
                    {
                        Log.Info("Unable to create the freeform message");
                        return(null);
                    }
                }
                catch (Exception ex)
                {
                    method.Exception(ex);
                }

                return(result);
            }
        }