static void RunSample()
        {
            ReflectInsight ri = new ReflectInsight();

            while (true)
            {
                Console.WriteLine("Press any key to run test or press 'q' to quit...");

                ConsoleKeyInfo k = Console.ReadKey();
                if (k.KeyChar == 'q')
                {
                    break;
                }

                ri.SendMsg("Message");
                ri.SendDebug("Debug");
                ri.SendTrace("Trace");
                ri.SendInformation("Information");
                ri.SendWarning("Warning");
                ri.SendError("Error");
                ri.SendFatal("Fatal");
                ri.SendException("Exception", new Exception("Look at inner exception for more details", new Exception("Some major exception occurred")));

                ri.Send(ReflectSoftware.Insight.Common.MessageType.SendError, "Error with details", "These are the details of this error");
                ri.Send(ReflectSoftware.Insight.Common.MessageType.SendTrace, "Trace with details", "These are the details of this trace");

                using (DataSet DataSet1 = new DataSet())
                {
                    DataSet1.ReadXml(String.Format(@"{0}Samples\dataset.xml", AppDomain.CurrentDomain.BaseDirectory), XmlReadMode.Auto);

                    ri.SendDataTable("Data Table", DataSet1.Tables[3]);
                }

                ri.SendImage("Hello, World", String.Format(@"{0}Samples\earth.jpg", AppDomain.CurrentDomain.BaseDirectory));
                ri.SendStream("Some Stream", String.Format(@"{0}Samples\Earth.jpg", AppDomain.CurrentDomain.BaseDirectory));
            }
        }
Exemple #2
0
        static void ThreadDemoBackorder(Object state)
        {
            // Attach Request Extended data
            Random rnd1 = new Random((Int32)DateTime.Now.Ticks + (Int32)state);

            String source = Sources[rnd1.Next(Sources.Length)];

            RIExtendedMessageProperty.AttachToRequest("Company Information", "ClientID", String.Format("{0:D4}", rnd1.Next(10000)));
            RIExtendedMessageProperty.AttachToRequest("Company Information", "CompanyID", String.Format("{0:D5}", rnd1.Next(100000)));
            RIExtendedMessageProperty.AttachToRequest("Company Information", "Source", source);

            ReflectInsight ri = RILogManager.Get("Backorder");

            using (ri.TraceMethod("Starting Backorder thread block"))
            {
                try
                {
                    ri.SendThreadInformation();
                    Thread.Sleep(500);

                    Int32 poNumber = rnd1.Next(100000);

                    using (ri.TraceMethod("Initiating purchase order: {0}", String.Format("{0:D5}", poNumber)))
                    {
                        ri.SendDataSet("Customer order information loaded", DataSet1);
                        Thread.Sleep(500);

                        using (ri.TraceMethod("Validate Customer"))
                        {
                            ri.SendCheckmark("Customer certificate validation successfully", Checkmark.Green);
                            ri.SendCheckmark("Customer threshold is within fair standings", Checkmark.Yellow);

                            Thread.Sleep(500);
                            using (ri.TraceMethod("Validate Customer Backorders"))
                            {
                                ri.SendInformation("Backorders detected: {0}", rnd1.Next(20));
                                ri.SendMsg("Processing {0} records", rnd1.Next(21, 200));
                            }

                            using (ri.TraceMethod("Preparing source configuration data for state: '{0}'", source))
                            {
                                ri.SendMsg("Reading source configuration data");

                                if (source == "Georgia")
                                {
                                    ri.SendError("Unable to retrieve source data for state: '{0}'. Source data is either missing or isn't properly configured.", source);
                                    Thread.Sleep(1000);
                                    ri.SendXMLFile("See failed configuration", String.Format(@"{0}Samples\state_config.xml", AppDomain.CurrentDomain.BaseDirectory));

                                    // show dummy configuration file
                                    using (ri.TraceMethod("Requeuing order: {0}", poNumber))
                                    {
                                        ri.SendMsg("Recoil start indicators");
                                        ri.SendTimestamp("Requeued Timestamp");
                                    }

                                    return;
                                }

                                Thread.Sleep(500);
                                ri.SendCheckmark("Source configuration data was successfully loaded", Checkmark.Green);
                            }
                        }

                        using (ri.TraceMethod("Processing order: {0}", poNumber))
                        {
                            try
                            {
                                if (source == "Minnesota")
                                {
                                    ri.SendError("item 3 'Quantity' value exceeds customer's threshold limit of 20, for PartNumber: '872-AX'");
                                    ri.SendWarning("Order: {0} was not processed due to exceeding threshold limit: 'Quantity'", poNumber);
                                    Thread.Sleep(1000);
                                    ri.SendXMLFile(String.Format("See failed order: {0}", poNumber), String.Format(@"{0}Samples\purchase_order.xml", AppDomain.CurrentDomain.BaseDirectory));

                                    Thread.Sleep(100);
                                    using (ri.TraceMethod("Prepare CRM failed compensation report workflow"))
                                    {
                                        ri.SendMsg("Establish CRM connection");
                                        Thread.Sleep(100);
                                        ri.SendCheckmark("CRM connection successfully establised", Checkmark.Green);

                                        Thread.Sleep(100);
                                        using (ri.TraceMethod("Insert CRM failed compensation report"))
                                        {
                                            ri.SendMsg("Insert compensation");
                                            ri.SendMsg("Insert item status");
                                            ri.SendMsg("CRM record id: {0}", rnd1.Next(10000, 100000));
                                            ri.SendTimestamp("CRM Timestamp");
                                        }
                                    }

                                    return;
                                }

                                ri.SendCheckmark(String.Format("Successfully processed {0} order items", rnd1.Next(1, 50)), Checkmark.Green);
                                ri.SendMsg("Preparing reciept");
                                ri.SendMsg("Preparing client processed notification");
                                ri.SendMsg("Preparing dispatch record");

                                Thread.Sleep(500);
                                using (ri.TraceMethod("Prepare CRM reciept workflow"))
                                {
                                    ri.SendMsg("Establish CRM connection");
                                    Thread.Sleep(100);
                                    if (source == "Michigan")
                                    {
                                        SecurityException e1 = new SecurityException("Account is disabled. Please contact IT Support.");
                                        ri.SendException(new Exception("Unable to connect to client's CRM system. Please see inner exception for more details", e1));
                                        return;
                                    }

                                    Thread.Sleep(500);
                                    ri.SendCheckmark("CRM connection successfully establised", Checkmark.Green);

                                    using (ri.TraceMethod("Insert CRM order process completion"))
                                    {
                                        ri.SendMsg("Insert reciept");
                                        ri.SendMsg("Insert dispatch record");
                                        ri.SendMsg("CRM record id: {0}", rnd1.Next(10000, 100000));
                                        ri.SendTimestamp("CRM Timestamp");
                                    }
                                }

                                ri.SendCheckmark(String.Format("Order: {0} was successfully processed", poNumber), Checkmark.Green);
                            }
                            catch (Exception)
                            {
                                using (ri.TraceMethod("Reverting order: {0} due to fatal error.", poNumber))
                                {
                                    ri.SendCheckmark("Order successfuly reverted", Checkmark.Green);
                                    using (ri.TraceMethod("Requeuing order: {0}", poNumber))
                                    {
                                        ri.SendMsg("Recoil start indicators");
                                        ri.SendTimestamp("Requeued Timestamp");
                                    }
                                }

                                throw;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ri.SendException(ex);
                }
            }
        }