/// <summary>
        /// Saves the run detail.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <returns></returns>
        /// <remarks></remarks>
        public DiagnosticsRunDetailItem SaveRunDetail(DiagnosticsRunDetailItem item)
        {
            var map = new DiagnosticsRunDetailItemMapper();

            try
            {
                using (var scp = new TransactionScope())
                {
                    if (FindRunDetail(item.Id) == null)
                    {
                        DiagnosticsRepositoryAgentFactory
                        .CreateDiagnosticsRunDetailRepositoryAgent()
                        .Insert(map.MapFromBusinessToService(item));
                    }
                    else
                    {
                        DiagnosticsRepositoryAgentFactory
                        .CreateDiagnosticsRunDetailRepositoryAgent()
                        .Update(map.MapFromBusinessToService(item));
                    }
                    scp.Complete();
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    item.AddError(ex.InnerException.Message);
                }
                item.AddError(ex.Message);
            }
            return(item);
        }
 /// <summary>
 /// Saves the detail item.
 /// </summary>
 /// <param name="current">The current.</param>
 /// <remarks></remarks>
 private void SaveDetailItem(DiagnosticsRunDetailItem current)
 {
     lock (sync)
     {
         DiagnosticsProviderFactory
         .CreateProvider()
         .SaveRunDetail(current);
     }
 }