コード例 #1
0
        private void SortImagesAndValidate(
            PresentationImageCollection orderedCollection,
            PresentationImageCollection nonOrderedCollection,
            bool reverse,
            IComparer <IPresentationImage> comparer,
            TraceDelegate trace)
        {
            if (reverse)
            {
                PresentationImageCollection reversedCollection = new PresentationImageCollection();
                for (int i = orderedCollection.Count - 1; i >= 0; --i)
                {
                    reversedCollection.Add(orderedCollection[i]);
                }

                orderedCollection = reversedCollection;
            }

            Randomize(orderedCollection, nonOrderedCollection);

            Debug.WriteLine("NON-ORDERED COLLECTION (PRE-SORT)\n");
            trace(nonOrderedCollection);

            //Be certain it is currently *not* in order.
            Assert.IsFalse(VerifyOrdered(orderedCollection, nonOrderedCollection));

            //Sort it.
            nonOrderedCollection.Sort(comparer);

            Debug.WriteLine("NON-ORDERED COLLECTION (POST-SORT)");
            trace(nonOrderedCollection);

            //It should now be in the proper order.
            Assert.IsTrue(VerifyOrdered(orderedCollection, nonOrderedCollection));
        }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class.
 /// </summary>
 /// <param name="trace">The trace.</param>
 public XAMUmpVideoStreamTelegram(TraceDelegate trace)
     : base(trace)
 {
     StreamFlags = new XAMUmpStreamFlags();
     SequenceID  = 0;
     StartLine   = 0;
     LineCount   = 0;
 }
コード例 #3
0
        public static XAMUmpMessageTelegram Create(int sequenceID, TraceDelegate trace)
        {
            System.Threading.Thread.Sleep(1000);

            List <byte> d = new List <byte>();

            d.AddRange(BitConverter.GetBytes(0));
            d.AddRange(BitConverter.GetBytes(sequenceID));

            // set audio play remote
            return(new XAMUmpMessageTelegram(UmpMessageID.VideoStart, 0, d.ToArray(), trace));
        }
コード例 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Plugin"/> class.
        /// </summary>
        /// <param name="childClassName">The <see cref=" cred="Type"/> of the derived class.</param>
        //internal Plugin(Type childClassName)
        //{
        //	this.ChildClassName = childClassName.ToString();
        //}

        /// <summary>
        /// Executes the plug-in.
        /// </summary>
        /// <param name="serviceProvider">The service provider.</param>
        /// <remarks>
        /// For improved performance, Microsoft Dynamics CRM caches plug-in instances.
        /// The plug-in's Execute method should be written to be stateless as the constructor
        /// is not called for every invocation of the plug-in. Also, multiple system threads
        /// could execute the plug-in at the same time. All per invocation state information
        /// is stored in the context. This means that you should not use global variables in plug-ins.
        /// </remarks>
        public void Execute(IServiceProvider serviceProvider)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }

            // Construct the Local plug-in context.
            using (LocalPluginContext localcontext = new LocalPluginContext(serviceProvider))
            {
                localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "Entered {0}.Execute()", this.ChildClassName));

                try
                {
                    Trace = m => localcontext.Trace(m);
                    // Iterate over all of the expected registered events to ensure that the plugin
                    // has been invoked by an expected event
                    // For any given plug-in event at an instance in time, we would expect at most 1 result to match.
                    Action <LocalPluginContext> entityAction =
                        (from a in this.RegisteredEvents
                         where (
                             a.Item1 == localcontext.PluginExecutionContext.Stage &&
                             a.Item2 == localcontext.PluginExecutionContext.MessageName &&
                             (String.IsNullOrWhiteSpace(a.Item3) ? true : a.Item3 == localcontext.PluginExecutionContext.PrimaryEntityName)
                             )
                         select a.Item4).FirstOrDefault();

                    if (entityAction != null)
                    {
                        localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "{0} is firing for Entity: {1}, Message: {2}", this.ChildClassName, localcontext.PluginExecutionContext.PrimaryEntityName, localcontext.PluginExecutionContext.MessageName));

                        entityAction.Invoke(localcontext);

                        // now exit - if the derived plug-in has incorrectly registered overlapping event registrations,
                        // guard against multiple executions.
                        return;
                    }
                }
                catch (FaultException <OrganizationServiceFault> e)
                {
                    localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "Exception: {0}", e.ToString()));

                    // Handle the exception.
                    throw;
                }
                finally
                {
                    localcontext.Trace(String.Format(CultureInfo.InvariantCulture, "Exiting {0}.Execute()", this.ChildClassName));
                }
            }
        }
