diff --git a/Orm/Xtensive.Orm/Comparison/ComparerProvider.cs b/Orm/Xtensive.Orm/Comparison/ComparerProvider.cs index 972d8e81cb..1adec5cc24 100644 --- a/Orm/Xtensive.Orm/Comparison/ComparerProvider.cs +++ b/Orm/Xtensive.Orm/Comparison/ComparerProvider.cs @@ -66,10 +66,12 @@ protected override TAssociate CreateAssociate(out Type foundFo // the comparer. var comparer = base.CreateAssociate(out foundFor); if (foundFor == null) { - CoreLog.Warning(nameof(Strings.LogCantFindAssociateFor), - TypeSuffixes.ToDelimitedString(" \\ "), - typeof(TAssociate).GetShortName(), - typeof(TKey).GetShortName()); + if (CoreLog.IsLogged(Orm.Logging.LogLevel.Warning)) { + CoreLog.Warning(nameof(Strings.LogCantFindAssociateFor), + TypeSuffixes.ToDelimitedString(" \\ "), + typeof(TAssociate).GetShortName(), + typeof(TKey).GetShortName()); + } return null; } if (foundFor == typeof(TKey)) { @@ -77,19 +79,23 @@ protected override TAssociate CreateAssociate(out Type foundFo } associate = BaseComparerWrapperType.Activate(new[] { typeof(TKey), foundFor }, ConstructorParams) as TAssociate; if (associate != null) { - CoreLog.Warning(nameof(Strings.LogGenericAssociateIsUsedFor), + if (CoreLog.IsLogged(Orm.Logging.LogLevel.Warning)) { + CoreLog.Warning(nameof(Strings.LogGenericAssociateIsUsedFor), BaseComparerWrapperType.GetShortName(), - typeof (TKey).GetShortName(), + typeof(TKey).GetShortName(), foundFor.GetShortName(), - typeof (TKey).GetShortName()); + typeof(TKey).GetShortName()); + } return associate; } else { - CoreLog.Warning(nameof(Strings.LogGenericAssociateCreationHasFailedFor), + if (CoreLog.IsLogged(Orm.Logging.LogLevel.Warning)) { + CoreLog.Warning(nameof(Strings.LogGenericAssociateCreationHasFailedFor), BaseComparerWrapperType.GetShortName(), - typeof (TKey).GetShortName(), + typeof(TKey).GetShortName(), foundFor.GetShortName(), - typeof (TKey).GetShortName()); + typeof(TKey).GetShortName()); + } return null; } } diff --git a/Orm/Xtensive.Orm/IoC/ServiceContainer.cs b/Orm/Xtensive.Orm/IoC/ServiceContainer.cs index b29104ff7b..0574bbfbb6 100644 --- a/Orm/Xtensive.Orm/IoC/ServiceContainer.cs +++ b/Orm/Xtensive.Orm/IoC/ServiceContainer.cs @@ -27,7 +27,7 @@ namespace Xtensive.IoC [Serializable] public class ServiceContainer : ServiceContainerBase { - private static readonly Type typeofIServiceContainer = typeof(IServiceContainer); + private static readonly Type iServiceContainerType = typeof(IServiceContainer); private static readonly Func> ConstructorFactory = serviceInfo => { var mappedType = serviceInfo.MappedType; @@ -187,9 +187,9 @@ public static IServiceContainer Create(Type containerType, object configuration) public static IServiceContainer Create(Type containerType, object configuration, IServiceContainer parent) { ArgumentValidator.EnsureArgumentNotNull(containerType, "containerType"); - if (!typeofIServiceContainer.IsAssignableFrom(containerType)) + if (!iServiceContainerType.IsAssignableFrom(containerType)) throw new ArgumentException(string.Format( - Strings.ExContainerTypeMustImplementX, typeofIServiceContainer.GetShortName()), "containerType"); + Strings.ExContainerTypeMustImplementX, iServiceContainerType.Name), "containerType"); Type configurationType = configuration?.GetType(), parentType = parent?.GetType(); diff --git a/Orm/Xtensive.Orm/Modelling/Actions/NodeAction.cs b/Orm/Xtensive.Orm/Modelling/Actions/NodeAction.cs index 4371188a22..a3d79ae76b 100644 --- a/Orm/Xtensive.Orm/Modelling/Actions/NodeAction.cs +++ b/Orm/Xtensive.Orm/Modelling/Actions/NodeAction.cs @@ -105,8 +105,7 @@ public override string ToString() /// The name of the action. protected virtual string GetActionName() { - string sn = GetType().GetShortName(); - return sn.TryCutSuffix("Action"); + return GetType().Name.TryCutSuffix("Action"); } /// diff --git a/Orm/Xtensive.Orm/Modelling/Comparison/Difference.cs b/Orm/Xtensive.Orm/Modelling/Comparison/Difference.cs index 45cf4c3562..c0f420e996 100644 --- a/Orm/Xtensive.Orm/Modelling/Comparison/Difference.cs +++ b/Orm/Xtensive.Orm/Modelling/Comparison/Difference.cs @@ -43,8 +43,10 @@ public abstract class Difference : IDifference /// public override string ToString() { + var diffType = GetType(); return string.Format(Strings.DifferenceFormat, - GetType().GetShortName(), Source, Target, ParametersToString()); + diffType.IsGenericType ? diffType.GetShortName() : diffType.Name, + Source, Target, ParametersToString()); } /// diff --git a/Orm/Xtensive.Orm/Modelling/Comparison/Upgrader.cs b/Orm/Xtensive.Orm/Modelling/Comparison/Upgrader.cs index 4ef401af48..ac08660c5c 100644 --- a/Orm/Xtensive.Orm/Modelling/Comparison/Upgrader.cs +++ b/Orm/Xtensive.Orm/Modelling/Comparison/Upgrader.cs @@ -160,18 +160,20 @@ public IReadOnlyList GetUpgradeSequence(Difference difference, HintS .ForEach(validationHints.Add); var diff = comparer.Compare(CurrentModel, TargetModel, validationHints); if (diff != null) { - using (CoreLog.InfoRegion(nameof(Strings.LogAutomaticUpgradeSequenceValidation))) { - CoreLog.Info(nameof(Strings.LogValidationFailed)); - CoreLog.Info(nameof(Strings.LogItemFormat), Strings.Difference); - CoreLog.Info(diff.ToString()); - CoreLog.Info(Strings.LogItemFormat + "\r\n{1}", Strings.UpgradeSequence, - new ActionSequence() { actions }); - CoreLog.Info(nameof(Strings.LogItemFormat), Strings.ExpectedTargetModel); - TargetModel.Dump(); - CoreLog.Info(nameof(Strings.LogItemFormat), Strings.ActualTargetModel); - CurrentModel.Dump(); - throw new InvalidOperationException(Strings.ExUpgradeSequenceValidationFailure); + if (CoreLog.IsLogged(Orm.Logging.LogLevel.Info)) { + using (CoreLog.InfoRegion(nameof(Strings.LogAutomaticUpgradeSequenceValidation))) { + CoreLog.Info(nameof(Strings.LogValidationFailed)); + CoreLog.Info(nameof(Strings.LogItemFormat), Strings.Difference); + CoreLog.Info(diff.ToString()); + CoreLog.Info(Strings.LogItemFormat + "\r\n{1}", Strings.UpgradeSequence, + new ActionSequence() { actions }); + CoreLog.Info(nameof(Strings.LogItemFormat), Strings.ExpectedTargetModel); + TargetModel.Dump(); + CoreLog.Info(nameof(Strings.LogItemFormat), Strings.ActualTargetModel); + CurrentModel.Dump(); + } } + throw new InvalidOperationException(Strings.ExUpgradeSequenceValidationFailure); } return new ReadOnlyCollection(actions.Actions.ToArray()); diff --git a/Orm/Xtensive.Orm/Orm/Building/Builders/DomainBuilder.cs b/Orm/Xtensive.Orm/Orm/Building/Builders/DomainBuilder.cs index 76cf642fde..74cd2ddbb7 100644 --- a/Orm/Xtensive.Orm/Orm/Building/Builders/DomainBuilder.cs +++ b/Orm/Xtensive.Orm/Orm/Building/Builders/DomainBuilder.cs @@ -33,7 +33,7 @@ public static Domain Run(DomainBuilderConfiguration builderConfiguration) ArgumentValidator.EnsureArgumentNotNull(builderConfiguration, nameof(builderConfiguration)); var context = new BuildingContext(builderConfiguration); - using (BuildLog.InfoRegion(nameof(Strings.LogBuildingX), typeof(Domain).GetShortName())) { + using (BuildLog.InfoRegion(nameof(Strings.LogBuildingX), typeof(Domain).Name)) { new DomainBuilder(context).Run(); } @@ -51,7 +51,7 @@ private void Run() private void CreateDomain() { - using (BuildLog.InfoRegion(nameof(Strings.LogCreatingX), typeof(Domain).GetShortName())) { + using (BuildLog.InfoRegion(nameof(Strings.LogCreatingX), typeof(Domain).Name)) { var services = context.BuilderConfiguration.Services; var useSingleConnection = services.ProviderInfo.Supports(ProviderFeatures.SingleConnection) @@ -69,7 +69,7 @@ private void CreateHandlers() var handlers = context.Domain.Handlers; var services = context.BuilderConfiguration.Services; - using (BuildLog.InfoRegion(nameof(Strings.LogCreatingX), typeof(DomainHandler).GetShortName())) { + using (BuildLog.InfoRegion(nameof(Strings.LogCreatingX), typeof(DomainHandler).Name)) { // HandlerFactory handlers.Factory = services.HandlerFactory; @@ -93,7 +93,7 @@ private void CreateHandlers() private void CreateServices() { - using (BuildLog.InfoRegion(nameof(Strings.LogCreatingX), typeof(IServiceContainer).GetShortName())) { + using (BuildLog.InfoRegion(nameof(Strings.LogCreatingX), typeof(IServiceContainer).Name)) { var domain = context.Domain; var configuration = domain.Configuration; var userContainerType = configuration.ServiceContainerType ?? typeof(ServiceContainer); diff --git a/Orm/Xtensive.Orm/Orm/Building/Builders/StorageMappingBuilder.cs b/Orm/Xtensive.Orm/Orm/Building/Builders/StorageMappingBuilder.cs index 41bb3b3d71..9ad2d578e5 100644 --- a/Orm/Xtensive.Orm/Orm/Building/Builders/StorageMappingBuilder.cs +++ b/Orm/Xtensive.Orm/Orm/Building/Builders/StorageMappingBuilder.cs @@ -92,17 +92,18 @@ private void ProcessAll() foreach (var type in typesToProcess) { var underlyingType = type.UnderlyingType; - if (verbose) + if (verbose && BuildLog.IsLogged(LogLevel.Info)) { BuildLog.Info(nameof(Strings.LogProcessingX), underlyingType.GetShortName()); + } var request = new MappingRequest(underlyingType.Assembly, underlyingType.Namespace); - MappingResult result; - if (!mappingCache.TryGetValue(request, out result)) { + if (!mappingCache.TryGetValue(request, out var result)) { result = Process(underlyingType); mappingCache.Add(request, result); } else { - if (verbose) + if (verbose && BuildLog.IsLogged(LogLevel.Info)) { BuildLog.Info(nameof(Strings.LogReusingCachedMappingInformationForX), underlyingType.GetShortName()); + } } type.MappingDatabase = result.MappingDatabase; type.MappingSchema = result.MappingSchema; @@ -116,8 +117,9 @@ private MappingResult Process(Type type) var resultDatabase = !string.IsNullOrEmpty(rule.Database) ? rule.Database : defaultDatabase; var resultSchema = !string.IsNullOrEmpty(rule.Schema) ? rule.Schema : defaultSchema; - if (verbose) + if (verbose && BuildLog.IsLogged(LogLevel.Info)) { BuildLog.Info(nameof(Strings.ApplyingRuleXToY), rule, type.GetShortName()); + } return new MappingResult(resultDatabase, resultSchema); } diff --git a/Orm/Xtensive.Orm/Orm/Key.cs b/Orm/Xtensive.Orm/Orm/Key.cs index 3c3b604d3f..893febf90f 100644 --- a/Orm/Xtensive.Orm/Orm/Key.cs +++ b/Orm/Xtensive.Orm/Orm/Key.cs @@ -305,15 +305,16 @@ public static Key Parse([NotNull] Domain domain, string source) /// public override string ToString() { + var underlyingType = TypeInfo?.UnderlyingType ?? TypeReference.Type.UnderlyingType; if (TypeInfo!=null) return string.Format( Strings.KeyFormat, - TypeInfo.UnderlyingType.GetShortName(), + underlyingType.IsGenericType || underlyingType.IsNested ? underlyingType.GetShortName() : underlyingType.Name, Value.ToRegular()); return string.Format( Strings.KeyFormatUnknownKeyType, - TypeReference.Type.UnderlyingType.GetShortName(), + underlyingType.IsGenericType || underlyingType.IsNested ? underlyingType.GetShortName() : underlyingType.Name, Value.ToRegular()); } diff --git a/Orm/Xtensive.Orm/Orm/Linq/TranslatorContext.cs b/Orm/Xtensive.Orm/Orm/Linq/TranslatorContext.cs index 3bc40cc686..9635476cdb 100644 --- a/Orm/Xtensive.Orm/Orm/Linq/TranslatorContext.cs +++ b/Orm/Xtensive.Orm/Orm/Linq/TranslatorContext.cs @@ -80,7 +80,8 @@ public ApplyParameter GetApplyParameter(CompilableProvider provider) { ApplyParameter parameter; if (!applyParameters.TryGetValue(provider, out parameter)) { - parameter = new ApplyParameter(provider.GetType().GetShortName()); + var providerType = provider.GetType(); + parameter = new ApplyParameter(providerType.IsGenericType ? providerType.GetShortName() : providerType.Name); // parameter = new ApplyParameter(provider.ToString()); // ENABLE ONLY FOR DEBUGGING! // May lead TO entity.ToString() calls, while ToString can be overriden. diff --git a/Orm/Xtensive.Orm/Orm/Model/Node.cs b/Orm/Xtensive.Orm/Orm/Model/Node.cs index aad20f0b83..5dd5521a68 100644 --- a/Orm/Xtensive.Orm/Orm/Model/Node.cs +++ b/Orm/Xtensive.Orm/Orm/Model/Node.cs @@ -92,8 +92,11 @@ public virtual void UpdateState() /// public override string ToString() { - return string.Format(Strings.NodeFormat, - name ?? Strings.UnnamedNodeDisplayName, GetType().GetShortName()); + var type = GetType(); + + return string.Format(Strings.NodeFormat, + name ?? Strings.UnnamedNodeDisplayName, + type.IsGenericType ? type.GetShortName() : type.Name); } diff --git a/Orm/Xtensive.Orm/Orm/Rse/Providers/Provider.cs b/Orm/Xtensive.Orm/Orm/Rse/Providers/Provider.cs index 1d2eb45d99..abab50d87c 100644 --- a/Orm/Xtensive.Orm/Orm/Rse/Providers/Provider.cs +++ b/Orm/Xtensive.Orm/Orm/Rse/Providers/Provider.cs @@ -60,7 +60,12 @@ private set { protected abstract RecordSetHeader BuildHeader(); private string DebuggerDisplayName { - get { return GetType().GetShortName(); } + get { + var type = GetType(); + return type.IsGenericType + ? type.GetShortName() + : type.Name; + } } /// @@ -98,8 +103,9 @@ private void AppendTitleTo(StringBuilder sb, int indent) private string TitleToString() { var sb = new StringBuilder(); - string providerName = GetType().GetShortName().TryCutSuffix(ToString_ProviderTypeSuffix); - string parameters = ParametersToString(); + var type = GetType(); + var providerName = (type.IsGenericType ? type.GetShortName() : type.Name).TryCutSuffix(ToString_ProviderTypeSuffix); + var parameters = ParametersToString(); sb.Append(providerName); if (!parameters.IsNullOrEmpty()) diff --git a/Orm/Xtensive.Orm/Orm/Upgrade/UpgradingDomainBuilder.cs b/Orm/Xtensive.Orm/Orm/Upgrade/UpgradingDomainBuilder.cs index 98e91c2910..3abe3670f5 100644 --- a/Orm/Xtensive.Orm/Orm/Upgrade/UpgradingDomainBuilder.cs +++ b/Orm/Xtensive.Orm/Orm/Upgrade/UpgradingDomainBuilder.cs @@ -362,7 +362,7 @@ where handler.IsEnabled var candidates = group.ToList(); if (candidates.Count > 1) { throw new DomainBuilderException( - string.Format(Strings.ExMoreThanOneEnabledXIsProvidedForAssemblyY, typeof (IUpgradeHandler).GetShortName(), @group.Key)); + string.Format(Strings.ExMoreThanOneEnabledXIsProvidedForAssemblyY, typeof(IUpgradeHandler).Name, @group.Key)); } handlers.Add(group.Key, candidates[0]); } @@ -398,12 +398,12 @@ private static void BuildFullTextCatalogResolver(UpgradeServiceAccessor serviceA //Getting user resolvers var candidates = from r in serviceContainer.GetAll() let assembly = r.GetType().Assembly - where r.IsEnabled && assembly!=typeof (IFullTextCatalogNameBuilder).Assembly + where r.IsEnabled && assembly!=typeof(IFullTextCatalogNameBuilder).Assembly select r; var userResolversCount = candidates.Count(); if (userResolversCount > 1) - throw new DomainBuilderException(string.Format(Strings.ExMoreThanOneEnabledXIsProvided, typeof (IFullTextCatalogNameBuilder).GetShortName())); + throw new DomainBuilderException(string.Format(Strings.ExMoreThanOneEnabledXIsProvided, typeof(IFullTextCatalogNameBuilder).Name)); var resolver = (userResolversCount==0) ? new FullTextCatalogNameBuilder() diff --git a/Orm/Xtensive.Orm/Reflection/DelegateHelper.cs b/Orm/Xtensive.Orm/Reflection/DelegateHelper.cs index 8d6f7106ca..88fe84a71c 100644 --- a/Orm/Xtensive.Orm/Reflection/DelegateHelper.cs +++ b/Orm/Xtensive.Orm/Reflection/DelegateHelper.cs @@ -357,7 +357,7 @@ public static TDelegate CreateDelegate(object callTarget, Type type, Type delegateType = typeof (TDelegate); if (!WellKnownTypes.Delegate.IsAssignableFrom(delegateType)) throw new ArgumentException(string.Format(Strings.ExGenericParameterShouldBeOfTypeT, - "TDelegate", WellKnownTypes.Delegate.GetShortName())); + "TDelegate", WellKnownTypes.Delegate.Name)); BindingFlags bindingFlags = BindingFlags.Public | @@ -404,7 +404,7 @@ public static TDelegate[] CreateDelegates(object callTarget, Type typ Type delegateType = typeof (TDelegate); if (!WellKnownTypes.Delegate.IsAssignableFrom(delegateType)) throw new ArgumentException(string.Format(Strings.ExGenericParameterShouldBeOfTypeT, - "TDelegate", WellKnownTypes.Delegate.GetShortName())); + "TDelegate", WellKnownTypes.Delegate.Name)); int count = genericArgumentVariants.Count; TDelegate[] delegates = new TDelegate[count]; diff --git a/Orm/Xtensive.Orm/Tuples/Transform/CombineTransform.cs b/Orm/Xtensive.Orm/Tuples/Transform/CombineTransform.cs index e1a9f3096f..210fa33d2d 100644 --- a/Orm/Xtensive.Orm/Tuples/Transform/CombineTransform.cs +++ b/Orm/Xtensive.Orm/Tuples/Transform/CombineTransform.cs @@ -47,9 +47,7 @@ public IReadOnlyList Sources public override string ToString() { string description = $"{sources.ToDelimitedString(" + ")}, {(IsReadOnly ? Strings.ReadOnlyShort : Strings.ReadWriteShort)}"; - return string.Format(Strings.TupleTransformFormat, - GetType().GetShortName(), - description); + return string.Format(Strings.TupleTransformFormat, GetType().Name, description); } diff --git a/Orm/Xtensive.Orm/Tuples/Transform/CutInTransform.cs b/Orm/Xtensive.Orm/Tuples/Transform/CutInTransform.cs index c69285f892..222374fe97 100644 --- a/Orm/Xtensive.Orm/Tuples/Transform/CutInTransform.cs +++ b/Orm/Xtensive.Orm/Tuples/Transform/CutInTransform.cs @@ -49,8 +49,7 @@ public IReadOnlyList Sources public override string ToString() { string description = $"{sources.ToDelimitedString(" + ")}, {(IsReadOnly ? Strings.ReadOnlyShort : Strings.ReadWriteShort)}"; - return string.Format(Strings.TupleTransformFormat, - GetType().GetShortName(), + return string.Format(Strings.TupleTransformFormat, GetType().Name, description); } diff --git a/Orm/Xtensive.Orm/Tuples/Transform/CutOutTransform.cs b/Orm/Xtensive.Orm/Tuples/Transform/CutOutTransform.cs index ab3a584a96..34dfd1247e 100644 --- a/Orm/Xtensive.Orm/Tuples/Transform/CutOutTransform.cs +++ b/Orm/Xtensive.Orm/Tuples/Transform/CutOutTransform.cs @@ -40,9 +40,7 @@ public Segment Segment public override string ToString() { string description = $"{segment}, {(IsReadOnly ? Strings.ReadOnlyShort : Strings.ReadWriteShort)}"; - return string.Format(Strings.TupleTransformFormat, - GetType().GetShortName(), - description); + return string.Format(Strings.TupleTransformFormat, GetType().Name, description); } diff --git a/Orm/Xtensive.Orm/Tuples/Transform/MapTransform.cs b/Orm/Xtensive.Orm/Tuples/Transform/MapTransform.cs index affb658db0..0bed3c1f94 100644 --- a/Orm/Xtensive.Orm/Tuples/Transform/MapTransform.cs +++ b/Orm/Xtensive.Orm/Tuples/Transform/MapTransform.cs @@ -256,9 +256,7 @@ protected Tuple Apply(TupleTransformType transformType, Tuple source1, Tuple sou public override string ToString() { string description = $"{SourceCount}: {(SourceCount == 1 ? singleSourceMap.ToCommaDelimitedString() : map.ToCommaDelimitedString())}, {(isReadOnly ? Strings.ReadOnlyShort : Strings.ReadWriteShort)}"; - return string.Format(Strings.TupleTransformFormat, - GetType().GetShortName(), - description); + return string.Format(Strings.TupleTransformFormat, GetType().Name, description); } diff --git a/Orm/Xtensive.Orm/Tuples/Transform/SegmentTransform.cs b/Orm/Xtensive.Orm/Tuples/Transform/SegmentTransform.cs index 189385587e..4f04b02d50 100644 --- a/Orm/Xtensive.Orm/Tuples/Transform/SegmentTransform.cs +++ b/Orm/Xtensive.Orm/Tuples/Transform/SegmentTransform.cs @@ -39,9 +39,7 @@ public Segment Segment public override string ToString() { string description = $"{segment}, {(IsReadOnly ? Strings.ReadOnlyShort : Strings.ReadWriteShort)}"; - return string.Format(Strings.TupleTransformFormat, - GetType().GetShortName(), - description); + return string.Format(Strings.TupleTransformFormat, GetType().Name, description); } diff --git a/Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs b/Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs index 5a3435ef3f..00e2419167 100644 --- a/Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs +++ b/Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs @@ -50,7 +50,8 @@ public virtual bool IsReadOnly { /// public override string ToString() { - return GetType().GetShortName(); + var type = GetType(); + return type.IsGenericType ? type.GetShortName() : type.Name; } } } \ No newline at end of file