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."));
        }
Ejemplo n.º 2
0
 public FrozenFlagChangedTestHarness() : base(true)
 {
     ObjectProviderService.RegisterType <IFrozenAccountManagement>(A.Fake <IFrozenAccountManagement>());
 }
 public FrozenFlagChanged()
 {
     ObjectProviderService.RegisterType <IFrozenAccountManagement>(new FrozenAccountManagement());
 }
Ejemplo n.º 4
0
 public bool HasInjectableType <T>()
 {
     return(ObjectProviderService.Contains <T>());
 }