コード例 #5
0
        public static List <Point> TraceCircle(Point center, int radius, TraceDelegate cb = null, object ctx = null)
        {
            List <Point> visited = new List <Point>();

            if (radius <= 0)
            {
                return(visited);
            }

            int    n      = radius * 12;
            double dtheta = 2.0 * Math.PI / n;

            for (int t = 0; t < n; t++)
            {
                double theta = t * dtheta;
                int    x     = (int)Math.Round((radius * Math.Cos(theta)));
                int    y     = (int)Math.Round((radius * Math.Sin(theta)));

                Point point = new Point(center.X + x, center.Y + y);

                bool skip = false;

                foreach (Point p in visited)
                {
                    if (p.X == point.X && p.Y == point.Y)
                    {
                        skip = true;
                        break;
                    }
                }

                if (skip)
                {
                    continue;
                }

                if (cb != null)
                {
                    int res = cb(point, ctx);
                    if (res < 0)
                    {
                        break;
                    }
                }

                visited.Add(point);
            }

            return(visited);
        }
コード例 #6
0
        public XAMUmpStream(XAMUmpDispatcher dispatcher, string ipAdr, int projectID, int firmwareVersion, int switchID, int designID, TraceDelegate trace)
        {
            this.dispatcher = dispatcher;
            this.trace      = trace;

            this.projectID       = projectID;
            this.firmwareVersion = firmwareVersion;
            this.switchID        = switchID;
            this.designID        = designID;

            destination = IPAddress.Parse(ipAdr);

            remoteAddressIdent = XAMUmUtils.GetSwitchIdentifier(projectID, switchID, designID);
            umpTelegram        = new XAMUmpTelegram(packageID, projectID, firmwareVersion, switchID, designID, trace);
        }
コード例 #7
0
        /// <summary>
        /// Creates the specified dt.
        /// </summary>
        /// <param name="dt">The dt.</param>
        /// <param name="trace">The trace.</param>
        /// <returns></returns>
        public static XAMUmpMessageTelegram Create(DateTime dt, TraceDelegate trace)
        {
            trace("datetime!", TracePrio.MESSAGE);
            List <byte> sndDatetime = new List <byte>();

            sndDatetime.Add((byte)dt.Second);
            sndDatetime.Add((byte)dt.Minute);
            sndDatetime.Add((byte)dt.Hour);
            sndDatetime.Add((byte)dt.DayOfWeek);
            sndDatetime.Add((byte)dt.Day);
            sndDatetime.Add((byte)dt.Month);
            sndDatetime.Add((byte)(dt.Year & 0xFF));
            sndDatetime.Add((byte)((dt.Year >> 8) & 0xFF));

            // set audio play remote
            return(new XAMUmpMessageTelegram(UmpMessageID.DateTime, 0, sndDatetime.ToArray(), trace));
        }
コード例 #8
0
        public static List <Point> TracePath(Dungeon map, Point from, Point to, TraceDelegate cb = null, object ctx = null)
        {
            List <Point> points = FindPath(map, from, to);

            if (points == null)
            {
                return(new List <Point>());
            }

            foreach (var point in points)
            {
                if (cb != null)
                {
                    int res = cb(point, ctx);
                    if (res < 0)
                    {
                        break;
                    }
                }
            }

            return(points);
        }
コード例 #9
0
        public static List <Point> TraceFov(Point point, int radius, TraceDelegate cb = null, object ctx = null)
        {
            FovState state = new FovState();

            List <Point> visited = new List <Point>();

            state.visited         = visited;
            state.originalCb      = cb;
            state.originalContext = ctx;

            if (cb != null)
            {
                int res = cb(point, ctx);
                if (res < 0)
                {
                    return(visited);
                }
            }

            visited.Add(point);

            int    n      = radius * 24;
            double dtheta = 2.0 * Math.PI / n;

            for (int t = 0; t < n; t++)
            {
                double theta = t * dtheta;
                int    x     = (int)Math.Round((radius * Math.Cos(theta)));
                int    y     = (int)Math.Round((radius * Math.Sin(theta)));

                Point end = new Point(point.X + x, point.Y + y);

                TraceLine(point, end, FovCallback, state);
            }

            return(visited);
        }
