protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService) { try { var e = context.GetContextEntity(); Intelbras.CRM2013.Domain.Model.ProdutoListaPSDPPPSCF mProdutoListaPSD = e.Parse <Intelbras.CRM2013.Domain.Model.ProdutoListaPSDPPPSCF>(context.OrganizationName, context.IsExecutingOffline); ProdutoListaPSDService ServiceProdutoListaPSD = new ProdutoListaPSDService(context.OrganizationName, context.IsExecutingOffline); switch (EnumConverter <MessageName>(context.MessageName.ToLower())) { case MessageName.Create: { switch ((Stage)context.Stage) { case Stage.PreOperation: if (ServiceProdutoListaPSD.ValidarExistenciaPreCreate(ref mProdutoListaPSD)) { throw new ArgumentException("(CRM) Produto já vinculado a Lista corrente."); } break; } break; } case MessageName.Update: { switch ((Stage)context.Stage) { case Stage.PreOperation: if (ServiceProdutoListaPSD.ValidarExistencia(ref mProdutoListaPSD)) { throw new ArgumentException("(CRM) Produto já vinculado a Lista corrente."); } Domain.Model.ProdutoListaPSDPPPSCF mProdutoListaPSDImage = ((Entity)context.PreEntityImages["imagem"]).Parse <Domain.Model.ProdutoListaPSDPPPSCF>(context.OrganizationName, context.IsExecutingOffline, context.UserId); var listaPrecoPSDPPPSCF_Entity = new Entity(SDKore.Crm.Util.Utility.GetEntityName <ListaPrecoPSDPPPSCF>()); listaPrecoPSDPPPSCF_Entity["statuscode"] = new OptionSetValue((int)Domain.Enum.ListaPrecoPSDPPPSCF.StatusIntegracao.NaoIntegrado); if (mProdutoListaPSDImage.PSD != null) { listaPrecoPSDPPPSCF_Entity.Id = mProdutoListaPSDImage.PSD.Id; adminService.Update(listaPrecoPSDPPPSCF_Entity); } break; } break; } } } catch (Exception erro) { throw new InvalidPluginExecutionException(SDKore.Helper.Error.GetMessageError(erro)); } }
public void ProdutoListaPSD_PRoduto_Existente() { var psd = new Domain.Model.ProdutoListaPSDPPPSCF(this.OrganizationName, this.IsOffline); psd.PSD = new SDKore.DomainModel.Lookup { Id = new Guid("62A30090-5DFD-E311-91F9-00155D013E44") }; //Teste Salles psd.Produto = new SDKore.DomainModel.Lookup { Id = new Guid("5A360BBD-90DC-E311-88A2-00155D013E44") }; psd.PSDControlado = true; //var resultado = null; //new Domain.Servicos.ProdutoListaPSDService(this.OrganizationName, this.IsOffline).ValidarExistencia(psd); //if (resultado) // Assert.Pass("Scuesso."); //else // Assert.Fail("Erro. O produto deveria existir."); }