public void RefreshFromSdkMessage(SdkMessage msg) { if (msg == null) { throw new ArgumentNullException("msg"); } if (msg.SdkMessageId != null) { MessageId = msg.SdkMessageId.Value; } if (msg.Name != null) { Name = msg.Name; } if (msg.CustomizationLevel != null) { CustomizationLevel = msg.CustomizationLevel.Value; } if (msg.CreatedOn != null && (msg.CreatedOn.HasValue)) { m_createdOn = msg.CreatedOn.Value; } if (msg.ModifiedOn != null && (msg.ModifiedOn.HasValue)) { m_modifiedOn = msg.ModifiedOn.Value; } }
private static void MapPluginAssemblyStepObject(PluginType pluginType , SdkMessageProcessingStep pluginStep , SdkMessage sdkMessage , SdkMessageFilter filter , List <SdkMessageProcessingStepImage> images , Assembly pluginAssemblyTemp , Type pluginAssemblyTypeTemp) { var pluginAssemblyStepTemp = pluginAssemblyTemp.PluginTypes.FirstOrDefault(item1 => item1.Name == pluginType.Name) .Steps.FirstOrDefault <Step>(item => item.Name == pluginStep.Name); if (pluginAssemblyStepTemp == null) { pluginAssemblyStepTemp = new Step() { Id = pluginStep.SdkMessageProcessingStepId.ToString(), CustomConfiguration = pluginStep.Configuration, Name = pluginStep.Name, Description = pluginStep.Description, FilteringAttributes = pluginStep.FilteringAttributes, ImpersonatingUserFullname = pluginStep.ImpersonatingUserId == null ? string.Empty : pluginStep.ImpersonatingUserId.Name, MessageName = sdkMessage != null ? sdkMessage.CategoryName : null, Mode = ((SdkMessageProcessingStep_Mode)pluginStep.Mode.Value).ToString(), PrimaryEntityName = filter.PrimaryObjectTypeCode, Rank = pluginStep.Rank, Stage = ((SdkMessageProcessingStep_Stage)pluginStep.Stage.Value).ToString(), SupportedDeployment = ((SdkMessageProcessingStep_SupportedDeployment)pluginStep.SupportedDeployment.Value).ToString(), Images = new List <Image>() }; MapImagesObject(images, pluginStep, pluginAssemblyStepTemp); pluginAssemblyTypeTemp.Steps.Add(pluginAssemblyStepTemp); } }
public override bool GenerateSdkMessage(SdkMessage sdkMessage, IServiceProvider services) { bool whitelist, blacklist = false; whitelist = _whitelistFilters.Any(filter => filter.GenerateSdkMessage(sdkMessage, services)); if (whitelist) { Trace.TraceInformation($"Whitelist: {sdkMessage.Name} is on the whitelist and will be generated."); } else { if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive) { return(false); } blacklist = _blacklistFilters.Any(filter => filter.GenerateSdkMessage(sdkMessage, services)); if (!blacklist) { Trace.TraceInformation($"Blacklist: {sdkMessage.Name} is on the blacklist and will not be generated."); } } return(whitelist || blacklist); }
private static void MapPluginAssemblyStepObject(SdkMessageProcessingStep pluginStep , SdkMessage sdkMessage , SdkMessageFilter filter , List <SdkMessageProcessingStepImage> images , Assembly pluginAssembly , Type pluginType) { var step = new Step() { Id = pluginStep.SdkMessageProcessingStepId, CustomConfiguration = pluginStep.Configuration, Name = pluginStep.Name, Description = pluginStep.Description, FilteringAttributes = pluginStep.FilteringAttributes, ImpersonatingUserFullname = pluginStep.ImpersonatingUserId?.Name ?? string.Empty, MessageName = sdkMessage?.Name, Mode = pluginStep.ModeEnum, PrimaryEntityName = filter.PrimaryObjectTypeCode, Rank = pluginStep.Rank, Stage = pluginStep.StageEnum, SupportedDeployment = pluginStep.SupportedDeploymentEnum, Images = new List <Image>() }; MapImagesObject(images, pluginStep, step); pluginType.Steps.Add(step); }
async Task <bool> ICodeWriterMessageFilterService.GenerateSdkMessageAsync(SdkMessage message, IServiceProvider services) { await CrmSvcUtil.CrmSvcUtilLogger.TraceMethodStartAsync("Entering {0}", MethodBase.GetCurrentMethod().Name); await CrmSvcUtil.CrmSvcUtilLogger.TraceMethodStopAsync("Exiting {0}", MethodBase.GetCurrentMethod().Name); return((this._generateMessages || this._generateCustomActions) && !message.IsPrivate && message.SdkMessageFilters.Count != 0); }
internal SdkMessageResponse ToSdk(SdkMessage sdk) { var response = new SdkMessageResponse(Id); foreach (var field in ResponseFields) { response.ResponseFields[field.Key] = field.Value; } return(response); }
public SdkMessagePair ToSdk(SdkMessage sdk) { var pair = new SdkMessagePair(sdk, Id, MessageNamespace); pair.Request = Request.ToSdk(pair); if (Response != null) { pair.Response = Response.ToSdk(sdk); } return(pair); }
private static void MapPluginAssemblyStepObject(SdkMessageProcessingStep pluginStep , SdkMessage sdkMessage , SdkMessageFilter filter , List <SdkMessageProcessingStepImage> images , Assembly pluginAssembly , Type pluginType) { var step = MapStep(pluginStep, sdkMessage, filter); MapImagesObject(images, pluginStep, step); pluginType.Steps.Add(step); }
protected override bool?GenerateSdkMessage(SdkMessage sdkMessage) { if (sdkMessage.IsCustomAction && FilterConfiguration.Customizations.CustomizationStrategy == CustomizationStrategy.UncustomizedOnly) { return(false); } else if (!sdkMessage.IsCustomAction && FilterConfiguration.Customizations.CustomizationStrategy == CustomizationStrategy.CustomOnly) { return(false); } return(FilterConfiguration.Customizations.CustomizationStrategy == CustomizationStrategy.Default ? (bool?)null : true); }
public bool GenerateSdkMessage(SdkMessage message, IServiceProvider services) { List <string> lowerCaseMessages = (from x in _messageFilter select x.ToLower()).ToList <string>(); if (!message.IsCustomAction) { return(false); } if (!lowerCaseMessages.Contains(message.Name.ToLower())) { return(false); } return(this.DefaultService.GenerateSdkMessage(message, services)); }
private static Step MapStep(SdkMessageProcessingStep pluginStep, SdkMessage sdkMessage, SdkMessageFilter filter) => new Step() { Id = pluginStep.SdkMessageProcessingStepId, CustomConfiguration = pluginStep.Configuration, Name = pluginStep.Name, Description = pluginStep.Description, FilteringAttributes = pluginStep.FilteringAttributes, ImpersonatingUserFullname = pluginStep.ImpersonatingUserId?.Name ?? string.Empty, MessageName = sdkMessage?.Name, Mode = pluginStep.ModeEnum, PrimaryEntityName = filter.PrimaryObjectTypeCode, Rank = pluginStep.Rank, Stage = pluginStep.StageEnum, SupportedDeployment = pluginStep.SupportedDeploymentEnum, Images = new List <Image>() };
public static string GetI18nString(SdkMessage sdkMessage) { if (!SdkUtil._isInitialised) { SdkUtil.Initialise(); } try { return(SdkUtil._resourceBundle.GetString(sdkMessage.ToString())); } catch (MissingManifestResourceException ex) { Logger.Log(TraceLevel.Critical, ex.Message); return(ex.Message); } }
public MetadataMessage(SdkMessage message) { Name = message.Name; Id = message.Id; IsPrivate = message.IsPrivate; IsCustomAction = message.IsCustomAction; MetadataPairs = new Dictionary <Guid, MetadataPair>(); foreach (var pair in message.SdkMessagePairs) { MetadataPairs[pair.Key] = new MetadataPair(pair.Value); } MetadataFilters = new Dictionary <Guid, MetadataFilter>(); foreach (var filter in message.SdkMessageFilters) { MetadataFilters[filter.Key] = new MetadataFilter(filter.Value); } }
private static bool MapPluginObject(SdkMessageProcessingStep pluginStep , SdkMessage sdkMessage , SdkMessageFilter filter , List <SdkMessageProcessingStepImage> images , Assembly pluginAssemblyObject , PluginType pluginType ) { var typeObject = MapPluginAssemblyTypeObject(pluginType, pluginAssemblyObject); if (pluginStep != null) { MapPluginAssemblyStepObject(pluginStep, sdkMessage, filter, images, pluginAssemblyObject, typeObject); } return(true); }
public void LogMessage(SdkMessage message) { if (Enabled) { if (MParticle.Instance.Identity.CurrentUser != null) { eventsApiManager.EnqueueMessage(CreateBatch(new SdkMessage[] { message })); } else { lock (pendingMessages) { pendingMessages.Add(message); } } } }
private static Step MapStep(SdkMessageProcessingStep pluginStep, SdkMessage sdkMessage, SdkMessageFilter filter) => new Step() { Id = pluginStep.SdkMessageProcessingStepId, CustomConfiguration = pluginStep.Configuration, Name = pluginStep.Name, Description = pluginStep.Description, FilteringAttributes = pluginStep.FilteringAttributes != null?string.Join(",", pluginStep.FilteringAttributes.Split(',').OrderBy(a => a)) : null, ImpersonatingUserFullname = pluginStep.ImpersonatingUserId?.Name ?? string.Empty, MessageName = sdkMessage?.Name, Mode = pluginStep.ModeEnum, PrimaryEntityName = filter?.PrimaryObjectTypeCode, Rank = pluginStep.Rank, Stage = pluginStep.StageEnum, AsyncAutoDelete = pluginStep.AsyncAutoDelete, SupportedDeployment = pluginStep.SupportedDeploymentEnum, StateCode = pluginStep.StateCode, Images = new List <Image>() };
public Dictionary <string, object> GenerateCrmEntities() { var entityList = new Dictionary <string, object>(); var entity = new SdkMessage(); entity.SdkMessageId = new Guid?(); entity["sdkmessageid"] = MessageId; if (!string.IsNullOrEmpty(Name)) { entity.Name = Name; } entityList.Add(SdkMessage.EntityLogicalName, entity); return(entityList); }
public override bool GenerateSdkMessage(SdkMessage sdkMessage, IServiceProvider services) { if (DynamicsMetadataCache.SdkMessages.HasBy(sdkMessage)) { return(true); } Services = services; bool?value = GenerateSdkMessage(sdkMessage); switch (Strategy) { case FilterListStrategy.Whitelist: var whitelistConfig = FilterConfiguration as WhitelistElement; if (value.HasValue) { if (value.Value) { DynamicsMetadataCache.SdkMessages.AddBy(sdkMessage); } return(value.Value); } else { if (whitelistConfig.Filter == WhitelistFilter.Inclusive) { DynamicsMetadataCache.SdkMessages.AddBy(sdkMessage); } } return(whitelistConfig.Filter == WhitelistFilter.Inclusive); case FilterListStrategy.Blacklist: return(!value.HasValue ? true : !value.Value); } // never gets here. return(value.Value); }
public Activity(SdkMessage message, string entityLogicalName, bool isActivityEntity) { this.PrimaryEntityLogicalName = entityLogicalName; this.LogicalName = entityLogicalName; List <Member> inputs = new List <Member>(); List <Member> outputs = new List <Member>(); var inputFields = message.SdkMessagePairs?.Values?.FirstOrDefault()?.Request?.RequestFields?.Values; if (inputFields != null) { foreach (var input in inputFields) { var name = input.Name; if (!string.IsNullOrEmpty(entityLogicalName) && ($"{entityLogicalName}id" == name.ToLower() || (isActivityEntity && name.ToLower() == "activityid"))) { name = "Target"; } var next = new Member(name, input.CLRFormatter.ClrToDatatype(), !input.IsOptional, name); inputs.Add(next); } } var outputFields = message.SdkMessagePairs?.Values?.FirstOrDefault()?.Response?.ResponseFields?.Values; if (outputFields != null) { foreach (var output in outputFields) { var next = new Member(output.Name, output.CLRFormatter.ClrToDatatype(), true, output.Name); outputs.Add(next); } } this.InputMembers = inputs.ToArray(); this.OutputMembers = outputs.ToArray(); }
private static bool MapPluginObject(List <Assembly> pluginAssemblyList , PluginAssembly pluginAssembly , PluginType pluginType , SdkMessageProcessingStep pluginStep , SdkMessage sdkMessage , SdkMessageFilter filter , List <SdkMessageProcessingStepImage> images) { var pluginAssemblyTemp = MapPluginAssemblyObject(pluginAssemblyList, pluginAssembly); if (pluginAssemblyTemp == null) { return(false); } var pluginAssemblyTypeTemp = MapPluginAssemblyTypeObject(pluginType, pluginAssemblyTemp); if (pluginStep != null) { MapPluginAssemblyStepObject(pluginType, pluginStep, sdkMessage, filter, images, pluginAssemblyTemp, pluginAssemblyTypeTemp); } return(true); }
public Microsoft.Xrm.Sdk.EntityReference GetFilterFor(SdkMessage sdkMessage, string logicalname) { var key = $"{sdkMessage.SdkMessageId.Value.ToString()}.{logicalname}"; if (filters.ContainsKey(key)) { var v = filters[key]; if (v != null) { return(v.ToEntityReference()); } else { return(null); } } filters[key] = (from f in uow.SdkMessageFilters.GetQuery() where f.SdkMessageId.Id == sdkMessage.SdkMessageId && f.PrimaryObjectTypeCode == logicalname select f).SingleOrDefault(); return(GetFilterFor(sdkMessage, logicalname)); }
public SdkMessageCacheItem(SdkMessage metadata) : this() { ParseMetadata(metadata); }
public bool GenerateSdkMessage(SdkMessage sdkMessage, IServiceProvider services) { return(DefaultService.GenerateSdkMessage(sdkMessage, services)); }
public CrmMessage(CrmOrganization org, SdkMessage msg) : this(org) { RefreshFromSdkMessage(msg); }
protected override bool?GenerateSdkMessage(SdkMessage sdkMessage) { return(null); }
public EntityViewItem(SdkMessage entity) { this.SdkMessage = entity; }
private static bool MapWebHookObject(List <ServiceEndpt> webHookList, ServiceEndpoint serviceEndpoint, SdkMessageProcessingStep steps, SdkMessage message, SdkMessageFilter filters) { var webHook = MapWebHook(serviceEndpoint); webHook.Steps.Add(MapStep(steps, message, filters)); webHookList.Add(webHook); return(true); }
protected abstract bool?GenerateSdkMessage(SdkMessage sdkMessage);