Exemple #1
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Start");

            var order = new Order();

            using (var audit = AuditScope.Create("Order:Update", () => order, new { UserName = "******" }))
            {
                Console.WriteLine("Audit");
                order.Status = EnumStatus.Finish;

                audit.Comment("commit");
            }

            AuditScope auditScope = null;

            try
            {
                auditScope = await AuditScope.CreateAsync("Test:Identity", () => order, new { user = "******" });

                {
                    order.Status = EnumStatus.Start;
                }
                auditScope.Comment("01");
            }
            finally
            {
                if (auditScope != null)
                {
                    await auditScope.DisposeAsync();
                }
            }

            Console.ReadKey();
        }
            public void TestUpdate()
            {
                var order      = DbCreateOrder();
                var reasonText = "the order was updated because ...";
                var eventType  = "Order:Update";

                //struct
                using (var a = AuditScope.Create(eventType, () => new TestStruct()
                {
                    Id = 123, Order = order
                },
                                                 new { ReferenceId = order.OrderId }))
                {
                    a.SetCustomField("TestGuid", Guid.NewGuid());
                    order = DbOrderUpdateStatus(order, OrderStatus.Submitted);
                }

                order = DbCreateOrder();

                //audit multiple
                using (AuditScope.Create(eventType, () => new { OrderStatus = order.Status, Items = order.OrderItems },
                                         new { ReferenceId = order.OrderId }))
                {
                    order = DbOrderUpdateStatus(order, OrderStatus.Submitted);
                }

                order = DbCreateOrder();


                using (var audit = AuditScope.Create("Order:Update", () => order.Status, new { ReferenceId = order.OrderId }))
                {
                    audit.SetCustomField("Reason", reasonText);
                    audit.SetCustomField("ItemsBefore", order.OrderItems);
                    audit.SetCustomField("FirstItem", order.OrderItems.FirstOrDefault());

                    order = DbOrderUpdateStatus(order, IntegrationTests.OrderStatus.Submitted);
                    audit.SetCustomField("ItemsAfter", order.OrderItems);
                    audit.Comment("Status Updated to Submitted");
                    audit.Comment("Another Comment");
                }

                order = DbCreateOrder();

                using (var audit = new AuditScope(eventType, () => order, new { ReferenceId = order.OrderId }))
                {
                    audit.SetCustomField("Reason", "reason");
                    ExecuteStoredProcedure(order, IntegrationTests.OrderStatus.Submitted);
                    order.Status = IntegrationTests.OrderStatus.Submitted;
                    audit.Comment("Status Updated to Submitted");
                }

                order = DbCreateOrder();
            }