コード例 #1
0
ファイル: ManagerPreEvent.cs プロジェクト: ertprs/crm_fonte
        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));
            }
        }
コード例 #2
0
        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.");
        }