コード例 #10
0
        public static XAMUmpMessageTelegram Create(byte volume, Equalizer eq, XAMUmpPlayFlags playFlags, short incVolumeTime, short sequenceID, short bytesPerFrame, int delayBetweenFrames, string IpAdr, string AMSNetIp, TraceDelegate trace)
        {
            List <byte> d = new List <byte>();

            if (volume > 100)
            {
                volume = 100;
            }
            d.Add((byte)volume);                                          // Volume 100 = maximum
            d.Add((byte)eq);                                              // equalizer 0 = normal
            byte[] pf = playFlags.GetBytes();
            d.Add(pf[0]);                                                 // playfalsgs 2  00001  = ignore AMSNetID
            d.Add(pf[1]);                                                 // playfalsgs 0
            d.AddRange(BitConverter.GetBytes(incVolumeTime));             // inc volume time
            d.AddRange(BitConverter.GetBytes(sequenceID));
            d.AddRange(BitConverter.GetBytes(bytesPerFrame));             // bytes per frame 882 = default
            d.Add((byte)0);                                               // reserved
            d.Add((byte)0);                                               // reserved
            d.AddRange(BitConverter.GetBytes((Int32)delayBetweenFrames)); // delay between frames
            byte[] ip = IPAddress.Parse(IpAdr).GetAddressBytes();
            d.Add(ip[0]);                                                 // ip address // 255.255.255.255 = exapt all
            d.Add(ip[1]);                                                 // ip address // 255.255.255.255 = exapt all
            d.Add(ip[2]);                                                 // ip address // 255.255.255.255 = exapt all
            d.Add(ip[3]);                                                 // ip address // 255.255.255.255 = exapt all

            byte[] ams = IPAddress.Parse(AMSNetIp).GetAddressBytes();
            d.Add(ams[0]);  // ip address // 255.255.255.255 = exapt all
            d.Add(ams[1]);  // ip address // 255.255.255.255 = exapt all
            d.Add(ams[2]);  // ip address // 255.255.255.255 = exapt all
            d.Add(ams[3]);  // ip address // 255.255.255.255 = exapt all
            d.Add((byte)1); // AMSnetID
            d.Add((byte)1); // AMSnetID

            d.Add((byte)0); // reserved
            d.Add((byte)0); // reserved

            // set audio play remote
            return(new XAMUmpMessageTelegram(UmpMessageID.AudioPlayRemote, 0, d.ToArray(), trace));
        }
コード例 #11
0
 public ControlVseSystem()
 {
     InitializeComponent();
     //dockAnalyzers.Collapsed = true;
     ctlConsole.Dispatcher        = new ConsoleDispatcher();
     ctlConsole.Name              = "ctlConsole";
     ctlConsole.Dock              = DockStyle.Fill;
     ctlConsole.SendTcpipCommand += new StringDelegate(ctlConsole_SendTcpipCommand);
     panelConsole.Controls.Add(ctlConsole);
     #region Set Summary Bindings
     see1.DataBindings.Add("Text", _vseDataSet.SeeServer_Summary,
                           "PID");
     see2.DataBindings.Add("Text", _vseDataSet.SeeServer_Summary,
                           "Job_Name");
     see3.DataBindings.Add("Text", _vseDataSet.SeeServer_Summary,
                           "SeeServer_Start_Time");
     //see4 - SessionStartTime - update in OnAllIpDataRcvd
     time1.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                            "Last_IPL_Time");
     time2.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                            "Last_CpuReset_Time");
     time3.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                            "TCPIP_Start_Time");
     tcp1.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "PID");
     tcp2.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "Job_Name");
     tcp3.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "IP_Address");
     tcp4.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "Release");
     tcp5.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "License");
     tcp6.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "Sys_ID");
     tcp7.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "Nof_TCPIP_PseudoTasks");
     tcp8.DataBindings.Add("Text", _vseDataSet.TCPIP_Summary,
                           "Nof_TCPIP_Connections");
     vse1.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Release");
     vse2.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Power_Node");
     vse3.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Power_Sys_ID");
     vse4.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Nof_Allocated_Partitions");
     //vse5 - ActivePartitions - update in OnPollDataRcvd
     vse6.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Nof_Cpus");
     vse7.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Nof_Active_Cpus");
     vse8.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Nof_Quiesced_Cpus");
     vse9.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Nof_TCPIP_Stacks");
     vse10.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                            "Nof_Active_Tasks");
     cpu1.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                           "Cpu_ID");
     #endregion
     infoUpdated.DataBindings.Add("Text", _vseDataSet.VSE_Summary,
                                  "Poll_Time");
     TraceStatusChanged += new TraceDelegate(OnTraceStatusChanged);
     PollDataRcvd       += new DateTimeDelegate(UpdatePollMonitors);
 }
コード例 #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class.
 /// </summary>
 /// <param name="trace">The trace.</param>
 public XAMUmpMessageTelegram(UmpMessageID messageID, int actorID, byte[] value, TraceDelegate trace)
     : base(trace)
 {
     this.MessageID = messageID;
     this.ActorID   = actorID;
     this.Value     = value;
 }
コード例 #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class.
 /// </summary>
 /// <param name="trace">The trace.</param>
 public XAMUmpMessageTelegram(TraceDelegate trace)
     : base(trace)
 {
 }
コード例 #14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class.
 /// </summary>
 /// <param name="trace">The trace.</param>
 public XAMUmpTelegram(int packageID, int projectID, int firmwareVersion, int switchId, int designId, TraceDelegate trace)
     : base(trace)
 {
     FrameID         = 0x8601;
     FrameVersion    = 0x0220;
     PackageID       = packageID;
     ProjectID       = projectID;
     FirmwareVersion = firmwareVersion;
     SwitchId        = switchId;
     DesignId        = designId;
 }
