internal static void LeaveReachabilityBreadcrumb(BreadcrumbReachabilityType change, string reachabilityType)
        {
            // 4 - network change ; {change:,type:}
            ////////////////////////////////////////////////////////////////
            // 4 - Network change
            // Used to convey various changes to the network connectivity of the
            // device.
            // Properties:
            // change - number, type of network change that occurred
            // 2 - connectivity type gained                    ; type
            // 3 - connectivity type lost                      ; type
            // reachabilityType - string, connection type
            // only applies to change types 2 and 3
            // oldType - string, previous connection type
            // only applies to change type 4
            // newType - string, new connection type
            // only applies to change type 4
            // EXAMPLE:
            // network event, connectivity type gained, "wifi"
            // ["1992-04-26T13:12:38Z", 4, {change: 2, type: "wifi"}],
            ////////////////////////////////////////////////////////////////
            Debug.Assert(((change == BreadcrumbReachabilityType.Gained) || (change == BreadcrumbReachabilityType.Lost)),
                         "Illegal change arg for LeaveReachabilityBreadcrumb");
            Dictionary <string, Object> data = new Dictionary <string, Object>();

            data["change"] = change;
            data["type"]   = reachabilityType;
            SystemBreadcrumbs().AddBreadcrumb(BreadcrumbType.Reachability, data);
        }
        internal static void LeaveReachabilityBreadcrumb(BreadcrumbReachabilityType change)
        {
            // 4 - network change ; {change:}
            ////////////////////////////////////////////////////////////////
            // 4 - Network change
            // Used to convey various changes to the network connectivity of the
            // device.
            // Properties:
            // change - number, type of network change that occurred
            // 0 - internet connection up                      ;
            // 1 - internet connection down                    ;
            // EXAMPLE:
            // network event, internet connectivity gained
            // ["1992-04-26T13:12:36Z", 4, {change: 0}],
            ////////////////////////////////////////////////////////////////
            Debug.Assert(((change == BreadcrumbReachabilityType.Up) || (change == BreadcrumbReachabilityType.Down)),
                         "Illegal change arg for LeaveReachabilityBreadcrumb");
            Dictionary <string, Object> data = new Dictionary <string, Object>();

            data["change"] = change;
            SystemBreadcrumbs().AddBreadcrumb(BreadcrumbType.Reachability, data);
        }
        internal static void LeaveReachabilityBreadcrumb(BreadcrumbReachabilityType change, string oldType, string newType)
        {
            // 4 - network change ; {change:,oldType:,newType:}
            ////////////////////////////////////////////////////////////////
            // 4 - Network change
            // Used to convey various changes to the network connectivity of the
            // device.
            // Properties:
            // change - number, type of network change that occurred
            // 4 - switch from one connection type to another  ; oldType,newType
            // oldType - string, previous connection type
            // only applies to change type 4
            // newType - string, new connection type
            // only applies to change type 4
            ////////////////////////////////////////////////////////////////
            Debug.Assert((change == BreadcrumbReachabilityType.Switch),
                         "Illegal change arg for LeaveReachabilityBreadcrumb");
            Dictionary <string, Object> data = new Dictionary <string, Object>();

            data["change"]  = change;
            data["oldType"] = oldType;
            data["newType"] = newType;
            SystemBreadcrumbs().AddBreadcrumb(BreadcrumbType.Reachability, data);
        }