From 0e57de17c332aa8be844ad01f9dc791efb35f083 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Mon, 5 Sep 2022 21:26:02 +0200 Subject: [PATCH] Use Mapster as mapper (#39) * mapster * , * . * ... * . * . * . * . * . * . * int * . * ; --- ...ceSourceGenerator Solution.sln.DotSettings | 1 + .../Properties/launchSettings.json | 13 +- .../ProxyInterfaceConsumer.csproj | 4 +- .../IGeneratorExecutionContext.cs | 7 - .../ProxyInterfaceConsumerForPnP/IPersonTT.cs | 9 - .../Implementations/ClientContextProxy.cs | 64 ++++++ .../ClientRuntimeContextExtensions.cs | 14 ++ .../Interfaces/IClientContext.cs | 14 ++ .../{PnP => Interfaces}/IClientObject.cs | 2 +- .../IClientRuntimeContext.cs | 2 +- .../Interfaces/IListCollection.cs | 10 + .../{PnP => Interfaces}/ISecurableObject.cs | 2 +- .../Interfaces/IUser.cs | 7 + .../{PnP => Interfaces}/IWeb.cs | 2 +- .../ProxyInterfaceConsumerForPnP/PersonTT.cs | 15 -- .../PnP/IClientContext.cs | 188 ------------------ .../ProxyInterfaceConsumerForPnP/Program.cs | 57 +++++- .../ProxyInterfaceConsumerForPnP.csproj | 33 +-- .../FileGenerators/BaseGenerator.cs | 29 +++ .../PartialInterfacesGenerator.cs | 20 +- .../ProxyClassesGenerator.Mapster.cs | 27 +++ .../FileGenerators/ProxyClassesGenerator.cs | 56 ++---- ....SharePoint.Client.ClientContextProxy.g.cs | 33 ++- ...t.SharePoint.Client.ClientObjectProxy.g.cs | 20 +- ...oint.Client.ClientRuntimeContextProxy.g.cs | 28 ++- ...harePoint.Client.SecurableObjectProxy.g.cs | 23 +-- .../Microsoft.SharePoint.Client.WebProxy.g.cs | 60 +++--- ...ourceGeneratorTests.Source.HumanProxy.g.cs | 3 - ...aceSourceGeneratorTests.Source.IHuman.g.cs | 2 + ...ceSourceGeneratorTests.Source.IPerson.g.cs | 2 + ...eGeneratorTests.Source.IPersonExtends.g.cs | 2 + ...eratorTests.Source.PersonExtendsProxy.g.cs | 3 - ...urceGeneratorTests.Source.PersonProxy.g.cs | 20 +- ...eratorTests.Source.PnP.IClientContext.g.cs | 2 + ...neratorTests.Source.PnP.IClientObject.g.cs | 2 + ...ests.Source.PnP.IClientRuntimeContext.g.cs | 2 + ...atorTests.Source.PnP.ISecurableObject.g.cs | 2 + ...eSourceGeneratorTests.Source.PnP.IWeb.g.cs | 2 + .../ProxyInterfaceSourceGeneratorTests.csproj | 1 + 39 files changed, 378 insertions(+), 405 deletions(-) delete mode 100644 src-examples/ProxyInterfaceConsumerForPnP/IGeneratorExecutionContext.cs delete mode 100644 src-examples/ProxyInterfaceConsumerForPnP/IPersonTT.cs create mode 100644 src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientContextProxy.cs create mode 100644 src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientRuntimeContextExtensions.cs create mode 100644 src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientContext.cs rename src-examples/ProxyInterfaceConsumerForPnP/{PnP => Interfaces}/IClientObject.cs (74%) rename src-examples/ProxyInterfaceConsumerForPnP/{PnP => Interfaces}/IClientRuntimeContext.cs (77%) create mode 100644 src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IListCollection.cs rename src-examples/ProxyInterfaceConsumerForPnP/{PnP => Interfaces}/ISecurableObject.cs (80%) create mode 100644 src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IUser.cs rename src-examples/ProxyInterfaceConsumerForPnP/{PnP => Interfaces}/IWeb.cs (74%) delete mode 100644 src-examples/ProxyInterfaceConsumerForPnP/PersonTT.cs delete mode 100644 src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientContext.cs create mode 100644 src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.Mapster.cs diff --git a/ProxyInterfaceSourceGenerator Solution.sln.DotSettings b/ProxyInterfaceSourceGenerator Solution.sln.DotSettings index db9ce64..860b238 100644 --- a/ProxyInterfaceSourceGenerator Solution.sln.DotSettings +++ b/ProxyInterfaceSourceGenerator Solution.sln.DotSettings @@ -1,2 +1,3 @@  + True True \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumer/Properties/launchSettings.json b/src-examples/ProxyInterfaceConsumer/Properties/launchSettings.json index 33504c9..5a2b0d3 100644 --- a/src-examples/ProxyInterfaceConsumer/Properties/launchSettings.json +++ b/src-examples/ProxyInterfaceConsumer/Properties/launchSettings.json @@ -1,8 +1,11 @@ { - "profiles": { - "WSL": { - "commandName": "WSL2", - "distributionName": "" + "profiles": { + "WSL": { + "commandName": "WSL2", + "distributionName": "" + }, + "ProxyInterfaceConsumer": { + "commandName": "Project" + } } - } } \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumer/ProxyInterfaceConsumer.csproj b/src-examples/ProxyInterfaceConsumer/ProxyInterfaceConsumer.csproj index 46eff05..8c17c0a 100644 --- a/src-examples/ProxyInterfaceConsumer/ProxyInterfaceConsumer.csproj +++ b/src-examples/ProxyInterfaceConsumer/ProxyInterfaceConsumer.csproj @@ -1,9 +1,8 @@ - net5.0 + net6.0 Exe - 9 enable @@ -14,6 +13,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src-examples/ProxyInterfaceConsumerForPnP/IGeneratorExecutionContext.cs b/src-examples/ProxyInterfaceConsumerForPnP/IGeneratorExecutionContext.cs deleted file mode 100644 index 06adf82..0000000 --- a/src-examples/ProxyInterfaceConsumerForPnP/IGeneratorExecutionContext.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace ProxyInterfaceConsumer -{ - // [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.CodeAnalysis.GeneratorExecutionContext))] - public partial interface IGeneratorExecutionContext - { - } -} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/IPersonTT.cs b/src-examples/ProxyInterfaceConsumerForPnP/IPersonTT.cs deleted file mode 100644 index 16df005..0000000 --- a/src-examples/ProxyInterfaceConsumerForPnP/IPersonTT.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace ProxyInterfaceConsumer -{ - [ProxyInterfaceGenerator.Proxy(typeof(ProxyInterfaceConsumer.PersonTT<,>))] - public partial interface IPersonTT - where T1 : struct - where T2 : class, new() - { - } -} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientContextProxy.cs b/src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientContextProxy.cs new file mode 100644 index 0000000..f960559 --- /dev/null +++ b/src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientContextProxy.cs @@ -0,0 +1,64 @@ +using System; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Linq.Expressions; +using System.Threading.Tasks; +using Microsoft.SharePoint.Client; + +// ReSharper disable once CheckNamespace +namespace ProxyInterfaceConsumerForPnP.Interfaces; + +[SuppressMessage("ReSharper", "InconsistentNaming")] +public partial class ClientContextProxy +{ + public Task ExecuteQueryRetryAsync(Interfaces.IClientRuntimeContext clientContext, int retryCount = 10, string? userAgent = null) + { + ClientRuntimeContext clientObject_ = Mapster.TypeAdapter.Adapt(clientContext); + return clientObject_.ExecuteQueryRetryAsync(retryCount, userAgent); + } + + public void LoadOriginal(T clientObject, params Expression>[] retrievals) + where T : ClientObject + { + T clientObject_ = clientObject; + Expression>[] retrievals_ = retrievals; + _Instance.Load(clientObject_, retrievals_); + } + + public void Load(Interfaces.IClientObject clientObject, params Expression>[] retrievals) + where TSource : Interfaces.IClientObject + where TTarget : ClientObject + { + TTarget clientObject_ = Mapster.TypeAdapter.Adapt(clientObject); + Expression>[] retrievals_ = retrievals.Select(MapExpression).ToArray(); + + _Instance.Load(clientObject_, retrievals_); + } + + private static Expression> MapExpression(Expression> expression) + where TSource : Interfaces.IClientObject + where TTarget : ClientObject + { + var parameterExpression = Expression.Parameter(typeof(TTarget)); + + Expression memberAccessExpression; + switch (expression.Body) + { + case MemberExpression memberExpression: + memberAccessExpression = Expression.PropertyOrField(parameterExpression, memberExpression.Member.Name); + break; + + case UnaryExpression unaryExpression: + var expressionOperand = (MemberExpression)unaryExpression.Operand; + memberAccessExpression = Expression.PropertyOrField(parameterExpression, expressionOperand.Member.Name); + memberAccessExpression = Expression.Convert(memberAccessExpression, typeof(object)); + break; + + default: + throw new NotSupportedException(); + + } + + return Expression.Lambda>(memberAccessExpression, parameterExpression); + } +} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientRuntimeContextExtensions.cs b/src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientRuntimeContextExtensions.cs new file mode 100644 index 0000000..49b0536 --- /dev/null +++ b/src-examples/ProxyInterfaceConsumerForPnP/Implementations/ClientRuntimeContextExtensions.cs @@ -0,0 +1,14 @@ +using System.Threading.Tasks; +using Microsoft.SharePoint.Client; +using ProxyInterfaceConsumerForPnP.Interfaces; + +namespace ProxyInterfaceConsumerForPnP.Implementations; + +public static class ClientRuntimeContextExtensions +{ + public static Task ExecuteQueryRetryAsync(this IClientRuntimeContext clientContext, int retryCount = 10, string? userAgent = null) + { + ClientRuntimeContext clientObject_ = Mapster.TypeAdapter.Adapt(clientContext); + return clientObject_.ExecuteQueryRetryAsync(retryCount, userAgent); + } +} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientContext.cs b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientContext.cs new file mode 100644 index 0000000..4fbe561 --- /dev/null +++ b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientContext.cs @@ -0,0 +1,14 @@ +using System; +using System.Linq.Expressions; +using Microsoft.SharePoint.Client; + +namespace ProxyInterfaceConsumerForPnP.Interfaces +{ + [ProxyInterfaceGenerator.Proxy(typeof(ClientContext))] + public partial interface IClientContext : IClientRuntimeContext + { + void Load(IClientObject clientObject, params Expression>[] retrievals) + where TSource : IClientObject + where TTarget : ClientObject; + } +} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientObject.cs b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientObject.cs similarity index 74% rename from src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientObject.cs rename to src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientObject.cs index 2a6e0a3..66c266d 100644 --- a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientObject.cs +++ b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientObject.cs @@ -1,4 +1,4 @@ -namespace ProxyInterfaceConsumer.PnP +namespace ProxyInterfaceConsumerForPnP.Interfaces { [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.SharePoint.Client.ClientObject))] public partial interface IClientObject diff --git a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientRuntimeContext.cs b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientRuntimeContext.cs similarity index 77% rename from src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientRuntimeContext.cs rename to src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientRuntimeContext.cs index 5baef56..d94cb3d 100644 --- a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientRuntimeContext.cs +++ b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IClientRuntimeContext.cs @@ -1,4 +1,4 @@ -namespace ProxyInterfaceConsumer.PnP +namespace ProxyInterfaceConsumerForPnP.Interfaces { [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.SharePoint.Client.ClientRuntimeContext))] public partial interface IClientRuntimeContext diff --git a/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IListCollection.cs b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IListCollection.cs new file mode 100644 index 0000000..11f2db1 --- /dev/null +++ b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IListCollection.cs @@ -0,0 +1,10 @@ +//using System.Collections; +//using System.Linq; + +//namespace ProxyInterfaceConsumerForPnP.Interfaces +//{ +// [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.SharePoint.Client.ListCollection))] +// public partial interface IProxyListCollection: IClientObject, IEnumerable, IQueryable +// { +// } +//} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/PnP/ISecurableObject.cs b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/ISecurableObject.cs similarity index 80% rename from src-examples/ProxyInterfaceConsumerForPnP/PnP/ISecurableObject.cs rename to src-examples/ProxyInterfaceConsumerForPnP/Interfaces/ISecurableObject.cs index 67e67c4..37e90a7 100644 --- a/src-examples/ProxyInterfaceConsumerForPnP/PnP/ISecurableObject.cs +++ b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/ISecurableObject.cs @@ -1,4 +1,4 @@ -namespace ProxyInterfaceConsumer.PnP +namespace ProxyInterfaceConsumerForPnP.Interfaces { [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.SharePoint.Client.SecurableObject))] public partial interface ISecurableObject : IClientObject diff --git a/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IUser.cs b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IUser.cs new file mode 100644 index 0000000..ba4eb8b --- /dev/null +++ b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IUser.cs @@ -0,0 +1,7 @@ +namespace ProxyInterfaceConsumerForPnP.Interfaces +{ + [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.SharePoint.Client.User))] + public partial interface IUser + { + } +} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IWeb.cs b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IWeb.cs similarity index 74% rename from src-examples/ProxyInterfaceConsumerForPnP/PnP/IWeb.cs rename to src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IWeb.cs index a79c295..d3f013b 100644 --- a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IWeb.cs +++ b/src-examples/ProxyInterfaceConsumerForPnP/Interfaces/IWeb.cs @@ -1,4 +1,4 @@ -namespace ProxyInterfaceConsumer.PnP +namespace ProxyInterfaceConsumerForPnP.Interfaces { [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.SharePoint.Client.Web))] public partial interface IWeb: ISecurableObject diff --git a/src-examples/ProxyInterfaceConsumerForPnP/PersonTT.cs b/src-examples/ProxyInterfaceConsumerForPnP/PersonTT.cs deleted file mode 100644 index b474a58..0000000 --- a/src-examples/ProxyInterfaceConsumerForPnP/PersonTT.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace ProxyInterfaceConsumer -{ - public class PersonTT - where T1 : struct - where T2 : class, new() - { - public T1 TVal1 { get; set; } - - public T2 TVal2 { get; set; } - - public void Call(int x, T1 t1, T2 t2) - { - } - } -} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientContext.cs b/src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientContext.cs deleted file mode 100644 index 82ba658..0000000 --- a/src-examples/ProxyInterfaceConsumerForPnP/PnP/IClientContext.cs +++ /dev/null @@ -1,188 +0,0 @@ -using System; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using AutoMapper; -using Mapster; -using Microsoft.SharePoint.Client; - -namespace ProxyInterfaceConsumer.PnP -{ - [ProxyInterfaceGenerator.Proxy(typeof(Microsoft.SharePoint.Client.ClientContext))] - public partial interface IClientContext: IClientRuntimeContext - { - // public virtual void X(); - } -} - -namespace ProxyInterfaceConsumer.PnP -{ - public class CustomResolver : IValueResolver - { - public object Resolve(object source, object destination, object member, ResolutionContext context) - { - try - { - return member; - } - catch (Exception e) - { - Console.WriteLine(e); - throw; - } - } - } - - public class MyConverter : ITypeConverter - { - public object Convert(object source, object destination, ResolutionContext context) - { - return System.Convert.ToDateTime(source); - } - } - - public class MyWebConverter : ITypeConverter - { - public IWeb Convert(Web source, IWeb destination, ResolutionContext context) - { - return new ProxyInterfaceConsumer.PnP.WebProxy(source); - } - } - - public partial class ClientContextProxy - { - public void Test() - { - var mapper = new MapperConfiguration(cfg => - { - //cfg.ForAllMaps((map, expression) => - //{ - // expression.ForAllMembers(configurationExpression => - // configurationExpression.PreCondition((o, o1, arg3) => - // { - // return true; - // }) - // ); - //}); - - // CreateMap(); - cfg.CreateMap() - - .ConstructUsing((instance_841809920, context) => - { - try - { - var p = new ProxyInterfaceConsumer.PnP.WebProxy(instance_841809920); - return p; - } - catch (Exception e) - { - Console.WriteLine(e); - throw; - } - - }) - - //.ConvertUsing() - - .ForAllMembers(opt => - { - //opt.MapFrom(x =>x , ); - //opt.ConvertUsing( x=> x); - - opt.PreCondition((src, dest, context) => - { - try - { - var x = src != null; - return true; - } - catch - { - return false; - } - }); - - opt.MapAtRuntime(); - - opt.MapFrom(); - }) - - - //.ConstructUsing(instance_841809920 => new ProxyInterfaceConsumer.PnP.WebProxy(instance_841809920)) - //.ForAllMembers(opt => { - // opt.PreCondition((src, dest, context) => - // { - // try - // { - // var x = src != null; - // return true; - // } - // catch - // { - // return false; - // } - // }); - //}) - - ; - - - //cfg.CreateMap() - // .ConstructUsing(proxy1898650104 => ((ProxyInterfaceConsumer.PnP.WebProxy)proxy1898650104)._Instance) - // .ForAllMembers(opt => { - // opt.PreCondition((src, dest, context) => - // { - // try - // { - // var x = src != null; - // return true; - // } - // catch - // { - // return false; - // } - // }); - // }); - }).CreateMapper(); - - //var web = _mapper.Map(Web); - //Load(web, w => w.Lists); - - TypeAdapterConfig.NewConfig().ConstructUsing(instance_841809920 => new ProxyInterfaceConsumer.PnP.WebProxy(instance_841809920)); - - TypeAdapterConfig.NewConfig().MapWith(proxy1898650104 => ((ProxyInterfaceConsumer.PnP.WebProxy)proxy1898650104)._Instance); - - var iweb = _Instance.Web.Adapt(); - var web = iweb.Adapt(); - - //var mapped = mapper.Map(_Instance.Web); - - Load3(Web, w => w.Lists); - } - - public void LoadOriginal(T clientObject, params System.Linq.Expressions.Expression>[] retrievals) where T : Microsoft.SharePoint.Client.ClientObject - { - T clientObject_ = clientObject; - System.Linq.Expressions.Expression>[] retrievals_ = retrievals; - _Instance.Load(clientObject_, retrievals_); - } - - //public void Load2(IClientObject clientObject, params Expression>[] retrievals) - //{ - // ClientObject clientObject_ = _mapper.Map(clientObject); - // Expression>[] retrievals_ = _mapper.Map>[]>(retrievals); - - // _Instance.Load(clientObject_, retrievals_); - //} - - public void Load3(IWeb clientObject, params System.Linq.Expressions.Expression>[] retrievals) - { - var clientObject_ = (WebProxy) clientObject; - - //Expression>[] retrievals_ = _mapper.Map>[]>(retrievals); - - Load(clientObject_._Instance, null); - } - } -} \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/Program.cs b/src-examples/ProxyInterfaceConsumerForPnP/Program.cs index 8178d39..18f2d8a 100644 --- a/src-examples/ProxyInterfaceConsumerForPnP/Program.cs +++ b/src-examples/ProxyInterfaceConsumerForPnP/Program.cs @@ -1,14 +1,59 @@ +using System; +using System.Threading.Tasks; using Microsoft.SharePoint.Client; -using ProxyInterfaceConsumer.PnP; +using PnP.Core.Model.SharePoint; +using PnP.Framework; +using ProxyInterfaceConsumerForPnP.Implementations; +using ProxyInterfaceConsumerForPnP.Interfaces; +using IWeb = ProxyInterfaceConsumerForPnP.Interfaces.IWeb; -namespace ProxyInterfaceConsumerForPnP +namespace ProxyInterfaceConsumerForPnP; + +public class Program { - public class Program + public static async Task Main() { - public static void Main() + try { - var cp = new ClientContextProxy(new ClientContext("https://heyenrath.nl")); - cp.Test(); + var authManager = new AuthenticationManager( + "15b347bf-90a2-4c16-aa76-5a3263476b59", + "Test.pfx", + Environment.GetEnvironmentVariable("Test.pfx_PWD"), + "s7gb6.onmicrosoft.com"); + + using var clientContext = await authManager.GetContextAsync("https://s7gb6.sharepoint.com/sites/Test"); + clientContext.Load(clientContext.Web, p => p.Title); + await clientContext.ExecuteQueryRetryAsync(); + + Console.WriteLine(clientContext.Web.Title); + + IClientContext cp = new ClientContextProxy(clientContext); + + cp.Load(cp.Web, w => w.Lists, w => w.Language, w => w.Author); + + await cp.ExecuteQueryRetryAsync(); + + Console.WriteLine(cp.Web.Title + "," + cp.Web.Language + "," + cp.Web.Author.Email); + foreach (var list in cp.Web.Lists) + { + Console.WriteLine(" list : {0}", list.Title); + } + + foreach (var list in cp.Web.Lists) + { + cp._Instance.Load(list, l => l.Author.Email); + } + await cp.ExecuteQueryRetryAsync(); + + Console.WriteLine(new string('-', 80)); + foreach (var list in cp.Web.Lists) + { + Console.WriteLine(" list : {0} '{1}'", list.Title, list.Author.Email); + } + } + catch (Exception ex) + { + Console.WriteLine("Error Message: " + ex.Message); } } } \ No newline at end of file diff --git a/src-examples/ProxyInterfaceConsumerForPnP/ProxyInterfaceConsumerForPnP.csproj b/src-examples/ProxyInterfaceConsumerForPnP/ProxyInterfaceConsumerForPnP.csproj index f88dc0b..33321fc 100644 --- a/src-examples/ProxyInterfaceConsumerForPnP/ProxyInterfaceConsumerForPnP.csproj +++ b/src-examples/ProxyInterfaceConsumerForPnP/ProxyInterfaceConsumerForPnP.csproj @@ -1,19 +1,13 @@ - net5.0 + net6.0 Exe - 9 enable - - - - - - + all @@ -22,6 +16,7 @@ + @@ -29,21 +24,33 @@ - + PreserveNewest - + PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest - + PreserveNewest - + PreserveNewest + + + PreserveNewest + + + \ No newline at end of file diff --git a/src/ProxyInterfaceSourceGenerator/FileGenerators/BaseGenerator.cs b/src/ProxyInterfaceSourceGenerator/FileGenerators/BaseGenerator.cs index edf79c2..e913a4a 100644 --- a/src/ProxyInterfaceSourceGenerator/FileGenerators/BaseGenerator.cs +++ b/src/ProxyInterfaceSourceGenerator/FileGenerators/BaseGenerator.cs @@ -219,4 +219,33 @@ internal abstract class BaseGenerator return methodParameters; } + + protected IReadOnlyList GetExtendsProxyData(ProxyData proxyData, ClassSymbol targetClassSymbol) + { + var extendsProxyClasses = new List(); + foreach (var baseType in targetClassSymbol.BaseTypes) + { + var candidate = Context.Candidates.Values.FirstOrDefault(ci => ci.FullRawTypeName == baseType.ToString()); + if (candidate is not null) + { + extendsProxyClasses.Add(candidate); + break; + } + + // Try to find with usings + foreach (var @using in proxyData.Usings) + { + candidate = Context.Candidates.Values.FirstOrDefault(ci => $"{@using}.{ci.FullRawTypeName}" == baseType.ToString()); + if (candidate is not null) + { + // Update the FullRawTypeName + candidate.FullRawTypeName = $"{@using}.{candidate.FullRawTypeName}"; + + extendsProxyClasses.Add(candidate); + break; + } + } + } + return extendsProxyClasses; + } } \ No newline at end of file diff --git a/src/ProxyInterfaceSourceGenerator/FileGenerators/PartialInterfacesGenerator.cs b/src/ProxyInterfaceSourceGenerator/FileGenerators/PartialInterfacesGenerator.cs index 8f56ac2..7c4ec99 100644 --- a/src/ProxyInterfaceSourceGenerator/FileGenerators/PartialInterfacesGenerator.cs +++ b/src/ProxyInterfaceSourceGenerator/FileGenerators/PartialInterfacesGenerator.cs @@ -45,7 +45,7 @@ internal class PartialInterfacesGenerator : BaseGenerator, IFilesGenerator fileData = new FileData( $"{sourceInterfaceSymbol.Symbol.GetFileName()}.g.cs", - CreatePartialInterfaceCode(pd.Namespace, targetClassSymbol, interfaceName, pd.ProxyBaseClasses) + CreatePartialInterfaceCode(pd.Namespace, targetClassSymbol, interfaceName, pd) ); return true; @@ -55,7 +55,12 @@ internal class PartialInterfacesGenerator : BaseGenerator, IFilesGenerator string ns, ClassSymbol classSymbol, string interfaceName, - bool proxyBaseClasses) => $@"//---------------------------------------------------------------------------------------- + ProxyData proxyData) + { + var extendsProxyClasses = GetExtendsProxyData(proxyData, classSymbol); + var @new = extendsProxyClasses.Any() ? "new " : string.Empty; + + return $@"//---------------------------------------------------------------------------------------- // // This code was generated by https://github.com/StefH/ProxyInterfaceSourceGenerator. // @@ -71,14 +76,17 @@ namespace {ns} {{ public partial interface {interfaceName} {{ -{GenerateProperties(classSymbol, proxyBaseClasses)} + {@new}{classSymbol.Symbol} _Instance {{ get; }} -{GenerateMethods(classSymbol, proxyBaseClasses)} +{GenerateProperties(classSymbol, proxyData.ProxyBaseClasses)} -{GenerateEvents(classSymbol, proxyBaseClasses)} +{GenerateMethods(classSymbol, proxyData.ProxyBaseClasses)} + +{GenerateEvents(classSymbol, proxyData.ProxyBaseClasses)} }} }} {(SupportsNullable ? "#nullable disable" : string.Empty)}"; + } private string GenerateProperties(ClassSymbol targetClassSymbol, bool proxyBaseClasses) { @@ -97,7 +105,7 @@ namespace {ns} var methodParameters = GetMethodParameters(property.Parameters, true); propertyName = $"this[{string.Join(", ", methodParameters)}]"; } - + str.AppendLine($" {propertyType} {propertyName} {getSet}"); str.AppendLine(); } diff --git a/src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.Mapster.cs b/src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.Mapster.cs new file mode 100644 index 0000000..03aa2fd --- /dev/null +++ b/src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.Mapster.cs @@ -0,0 +1,27 @@ +using System.Text; +using ProxyInterfaceSourceGenerator.Extensions; + +namespace ProxyInterfaceSourceGenerator.FileGenerators; + +internal partial class ProxyClassesGenerator +{ + private string GenerateMapperConfigurationForMapster() + { + var str = new StringBuilder(); + + foreach (var replacedType in Context.ReplacedTypes) + { + TryFindProxyDataByTypeName(replacedType.Key, out var fullTypeName); + var classNameProxy = $"{fullTypeName!.Namespace}.{fullTypeName.ShortTypeName}Proxy"; + + var instance = $"instance{(replacedType.Key + replacedType.Value).GetDeterministicHashCodeAsString()}"; + var proxy = $"proxy{(replacedType.Value + replacedType.Key).GetDeterministicHashCodeAsString()}"; + + str.AppendLine($" Mapster.TypeAdapterConfig<{replacedType.Key}, {replacedType.Value}>.NewConfig().ConstructUsing({instance} => new {classNameProxy}({instance}));"); + str.AppendLine($" Mapster.TypeAdapterConfig<{replacedType.Value}, {replacedType.Key}>.NewConfig().MapWith({proxy} => (({classNameProxy}) {proxy})._Instance);"); + str.AppendLine(); + } + + return str.ToString(); + } +} \ No newline at end of file diff --git a/src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.cs b/src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.cs index a1bc2d1..06cf07a 100644 --- a/src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.cs +++ b/src/ProxyInterfaceSourceGenerator/FileGenerators/ProxyClassesGenerator.cs @@ -39,30 +39,7 @@ internal partial class ProxyClassesGenerator : BaseGenerator, IFilesGenerator var className = targetClassSymbol.Symbol.ResolveProxyClassName(); var constructorName = $"{targetClassSymbol.Symbol.Name}Proxy"; - var extendsProxyClasses = new List(); - foreach (var baseType in targetClassSymbol.BaseTypes) - { - var candidate = Context.Candidates.Values.FirstOrDefault(ci => ci.FullRawTypeName == baseType.ToString()); - if (candidate is not null) - { - extendsProxyClasses.Add(candidate); - break; - } - - // Try to find with usings - foreach (var @using in pd.Usings) - { - candidate = Context.Candidates.Values.FirstOrDefault(ci => $"{@using}.{ci.FullRawTypeName}" == baseType.ToString()); - if (candidate is not null) - { - // Update the FullRawTypeName - candidate.FullRawTypeName = $"{@using}.{candidate.FullRawTypeName}"; - - extendsProxyClasses.Add(candidate); - break; - } - } - } + var extendsProxyClasses = GetExtendsProxyData(pd, targetClassSymbol); fileData = new FileData( $"{targetClassSymbol.Symbol.GetFileName()}Proxy.g.cs", @@ -75,7 +52,7 @@ internal partial class ProxyClassesGenerator : BaseGenerator, IFilesGenerator private string CreateProxyClassCode( ProxyData pd, ClassSymbol targetClassSymbol, - List extendsProxyClasses, + IReadOnlyList extendsProxyClasses, string interfaceName, string className, string constructorName) @@ -84,7 +61,7 @@ internal partial class ProxyClassesGenerator : BaseGenerator, IFilesGenerator var extends = string.Empty; var @base = string.Empty; var @new = string.Empty; - var instanceBaseDefinition = string.Empty; + var instanceBaseDefinition = string.Empty; var instanceBaseSetter = string.Empty; if (firstExtends is not null) @@ -98,17 +75,13 @@ internal partial class ProxyClassesGenerator : BaseGenerator, IFilesGenerator var @abstract = string.Empty; // targetClassSymbol.Symbol.IsAbstract ? "abstract " : string.Empty; var properties = GeneratePublicProperties(targetClassSymbol, pd.ProxyBaseClasses); - var methods = GeneratePublicMethods(targetClassSymbol, pd.ProxyBaseClasses, extendsProxyClasses); + var methods = GeneratePublicMethods(targetClassSymbol, pd.ProxyBaseClasses); var events = GenerateEvents(targetClassSymbol, pd.ProxyBaseClasses); - var configurationForAutoMapper = string.Empty; - var privateAutoMapper = string.Empty; - var usingAutoMapper = string.Empty; + var configurationForMapster = string.Empty; if (Context.ReplacedTypes.Any()) { - configurationForAutoMapper = GenerateMapperConfigurationForAutoMapper(); - privateAutoMapper = GeneratePrivateAutoMapper(); - usingAutoMapper = "using AutoMapper;"; + configurationForMapster = GenerateMapperConfigurationForMapster(); } return $@"//---------------------------------------------------------------------------------------- @@ -122,7 +95,6 @@ internal partial class ProxyClassesGenerator : BaseGenerator, IFilesGenerator {(SupportsNullable ? "#nullable enable" : string.Empty)} using System; -{usingAutoMapper} namespace {pd.Namespace} {{ @@ -142,10 +114,8 @@ namespace {pd.Namespace} _Instance = instance; {instanceBaseSetter} -{configurationForAutoMapper} +{configurationForMapster} }} - -{privateAutoMapper} }} }} {(SupportsNullable ? "#nullable disable" : string.Empty)}"; @@ -188,8 +158,8 @@ namespace {pd.Namespace} string set; if (isReplaced) { - get = property.GetMethod != null ? $"get => _mapper.Map<{type}>({instancePropertyName}); " : string.Empty; - set = property.SetMethod != null ? $"set => {instancePropertyName} = _mapper.Map<{property.Type}>(value); " : string.Empty; + get = property.GetMethod != null ? $"get => Mapster.TypeAdapter.Adapt<{type}>({instancePropertyName}); " : string.Empty; + set = property.SetMethod != null ? $"set => {instancePropertyName} = Mapster.TypeAdapter.Adapt<{property.Type}>(value); " : string.Empty; } else { @@ -204,7 +174,7 @@ namespace {pd.Namespace} return str.ToString(); } - private string GeneratePublicMethods(ClassSymbol targetClassSymbol, bool proxyBaseClasses, List extendsProxyClasses) + private string GeneratePublicMethods(ClassSymbol targetClassSymbol, bool proxyBaseClasses) { var str = new StringBuilder(); foreach (var method in MemberHelper.GetPublicMethods(targetClassSymbol, proxyBaseClasses)) @@ -252,7 +222,7 @@ namespace {pd.Namespace} _ = GetParameterType(ps, out var isReplaced); // TODO : response is not used? if (isReplaced) { - normalOrMap = $" = _mapper.Map<{ps.Type}>({ps.GetSanitizedName()})"; + normalOrMap = $" = Mapster.TypeAdapter.Adapt<{ps.Type}>({ps.GetSanitizedName()})"; } } @@ -283,7 +253,7 @@ namespace {pd.Namespace} var type = GetParameterType(ps, out var isReplaced); if (isReplaced) { - normalOrMap = $" = _mapper.Map<{type}>({ps.GetSanitizedName()}_)"; + normalOrMap = $" = Mapster.TypeAdapter.Adapt<{type}>({ps.GetSanitizedName()}_)"; } } @@ -294,7 +264,7 @@ namespace {pd.Namespace} { if (returnIsReplaced) { - str.AppendLine($" return _mapper.Map<{returnTypeAsString}>({alternateReturnVariableName});"); + str.AppendLine($" return Mapster.TypeAdapter.Adapt<{returnTypeAsString}>({alternateReturnVariableName});"); } else { diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientContextProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientContextProxy.g.cs index d1b5971..0b3c4f2 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientContextProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientContextProxy.g.cs @@ -9,7 +9,6 @@ #nullable enable using System; -using AutoMapper; namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { @@ -18,7 +17,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public new Microsoft.SharePoint.Client.ClientContext _Instance { get; } public Microsoft.SharePoint.Client.ClientRuntimeContext _InstanceClientRuntimeContext { get; } - public ProxyInterfaceSourceGeneratorTests.Source.PnP.IWeb Web { get => _mapper.Map(_Instance.Web); } + public ProxyInterfaceSourceGeneratorTests.Source.PnP.IWeb Web { get => Mapster.TypeAdapter.Adapt(_Instance.Web); } public Microsoft.SharePoint.Client.Site Site { get => _Instance.Site; } @@ -54,23 +53,23 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP _Instance = instance; _InstanceClientRuntimeContext = instance; - _mapper = new MapperConfiguration(cfg => - { - cfg.CreateMap().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); - cfg.CreateMap().ConstructUsing(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); - cfg.CreateMap().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); - cfg.CreateMap().ConstructUsing(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); - cfg.CreateMap().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); - cfg.CreateMap().ConstructUsing(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); - cfg.CreateMap().ConstructUsing(instance_1283184912 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy(instance_1283184912)); - cfg.CreateMap().ConstructUsing(proxy1267236400 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy) proxy1267236400)._Instance); - cfg.CreateMap().ConstructUsing(instance_1865313808 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.WebProxy(instance_1865313808)); - cfg.CreateMap().ConstructUsing(proxy2115366516 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.WebProxy) proxy2115366516)._Instance); - }).CreateMapper(); + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_1283184912 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy(instance_1283184912)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1267236400 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy) proxy1267236400)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_1865313808 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.WebProxy(instance_1865313808)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy2115366516 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.WebProxy) proxy2115366516)._Instance); + } - - private readonly IMapper _mapper; } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientObjectProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientObjectProxy.g.cs index 074580a..95b0725 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientObjectProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientObjectProxy.g.cs @@ -9,7 +9,6 @@ #nullable enable using System; -using AutoMapper; namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { @@ -18,7 +17,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ClientObject _Instance { get; } - public ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext Context { get => _mapper.Map(_Instance.Context); } + public ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext Context { get => Mapster.TypeAdapter.Adapt(_Instance.Context); } public object Tag { get => _Instance.Tag; set => _Instance.Tag = value; } @@ -28,7 +27,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public bool? ServerObjectIsNull { get => _Instance.ServerObjectIsNull; } - public ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientObject TypedObject { get => _mapper.Map(_Instance.TypedObject); } + public ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientObject TypedObject { get => Mapster.TypeAdapter.Adapt(_Instance.TypedObject); } @@ -84,17 +83,14 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP _Instance = instance; - _mapper = new MapperConfiguration(cfg => - { - cfg.CreateMap().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); - cfg.CreateMap().ConstructUsing(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); - cfg.CreateMap().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); - cfg.CreateMap().ConstructUsing(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); - }).CreateMapper(); + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); + } - - private readonly IMapper _mapper; } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientRuntimeContextProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientRuntimeContextProxy.g.cs index 7cec917..13b571e 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientRuntimeContextProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.ClientRuntimeContextProxy.g.cs @@ -9,7 +9,6 @@ #nullable enable using System; -using AutoMapper; namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { @@ -78,7 +77,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public T CastTo(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientObject obj) where T : Microsoft.SharePoint.Client.ClientObject { - Microsoft.SharePoint.Client.ClientObject obj_ = _mapper.Map(obj); + Microsoft.SharePoint.Client.ClientObject obj_ = Mapster.TypeAdapter.Adapt(obj); var result_366781530 = _Instance.CastTo(obj_); return result_366781530; } @@ -146,21 +145,20 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP _Instance = instance; - _mapper = new MapperConfiguration(cfg => - { - cfg.CreateMap().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); - cfg.CreateMap().ConstructUsing(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); - cfg.CreateMap().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); - cfg.CreateMap().ConstructUsing(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); - cfg.CreateMap().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); - cfg.CreateMap().ConstructUsing(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); - cfg.CreateMap().ConstructUsing(instance_1283184912 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy(instance_1283184912)); - cfg.CreateMap().ConstructUsing(proxy1267236400 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy) proxy1267236400)._Instance); - }).CreateMapper(); + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_1283184912 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy(instance_1283184912)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1267236400 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy) proxy1267236400)._Instance); + } - - private readonly IMapper _mapper; } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.SecurableObjectProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.SecurableObjectProxy.g.cs index d0ec686..3173408 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.SecurableObjectProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.SecurableObjectProxy.g.cs @@ -9,7 +9,6 @@ #nullable enable using System; -using AutoMapper; namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { @@ -18,7 +17,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public new Microsoft.SharePoint.Client.SecurableObject _Instance { get; } public Microsoft.SharePoint.Client.ClientObject _InstanceClientObject { get; } - public ProxyInterfaceSourceGeneratorTests.Source.PnP.ISecurableObject FirstUniqueAncestorSecurableObject { get => _mapper.Map(_Instance.FirstUniqueAncestorSecurableObject); } + public ProxyInterfaceSourceGeneratorTests.Source.PnP.ISecurableObject FirstUniqueAncestorSecurableObject { get => Mapster.TypeAdapter.Adapt(_Instance.FirstUniqueAncestorSecurableObject); } public bool HasUniqueRoleAssignments { get => _Instance.HasUniqueRoleAssignments; } @@ -47,19 +46,17 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP _Instance = instance; _InstanceClientObject = instance; - _mapper = new MapperConfiguration(cfg => - { - cfg.CreateMap().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); - cfg.CreateMap().ConstructUsing(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); - cfg.CreateMap().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); - cfg.CreateMap().ConstructUsing(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); - cfg.CreateMap().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); - cfg.CreateMap().ConstructUsing(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); - }).CreateMapper(); + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); + } - - private readonly IMapper _mapper; } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.WebProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.WebProxy.g.cs index c668c0f..84e2d21 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.WebProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/Microsoft.SharePoint.Client.WebProxy.g.cs @@ -9,7 +9,6 @@ #nullable enable using System; -using AutoMapper; namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { @@ -292,7 +291,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public System.Uri WebUrlFromPageUrlDirect(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientContext context, System.Uri pageFullUrl) { - Microsoft.SharePoint.Client.ClientContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientContext context_ = Mapster.TypeAdapter.Adapt(context); System.Uri pageFullUrl_ = pageFullUrl; var result__258107370 = Microsoft.SharePoint.Client.Web.WebUrlFromPageUrlDirect(context_, pageFullUrl_); return result__258107370; @@ -300,7 +299,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public System.Uri WebUrlFromFolderUrlDirect(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientContext context, System.Uri folderFullUrl) { - Microsoft.SharePoint.Client.ClientContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientContext context_ = Mapster.TypeAdapter.Adapt(context); System.Uri folderFullUrl_ = folderFullUrl; var result_21992317 = Microsoft.SharePoint.Client.Web.WebUrlFromFolderUrlDirect(context_, folderFullUrl_); return result_21992317; @@ -330,7 +329,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ClientResult CreateOrganizationSharingLink(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url, bool isEditLink) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; bool isEditLink_ = isEditLink; var result_2070260011 = Microsoft.SharePoint.Client.Web.CreateOrganizationSharingLink(context_, url_, isEditLink_); @@ -339,7 +338,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public void DestroyOrganizationSharingLink(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url, bool isEditLink, bool removeAssociatedSharingLinkGroup) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; bool isEditLink_ = isEditLink; bool removeAssociatedSharingLinkGroup_ = removeAssociatedSharingLinkGroup; @@ -348,7 +347,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ClientResult GetSharingLinkKind(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string fileUrl) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string fileUrl_ = fileUrl; var result_654626020 = Microsoft.SharePoint.Client.Web.GetSharingLinkKind(context_, fileUrl_); return result_654626020; @@ -372,7 +371,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ClientResult GetWebUrlFromPageUrl(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string pageFullUrl) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string pageFullUrl_ = pageFullUrl; var result__907059837 = Microsoft.SharePoint.Client.Web.GetWebUrlFromPageUrl(context_, pageFullUrl_); return result__907059837; @@ -465,7 +464,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.SharingResult ShareObject(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url, string peoplePickerInput, string roleValue, int groupId, bool propagateAcl, bool sendEmail, bool includeAnonymousLinkInEmail, string emailSubject, string emailBody, bool useSimplifiedRoles) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; string peoplePickerInput_ = peoplePickerInput; string roleValue_ = roleValue; @@ -482,7 +481,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.SharingResult ForwardObjectLink(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url, string peoplePickerInput, string emailSubject, string emailBody) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; string peoplePickerInput_ = peoplePickerInput; string emailSubject_ = emailSubject; @@ -493,7 +492,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.SharingResult UnshareObject(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; var result__823224569 = Microsoft.SharePoint.Client.Web.UnshareObject(context_, url_); return result__823224569; @@ -501,7 +500,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ObjectSharingSettings GetObjectSharingSettings(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string objectUrl, int groupId, bool useSimplifiedRoles) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string objectUrl_ = objectUrl; int groupId_ = groupId; bool useSimplifiedRoles_ = useSimplifiedRoles; @@ -511,7 +510,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ClientResult CreateAnonymousLink(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url, bool isEditLink) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; bool isEditLink_ = isEditLink; var result__820192309 = Microsoft.SharePoint.Client.Web.CreateAnonymousLink(context_, url_, isEditLink_); @@ -520,7 +519,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ClientResult CreateAnonymousLinkWithExpiration(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url, bool isEditLink, string expirationString) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; bool isEditLink_ = isEditLink; string expirationString_ = expirationString; @@ -530,14 +529,14 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public void DeleteAllAnonymousLinksForObject(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; Microsoft.SharePoint.Client.Web.DeleteAllAnonymousLinksForObject(context_, url_); } public void DeleteAnonymousLinkForObject(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string url, bool isEditLink, bool removeAssociatedSharingLinkGroup) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string url_ = url; bool isEditLink_ = isEditLink; bool removeAssociatedSharingLinkGroup_ = removeAssociatedSharingLinkGroup; @@ -695,7 +694,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public System.Collections.Generic.IList GetDocumentLibraries(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string webFullUrl) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string webFullUrl_ = webFullUrl; var result_2078170246 = Microsoft.SharePoint.Client.Web.GetDocumentLibraries(context_, webFullUrl_); return result_2078170246; @@ -703,7 +702,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public System.Collections.Generic.IList GetDocumentAndMediaLibraries(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string webFullUrl, bool includePageLibraries) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string webFullUrl_ = webFullUrl; bool includePageLibraries_ = includePageLibraries; var result__431075153 = Microsoft.SharePoint.Client.Web.GetDocumentAndMediaLibraries(context_, webFullUrl_, includePageLibraries_); @@ -712,7 +711,7 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP public Microsoft.SharePoint.Client.ClientResult DefaultDocumentLibraryUrl(ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext context, string webUrl) { - Microsoft.SharePoint.Client.ClientRuntimeContext context_ = _mapper.Map(context); + Microsoft.SharePoint.Client.ClientRuntimeContext context_ = Mapster.TypeAdapter.Adapt(context); string webUrl_ = webUrl; var result_1125717726 = Microsoft.SharePoint.Client.Web.DefaultDocumentLibraryUrl(context_, webUrl_); return result_1125717726; @@ -921,21 +920,20 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP _Instance = instance; _InstanceSecurableObject = instance; - _mapper = new MapperConfiguration(cfg => - { - cfg.CreateMap().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); - cfg.CreateMap().ConstructUsing(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); - cfg.CreateMap().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); - cfg.CreateMap().ConstructUsing(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); - cfg.CreateMap().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); - cfg.CreateMap().ConstructUsing(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); - cfg.CreateMap().ConstructUsing(instance_1283184912 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy(instance_1283184912)); - cfg.CreateMap().ConstructUsing(proxy1267236400 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy) proxy1267236400)._Instance); - }).CreateMapper(); + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_205293328 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy(instance_205293328)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1345472640 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientRuntimeContextProxy) proxy1345472640)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_895746668 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy(instance_895746668)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1674261376 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientObjectProxy) proxy1674261376)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance592284880 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy(instance592284880)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy_300636294 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.SecurableObjectProxy) proxy_300636294)._Instance); + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_1283184912 => new ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy(instance_1283184912)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1267236400 => ((ProxyInterfaceSourceGeneratorTests.Source.PnP.ClientContextProxy) proxy1267236400)._Instance); + } - - private readonly IMapper _mapper; } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.HumanProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.HumanProxy.g.cs index f0eae81..ed7182e 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.HumanProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.HumanProxy.g.cs @@ -10,7 +10,6 @@ #nullable enable using System; - namespace ProxyInterfaceSourceGeneratorTests.Source { public partial class HumanProxy : IHuman @@ -35,8 +34,6 @@ namespace ProxyInterfaceSourceGeneratorTests.Source } - - } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IHuman.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IHuman.g.cs index f3026a9..c7f6c17 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IHuman.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IHuman.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source { public partial interface IHuman { + ProxyInterfaceSourceGeneratorTests.Source.Human _Instance { get; } + bool IsAlive { get; set; } string GetterOnly { get; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPerson.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPerson.g.cs index b77fa7d..a931497 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPerson.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPerson.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source { public partial interface IPerson { + new ProxyInterfaceSourceGeneratorTests.Source.Person _Instance { get; } + ProxyInterfaceSourceGeneratorTests.Source.MyStruct this[int i] { get; set; } ProxyInterfaceSourceGeneratorTests.Source.MyStruct this[int i, string s] { get; set; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPersonExtends.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPersonExtends.g.cs index 2a67d8a..62bcaac 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPersonExtends.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.IPersonExtends.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source { public partial interface IPersonExtends { + ProxyInterfaceSourceGeneratorTests.Source.PersonExtends _Instance { get; } + string StaticString { get; set; } string Name { get; set; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonExtendsProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonExtendsProxy.g.cs index 53278f3..6be1893 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonExtendsProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonExtendsProxy.g.cs @@ -10,7 +10,6 @@ #nullable enable using System; - namespace ProxyInterfaceSourceGeneratorTests.Source { public partial class PersonExtendsProxy : IPersonExtends @@ -122,8 +121,6 @@ namespace ProxyInterfaceSourceGeneratorTests.Source } - - } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonProxy.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonProxy.g.cs index 8cd92c9..5306c0a 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonProxy.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PersonProxy.g.cs @@ -9,15 +9,13 @@ #nullable enable using System; -using AutoMapper; namespace ProxyInterfaceSourceGeneratorTests.Source { public partial class PersonProxy : ProxyInterfaceSourceGeneratorTests.Source.HumanProxy, IPerson { public new ProxyInterfaceSourceGeneratorTests.Source.Person _Instance { get; } - public ProxyInterfaceSourceGeneratorTests.Source.Human _InstanceBase { get; } - + public ProxyInterfaceSourceGeneratorTests.Source.Human _InstanceHuman { get; } public ProxyInterfaceSourceGeneratorTests.Source.MyStruct this[int i] { get => _Instance[i]; set => _Instance[i] = value; } @@ -35,9 +33,9 @@ namespace ProxyInterfaceSourceGeneratorTests.Source public System.Collections.Generic.IList AddHuman(ProxyInterfaceSourceGeneratorTests.Source.IHuman h) { - ProxyInterfaceSourceGeneratorTests.Source.Human h_ = _mapper.Map(h); + ProxyInterfaceSourceGeneratorTests.Source.Human h_ = Mapster.TypeAdapter.Adapt(h); var result_907493286 = _Instance.AddHuman(h_); - return _mapper.Map>(result_907493286); + return Mapster.TypeAdapter.Adapt>(result_907493286); } public void Void() @@ -153,17 +151,13 @@ namespace ProxyInterfaceSourceGeneratorTests.Source public PersonProxy(ProxyInterfaceSourceGeneratorTests.Source.Person instance) : base(instance) { _Instance = instance; - _InstanceBase = instance; + _InstanceHuman = instance; + + Mapster.TypeAdapterConfig.NewConfig().ConstructUsing(instance_1903550791 => new ProxyInterfaceSourceGeneratorTests.Source.HumanProxy(instance_1903550791)); + Mapster.TypeAdapterConfig.NewConfig().MapWith(proxy1075308949 => ((ProxyInterfaceSourceGeneratorTests.Source.HumanProxy) proxy1075308949)._Instance); - _mapper = new MapperConfiguration(cfg => - { - cfg.CreateMap().ConstructUsing(instance_1903550791 => new ProxyInterfaceSourceGeneratorTests.Source.HumanProxy(instance_1903550791)); - cfg.CreateMap().ConstructUsing(proxy1075308949 => ((ProxyInterfaceSourceGeneratorTests.Source.HumanProxy) proxy1075308949)._Instance); - }).CreateMapper(); } - - private readonly IMapper _mapper; } } #nullable disable \ No newline at end of file diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientContext.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientContext.g.cs index b5337cf..e918e18 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientContext.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientContext.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { public partial interface IClientContext { + new Microsoft.SharePoint.Client.ClientContext _Instance { get; } + ProxyInterfaceSourceGeneratorTests.Source.PnP.IWeb Web { get; } Microsoft.SharePoint.Client.Site Site { get; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientObject.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientObject.g.cs index 0ff1b17..ca23d2b 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientObject.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientObject.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { public partial interface IClientObject { + Microsoft.SharePoint.Client.ClientObject _Instance { get; } + ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext Context { get; } object Tag { get; set; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext.g.cs index bb25571..e2676ca 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IClientRuntimeContext.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { public partial interface IClientRuntimeContext { + Microsoft.SharePoint.Client.ClientRuntimeContext _Instance { get; } + string Url { get; } string ApplicationName { get; set; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.ISecurableObject.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.ISecurableObject.g.cs index 087a983..d5162aa 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.ISecurableObject.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.ISecurableObject.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { public partial interface ISecurableObject { + new Microsoft.SharePoint.Client.SecurableObject _Instance { get; } + ProxyInterfaceSourceGeneratorTests.Source.PnP.ISecurableObject FirstUniqueAncestorSecurableObject { get; } bool HasUniqueRoleAssignments { get; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IWeb.g.cs b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IWeb.g.cs index e3b0c38..b92e467 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IWeb.g.cs +++ b/tests/ProxyInterfaceSourceGeneratorTests/Destination/ProxyInterfaceSourceGeneratorTests.Source.PnP.IWeb.g.cs @@ -14,6 +14,8 @@ namespace ProxyInterfaceSourceGeneratorTests.Source.PnP { public partial interface IWeb { + new Microsoft.SharePoint.Client.Web _Instance { get; } + string AccessRequestListUrl { get; } string AccessRequestSiteDescription { get; } diff --git a/tests/ProxyInterfaceSourceGeneratorTests/ProxyInterfaceSourceGeneratorTests.csproj b/tests/ProxyInterfaceSourceGeneratorTests/ProxyInterfaceSourceGeneratorTests.csproj index fc77ddd..536f4b3 100644 --- a/tests/ProxyInterfaceSourceGeneratorTests/ProxyInterfaceSourceGeneratorTests.csproj +++ b/tests/ProxyInterfaceSourceGeneratorTests/ProxyInterfaceSourceGeneratorTests.csproj @@ -11,6 +11,7 @@ +