public static void Flush(this SSOMSharePoint wrapper, bool hasError = false, string errorMsg = "")
        {
            if (wrapper == null)
            {
                return;
            }

            var endTime  = DateTime.UtcNow;
            var duration = endTime.Subtract(wrapper.StartTimeUTC);

            wrapper.EndTimeUTC             = endTime;
            wrapper.DurationTicks          = duration.Ticks;
            wrapper.DurationTicksPerSecond = (int)duration.TotalSeconds;
            wrapper.Error        = hasError;
            wrapper.ErrorMessage = hasError ? errorMsg : string.Empty;
        }
        /// <summary>
        /// Generate a generic wrapper object
        /// </summary>
        /// <param name="method"></param>
        /// <returns></returns>
        public static SSOMSharePoint InitWrapper(string method)
        {
            var wrapper = new SSOMSharePoint();

            wrapper.StartTimeUTC = DateTime.UtcNow;
            wrapper.URL          = System.Web.HttpContext.Current != null?System.Web.HttpContext.Current.Request.Url.ToString() : "";

            var userName = System.Web.HttpContext.Current != null ? System.Web.HttpContext.Current.User.Identity.Name : "";

            if (!string.IsNullOrEmpty(userName))
            {
                wrapper.UserName   = userName.Substring(userName.IndexOf('\\') + 1);
                wrapper.UserDomain = userName.Substring(0, userName.IndexOf('\\'));
            }
            wrapper.Version     = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            wrapper.Machine     = System.Net.Dns.GetHostName();
            wrapper.Method      = method;
            wrapper.Culture     = System.Globalization.CultureInfo.CurrentCulture.ToString();
            wrapper.CultureName = System.Globalization.CultureInfo.CurrentCulture.DisplayName;
            return(wrapper);
        }