コード例 #15
0
ファイル: OtpTrace.cs プロジェクト: e42s/jungerl
 public void registerTraceHandler(TraceDelegate handler)
 {
     onTraceEvent = handler;
 }
コード例 #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class.
 /// </summary>
 /// <param name="trace">The trace.</param>
 public XAMUmpVideoStreamTelegram(XAMUmpStreamFlags streamFlags, int sequenceID, short startLine, short lineCount, byte[] videoData, TraceDelegate trace)
     : base(trace)
 {
     StreamFlags = streamFlags;
     SequenceID  = sequenceID;
     StartLine   = startLine;
     LineCount   = lineCount;
     VideoData   = videoData;
 }
コード例 #17
0
 public static XAMUmpMessageTelegram Create(byte volume, Equalizer eq, short sequenceID, string AMSNetID, TraceDelegate trace)
 {
     return(Create(volume, eq, new XAMUmpPlayFlags()
     {
         IgnoreAMSNetID = true
     }, 0, sequenceID, 882, 20000, "255.255.255.255", AMSNetID, trace));
 }
コード例 #18
0
ファイル: Tracer.cs プロジェクト: alexshemesh/ManagmentApp
        public override void Trace(Object Component, String Message)
        {
            String MessageToAdd = String.Format("[{0}\t] {1} ",Component.GetType().Name, Message);
              TraceDelegate dlgt = new TraceDelegate(Trace);

              AsyncCallback ac = new AsyncCallback(FireEventCallback);

              dlgt.BeginInvoke(MessageToAdd, ac, dlgt);
        }
コード例 #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class.
 /// </summary>
 /// <param name="trace">The trace.</param>
 public XAMUmpDispatcher(TraceDelegate trace)
 {
     this.Trace = trace;
 }
コード例 #20
0
 public static XAMUmpMessageTelegram Create(TraceDelegate trace)
 {
     return(new XAMUmpMessageTelegram(UmpMessageID.VideoState, 0, new byte[0], trace));
 }
コード例 #21
0
ファイル: Trace.cs プロジェクト: Niscort/Borderless-Gaming
 public static void AddTraceLogger(TraceDelegate traceAction)
 {
     _traceDelegates.Add(traceAction);
 }
コード例 #22
0
ファイル: Trace.cs プロジェクト: jose1532/Ulterius
 public static void AddTraceLogger(TraceDelegate traceAction)
 {
     _traceDelegates.Add(traceAction);
 }
コード例 #23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XAMUmpTelegram"/> class.
 /// </summary>
 /// <param name="trace">The trace.</param>
 public XAMUmpTelegram(TraceDelegate trace)
     : base(trace)
 {
     FrameID      = 0x8601;
     FrameVersion = 0x0201;
 }
コード例 #24
0
ファイル: OtpTrace.cs プロジェクト: trompa/jungerl
 public void registerTraceHandler(TraceDelegate handler)
 {
     onTraceEvent = handler;
 }
コード例 #25
0
        // https://rosettacode.org/wiki/Bitmap/Bresenham%27s_line_algorithm#C.2B.2B

        public static List <Point> TraceLine(Point start, Point end, TraceDelegate cb = null, object ctx = null)
        {
            List <Point> visited = new List <Point>();

            int x0 = start.X;
            int x1 = end.X;
            int y0 = start.Y;
            int y1 = end.Y;

            if (x0 == x1 && y0 == y1)
            {
                Point p0 = new Point(x0, y0);

                visited.Add(p0);

                if (cb != null)
                {
                    cb(p0, ctx);
                }

                return(visited);
            }

            int dx = Math.Abs(x1 - x0), sx = x0 < x1 ? 1 : -1;
            int dy = Math.Abs(y1 - y0), sy = y0 < y1 ? 1 : -1;
            int err = (dx > dy ? dx : -dy) / 2, e2;

            for (;;)
            {
                Point point = new Point(x0, y0);

                bool skip = false;

                foreach (Point p in visited)
                {
                    if (p.X == point.X && p.Y == point.Y)
                    {
                        skip = true;
                        break;
                    }
                }

                if (skip)
                {
                    continue;
                }

                if (cb != null)
                {
                    int res = cb(point, ctx);
                    if (res < 0)
                    {
                        break;
                    }
                }

                if (x0 == x1 && y0 == y1)
                {
                    break;
                }
                e2 = err;
                if (e2 > -dx)
                {
                    err -= dy; x0 += sx;
                }
                if (e2 < dy)
                {
                    err += dx; y0 += sy;
                }

                visited.Add(point);
            }

            return(visited);
        }