예제 #1
0
        private NHEntityStatistics Get(IStatistics statistics, string entityName)
        {
            var result = new NHEntityStatistics();

            try
            {
                var entityType = GetEntityType(statistics, entityName);
                result.EntityType = entityType;
                result.EntityName = entityName;
                switch (entityType)
                {
                case "Entity":
                    var entityStatistics = statistics.GetEntityStatistics(entityName);
                    result.DeleteCount            = entityStatistics.DeleteCount;
                    result.FetchCount             = entityStatistics.FetchCount;
                    result.InsertCount            = entityStatistics.InsertCount;
                    result.LoadCount              = entityStatistics.LoadCount;
                    result.OptimisticFailureCount = entityStatistics.OptimisticFailureCount;
                    result.UpdateCount            = entityStatistics.UpdateCount;
                    result.EntityName             = entityStatistics.CategoryName;
                    break;

                case "Collection":
                    var collectionStatistics = statistics.GetCollectionStatistics(entityName);
                    result.DeleteCount   = collectionStatistics.RemoveCount;
                    result.FetchCount    = collectionStatistics.FetchCount;
                    result.LoadCount     = collectionStatistics.LoadCount;
                    result.RecreateCount = collectionStatistics.RecreateCount;
                    result.UpdateCount   = collectionStatistics.UpdateCount;
                    result.EntityName    = collectionStatistics.CategoryName;
                    break;

                default:
                    result.EntityType = "Unknown";
                    break;
                }
            }
            catch (Exception e)
            {
                _log.Error($"{_nameOfThis} - Failed to Get Statistics for {entityName}, by {_nameOfThis}: {e.Message}");
                _log.Debug($"{_nameOfThis} - Failed to Get Statistics for {entityName}, by {_nameOfThis}: {e.StackTrace}");
                if (!ContinueOnError)
                {
                    throw;
                }
            }

            return(result);
        }