using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
namespace Utility
{
public class PluginServiceProvider
{
public int Index = 1;
public ITracingService TracingService { get; set; }
public IPluginExecutionContext Context { get; set; }
public IOrganizationServiceFactory ServiceFactory { get; set; }
public IOrganizationService UserService { get; set; }
public IOrganizationService SysService { get; set; }
public PluginServiceProvider() { }
/// <summary>
/// Plugin的实例,或取Plugin对象。
/// </summary>
/// <param name="serviceProvider">Execute IServiceProvider类型的参数</param>
public PluginServiceProvider(IServiceProvider serviceProvider)
{
TracingService = GetService<ITracingService>(serviceProvider);
Context = GetService<IPluginExecutionContext>(serviceProvider);//上下文
ServiceFactory = GetService<IOrganizationServiceFactory>(serviceProvider);
SysService = this.ServiceFactory.CreateOrganizationService(null);//管理员权限
UserService = this.ServiceFactory.CreateOrganizationService(this.Context.UserId);//用户权限
}
/// <summary>
/// 实体所处状态
/// </summary>
/// <param name="entityName">实体名称</param>
/// <param name="action">create,update,,delete</param>
/// <param name="state">20(pre),40(post) </param>
/// <returns></returns>
public bool EqualEntity