protected override bool ExecutePostOpSync(IPluginSetup p) { if (!ObjectProviderService.Contains <IFrozenAccountManagement>()) { throw new NullReferenceException(nameof(IFrozenAccountManagement)); } var l = new LocalLogger(p.Logging, ClassName); var target = p.Helper.GetTargetEntity <CrmObject.Account>(); if (!target.Contains(CrmObject.Account.Fields.think_frozen)) { return(l.WriteAndReturn(false, $"Attribute not in target: {CrmObject.Account.Fields.think_frozen}.")); } var preImage = p.Context.PreEntityImages[ImageName].ToEntity <CrmObject.Account>(); if (!DidValueChange(preImage, target, CrmObject.Account.Fields.think_frozen)) { return(l.WriteAndReturn(false, "Frozen flag did not change, Exiting plugin.")); } try { ObjectProviderService.GetObject <IFrozenAccountManagement>() .ProcessChangedFrozenFlag(p.SystemService, l, target); } catch (Exception ex) { p.Logging.Write("Exception while updating Frozen flag on Account."); p.Logging.Write(ex); throw new InvalidPluginExecutionException( "Plugin Error while updating Frozen Flag on Account records. Please try again. If this issue continues click download log file and contact support."); } return(l.WriteAndReturn(false, "Execution Completed.")); }
public FrozenFlagChangedTestHarness() : base(true) { ObjectProviderService.RegisterType <IFrozenAccountManagement>(A.Fake <IFrozenAccountManagement>()); }
public FrozenFlagChanged() { ObjectProviderService.RegisterType <IFrozenAccountManagement>(new FrozenAccountManagement()); }
public bool HasInjectableType <T>() { return(ObjectProviderService.Contains <T>()); }