public override async void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle,
                                                      NSIndexPath indexPath)
        {
            if (editingStyle != UITableViewCellEditingStyle.Delete)
            {
                return;
            }

            using (var client = new TarefaService())
            {
                try
                {
                    await client.DeleteAsync(_tarefas[indexPath.Row]);
                }
                catch (Exception)
                {
                    const string retorno = "Ocorreu um erro ao realizar operação! Por favor, tente novamente mais tarde!";
                    new UIAlertView("Deletar Tarefa", retorno, null, "OK", null).Show();
                    return;
                }
            }

            using (var client = new TarefaService())
            {
                _tarefas = await client.ListarAsync();
            }

            if (_tarefas != null && _tarefas?.Count > 0)
            {
                TableView.ReloadData();
            }
        }
Exemple #2
0
 private void DadosAutomaticos()
 {
     servicoConta  = new ContaService();
     servicoTarefa = new TarefaService();
     Tarefas       = new ObservableCollection <Model.Tarefa>(servicoTarefa.ObterTarefasDoUsuarioLogado(false).Where(c => c.Situacao == "Atrasada"));
     NomeUsuario   = "Bem vindo, " + servicoConta.ObterUsuarioPorIdLogado().NomeUsuario;
 }
Exemple #3
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
            {
            case Domain.Enum.Plugin.MessageName.Create:
                if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
                {
                    var entidade = (Entity)context.InputParameters["Target"];
                    Domain.Model.CompromissosDoCanal CompromissoTarget = entidade.Parse <Domain.Model.CompromissosDoCanal>(context.OrganizationName, context.IsExecutingOffline, adminService);
                    var compromissosDoCanalService = new CompromissosDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService);
                    CompromissosDoPrograma mCompromissosDoPrograma = compromissosDoCanalService.BuscarCompromissoDoPrograma(CompromissoTarget.Compromisso.Id);


                    #region Pendencias KeyAccount-representante
                    if (mCompromissosDoPrograma.TipoMonitoramento == (int)Domain.Enum.CompromissoPrograma.TipoMonitoramento.PorTarefas)
                    {
                        if (mCompromissosDoPrograma.Codigo.Value != (int)Domain.Enum.CompromissoPrograma.Codigo.Showroom)
                        {
                            List <string> lstAtividades = new TarefaService(context.OrganizationName, context.IsExecutingOffline, adminService).ListarAtividadesCheckup(CompromissoTarget.Compromisso.Id);

                            if (lstAtividades == null || lstAtividades.Count <= 0)
                            {
                                throw new ArgumentException("(CRM) Lista de atividades não encontrada para o Compromisso : " + mCompromissosDoPrograma.Nome + " .Operação cancelada.");
                            }

                            string atividade = new TarefaService(context.OrganizationName, context.IsExecutingOffline, adminService).ObterProximaAtividadeCheckup(lstAtividades, null);

                            if (!string.IsNullOrEmpty(atividade))
                            {
                                Domain.Model.Usuario proprietario = new UsuarioService(context.OrganizationName, context.IsExecutingOffline, adminService).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", CompromissoTarget.Id);
                                if (proprietario != null)
                                {
                                    compromissosDoCanalService.GerarAtividadeChecklist(atividade, CompromissoTarget, proprietario);
                                }
                            }
                        }
                    }
                    #endregion
                }

                break;

            case Domain.Enum.Plugin.MessageName.Update:
                if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity &&
                    context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
                {
                    var entidade = (Entity)context.InputParameters["Target"];
                    Domain.Model.CompromissosDoCanal CompromissoPost   = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.CompromissosDoCanal>(context.OrganizationName, context.IsExecutingOffline, adminService);
                    Domain.Model.CompromissosDoCanal CompromissoTarget = entidade.Parse <Domain.Model.CompromissosDoCanal>(context.OrganizationName, context.IsExecutingOffline, adminService);

                    if (CompromissoTarget.StatusCompromisso != null)
                    {
                        var compromissosDoCanalService = new CompromissosDoCanalService(context.OrganizationName, context.IsExecutingOffline, adminService);
                        // CASO DE USO 6 – ALTERAÇÃO DE STATUS DE COMPROMISSO DE UM CANAL - ATUALIZA STATUS DO BENEFÍCIO DO CANAL
                        compromissosDoCanalService.AtualizarBeneficiosECompromissosCascata(CompromissoPost);
                    }
                }
                break;
            }
        }
Exemple #4
0
 public CronogramasViewModel()
 {
     NoPrazoCommand    = new Command(SinalizarNoPrazo);
     AtrasadaCommand   = new Command(SinalizarAtrasada);
     FinalizadaCommand = new Command(SinalizarFinalizada);
     servicoTarefa     = new TarefaService();
     Tarefas           = new ObservableCollection <Model.Tarefa>(ListaTarefas);
 }
Exemple #5
0
 public TarefaServiceTest()
 {
     _tarefaRepositoryMock          = new Mock <ITarefaRepository>();
     _criarTarefaRequestValidator   = new CriarTarefaRequestValidator();
     _alterarTarefaRequestValidator = new AlterarTarefaRequestValidator();
     _tarefaAdapter = new TarefaAdapter();
     _tarefaService = new TarefaService(_tarefaRepositoryMock.Object, _criarTarefaRequestValidator, _tarefaAdapter, _alterarTarefaRequestValidator);
 }
Exemple #6
0
        public void Execute(IServiceProvider serviceProvider)
        {
            lock (thisLock)
            {
                var                         context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                ITracingService             trace          = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                IOrganizationService        service        = serviceFactory.CreateOrganizationService(null);

                PausaTarefaService pausaTarefaService = new PausaTarefaService(context.OrganizationName, context.IsExecutingOffline, service);

                try
                {
                    trace.Trace(context.MessageName);

                    switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
                    {
                    case Domain.Enum.Plugin.MessageName.Create:
                        var entidade = (Entity)context.InputParameters["Target"];

                        //altera a entidade Tarefa para ficar com o mesmo motivo da Pausa
                        var pausaCreate = pausaTarefaService.BuscaPausaTarefa(entidade.Id);
                        if (!pausaTarefaService.PersistirMotivoPausaNaTarefa(pausaCreate))
                        {
                            throw new ArgumentException("Não foi possível atualizar o Motivo da pausa na Tarefa.");
                        }

                        break;

                    case Domain.Enum.Plugin.MessageName.Update:

                        if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity)
                        {
                            PausaTarefa pausaUpdate = context.PostEntityImages["imagem"].Parse <PausaTarefa>(context.OrganizationName, context.IsExecutingOffline, service);
                            if (pausaUpdate.DataTermino != null || pausaUpdate.DataTermino != DateTime.MinValue)
                            {
                                //atribui vazio para o Motivo da Pausa na Tarefa
                                var tarefa = pausaTarefaService.BuscaTarefa(pausaUpdate.Tarefa.Id);
                                tarefa.MotivoPausa = " ";      //para salvar no banco, não funciona se usar null ou string.Empty

                                TarefaService tarefaService = new TarefaService(context.OrganizationName, context.IsExecutingOffline, service);
                                tarefaService.Persistir(tarefa);
                            }
                        }

                        break;
                    }
                }
                catch (Exception ex)
                {
                    string message = SDKore.Helper.Error.Handler(ex);

                    trace.Trace(SDKore.Helper.Error.GetMessageError(ex));
                    throw new InvalidPluginExecutionException(message, ex);
                }
            }
        }
 public CriarTarefaViewModel()
 {
     SalvarTarefaCommand        = new Command(CriarTarefa);
     AtribuirResponsavelCommand = new Command(AtribuirAoResponsavel);
     DadosAutomaticos();
     servicoConta   = new ContaService();
     servicoGrupo2  = new GrupoService();
     servicoProjeto = new ProjetoService();
     Contatos       = new ObservableCollection <Usuario>(servicoGrupo2.ObterMembrosDoGrupoContatos());
     Projetos       = new ObservableCollection <Model.Projeto>(servicoProjeto.ObterProjetosDoUsuarioLogado(false));
     servicoTarefa  = new TarefaService();
 }
Exemple #8
0
        public void AlternarStatusTarefa_TarefaNaoEncontrada_DeveDarErro()
        {
            // Act
            var mock = new Mock <ITarefaRepository>();

            mock.Setup(x => x.ObterPorId(Guid.NewGuid())).Returns <object>(null);

            var service = new TarefaService(mock.Object, _mapper.Object);

            // Assert
            Assert.ThrowsAsync <Exception>(() => service.Alternar(Guid.NewGuid()));
        }
Exemple #9
0
 private void MonitoramentoPorTarefa()
 {
     try
     {
         TarefaService service = new TarefaService(OrganizationName, IsOffline);
         service.MonitoramentoPorTarefas();
     }
     catch (Exception ex)
     {
         string mensagem = SDKore.Helper.Error.Handler(ex);
         Console.WriteLine("Erro no Monitoramento Automatico: " + mensagem);
     }
 }
        public override async void ViewDidLoad()
        {
            base.ViewDidLoad(); // Perform any additional setup after loading the view, typically from a nib.

            using (var client = new TarefaService())
            {
                _tarefas = await client.ListarAsync();
            }

            if (_tarefas != null && _tarefas?.Count > 0)
            {
                TableView.ReloadData();
            }
        }
        public void SolicitacaoShowroom()
        {
            string organizationName = ConfigurationManager.GetSettingValue("OrganizacaoIntelbras");

            Intelbras.CRM2013.Domain.Model.SolicitacaoBeneficio SolicitBeneficioPost = new Domain.Servicos.SolicitacaoBeneficioService(organizationName, false).ObterPor(new Guid("501E2383-194E-E411-93F5-00155D013E70"));


            Domain.Model.CompromissosDoCanal compromissoCanal = new Domain.Model.CompromissosDoCanal(organizationName, false);

            Domain.Model.Conta canal = new Domain.Servicos.ContaService(organizationName, false)
                                       .BuscaConta(SolicitBeneficioPost.Canal.Id);

            Domain.Model.CompromissosDoPrograma compromissoPrograma = new Domain.Servicos.CompromissosDoCanalService(organizationName, false)
                                                                      .BuscarCompromissoDoPrograma((int)Domain.Enum.CompromissoPrograma.Codigo.Showroom);

            if (canal == null)
            {
                throw new ArgumentException("Canal não encontrado.Operação cancelada.");
            }
            if (compromissoPrograma == null)
            {
                throw new ArgumentException("Compromisso do Programa não encontrado.Operação cancelada.");
            }

            Domain.Model.CompromissosDoCanal compCanal = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(organizationName, false).BuscarCompromissoCanal(compromissoPrograma.ID.Value, SolicitBeneficioPost.UnidadedeNegocio.Id, canal.ID.Value);
            if (compCanal == null)
            {
                throw new ArgumentException("Compromisso do Canal para o compromisso : " + compromissoPrograma.Nome + " não encontrado.Operação cancelada.");
            }

            List <string> lstAtividades = new TarefaService(organizationName, false).ListarAtividadesCheckup(compCanal.Compromisso.Id);

            if (lstAtividades == null || lstAtividades.Count <= 0)
            {
                throw new ArgumentException("Lista de atividades não encontrada para o Compromisso : " + compromissoPrograma.Nome + " .Operação cancelada.");
            }

            string atividade = new TarefaService(organizationName, false).ObterProximaAtividadeCheckup(lstAtividades, null);

            if (!string.IsNullOrEmpty(atividade))
            {
                Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(organizationName, false).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", compCanal.Id);
                if (proprietario != null)
                {
                    new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(organizationName, false).GerarAtividadeChecklist(atividade, compCanal, proprietario);
                }
            }
        }
Exemple #12
0
        public void ExcluirTarefa_TarefaNaoEncontrada_DeveDarErro()
        {
            // Arrange
            var tarefaId  = Guid.NewGuid();
            var usuarioId = Guid.NewGuid();

            // Act
            var mock = new Mock <ITarefaRepository>();

            mock.Setup(x => x.ObterPorId(tarefaId)).Returns(Task.FromResult <Tarefa>(null));

            var service = new TarefaService(mock.Object, _mapper.Object);

            // Assert
            Assert.ThrowsAsync <Exception>(() => service.Remover(tarefaId, usuarioId));
        }
Exemple #13
0
        public async Task AdicionarTarefa_Validacao_DeveDarErro(string descricao, string estimado)
        {
            // Arrange
            var tarefa = new TarefaRequestViewModel {
                Descricao = descricao,
                Estimado  = Convert.ToDateTime(estimado)
            };

            // Act
            var service   = new TarefaService(_mock.Object, _mapper.Object);
            var adicionar = await service.Adicionar(tarefa, Guid.NewGuid());

            // Assert
            Assert.False(adicionar);
            Assert.False(tarefa.ValidationResult.IsValid);
        }
Exemple #14
0
        async public void GravarTarefaTest()
        {
            #region Given
            TarefaService service = MontarConstrutor();
            #endregion

            #region When
            _tarefaRepositoryMock.Setup(s => s.CriarAsync(It.IsAny <Tarefa>())).Returns(Task.FromResult(new TarefaTestBuilder().Default().Build()));
            var result = await service.CadastarTarefaAsync(new TarefaTestBuilder().Default().Build());

            #endregion

            #region
            result.Should().NotBeNull();
            result.DataEdicao.Should().BeNull();
            #endregion
        }
Exemple #15
0
        public void ExcluirTarefa_TarefaNaoPertenceUsuario_DeveDarErro()
        {
            // Arrange
            var tarefaId  = Guid.NewGuid();
            var usuarioId = Guid.NewGuid();
            var tarefa    = new Tarefa(tarefaId, "xxx", DateTime.Now, Guid.NewGuid());

            // Act
            var mock = new Mock <ITarefaRepository>();

            mock.Setup(x => x.ObterPorId(tarefaId)).Returns(Task.FromResult(tarefa));

            var service = new TarefaService(mock.Object, _mapper.Object);

            // Assert
            Assert.ThrowsAsync <Exception>(() => service.Remover(tarefaId, usuarioId));
        }
        public void CriarTarefa()
        {
            if (DataPrevInicio > DataPrevTermino)
            {
                DataMaiorQueInicio = DataPrevInicio;
                Toast.LongMessage(Mensagem.MENS_FORM_47);
                return;
            }

            servicoTarefa = (projetoDefinido) ?  new TarefaService(NomeTarefa, TipoTarefaView, Descricao, DataPrevInicio, DataPrevTermino, IdResponsavel, IdProjeto) :
                            new TarefaService(NomeTarefa, TipoTarefaView, Descricao, DataPrevInicio, DataPrevTermino, IdResponsavel);

            if (servicoTarefa.CriarNovaTarefa())
            {
                Application.Current.MainPage.Navigation.PopAsync();
            }
        }
Exemple #17
0
        async public void ObterTarefasCadastradasPorUsuarioTest()
        {
            #region Given
            TarefaService service = MontarConstrutor();
            #endregion

            #region When
            _tarefaRepositoryMock.Setup(s => s.ObterTarefasPorIdUsuarioAsync(It.IsAny <Guid>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new TarefaTestBuilder().DefaultList().BuildList()));
            var result = await service.ObterTarefasCadastradasPorUsuario(new TarefaTestBuilder().DefaultGuid(), new TarefaTestBuilder().DefaultBoolean());

            #endregion

            #region Then
            result.Should().NotBeNull();
            result.Should().NotBeEmpty();
            result.Should().HaveCount(3);
            #endregion
        }
        public override async void ViewDidAppear(bool animated)
        {
            base.ViewDidAppear(animated);

            var isUpdatedApi = NSUserDefaults.StandardUserDefaults.BoolForKey("UpdatedApi");

            if (!_isStarted || !isUpdatedApi)
            {
                return;
            }

            using (var client = new TarefaService())
            {
                _tarefas = await client.ListarAsync();
            }

            TableView.ReloadData();
            NSUserDefaults.StandardUserDefaults.SetBool(false, "UpdatedApi");
        }
Exemple #19
0
        public async Task AlternarStatusTarefa_AlternarTarefaComSucesso()
        {
            // Arrange
            var id     = Guid.NewGuid();
            var tarefa = new Tarefa(Guid.NewGuid(), "xxx", DateTime.Now, Guid.NewGuid());

            // Act
            var mock = new Mock <ITarefaRepository>();

            mock.Setup(x => x.ObterPorId(id)).Returns(Task.FromResult(tarefa));
            mock.Setup(c => c.Alternar(tarefa));
            mock.Setup(c => c.UnitOfWork.Commit()).Returns(Task.FromResult(true));

            var service  = new TarefaService(mock.Object, _mapper.Object);
            var alternar = await service.Alternar(id);

            // Assert
            Assert.True(alternar);
        }
        private void DadosAutomaticos()
        {
            servicoTarefa = new TarefaService();
            servicoTarefa.SalvarIdTarefaSelecionada();
            tarefa = servicoTarefa.ObterTarefaSelecionada();

            NomeTarefaView      = tarefa.NomeTarefa;
            TipoTarefaView      = tarefa.TipoTarefa;
            DescricaoView       = tarefa.DescricaoTarefa;
            DataPrevInicioView  = tarefa.DataPrevInicio;
            DataPrevTerminoView = tarefa.DataPrevTermino;
            CriadorView         = servicoTarefa.ObterNomeCriadorTarefa();
            ResponsavelView     = servicoTarefa.ObterNomeResponsavelTarefa();
            ProjetoSelecionado  = servicoTarefa.ObterNomeProjetoDaTarefa();
            EstadoView          = tarefa.Estado;
            EstadoAnterior      = tarefa.Estado;
            Estados             = servicoTarefa.ListarEstadosDisponiveis(tarefa.Estado);
            RazaoView           = tarefa.Motivo;
        }
Exemple #21
0
        public async Task ExcluirTarefa_TarefaRemovidaComSucesso()
        {
            // Arrange
            var tarefaId  = Guid.NewGuid();
            var usuarioId = Guid.NewGuid();
            var tarefa    = new Tarefa(tarefaId, "xxx", DateTime.Now, usuarioId);

            // Act
            var mock = new Mock <ITarefaRepository>();

            mock.Setup(x => x.ObterPorId(tarefaId)).Returns(Task.FromResult(tarefa));
            mock.Setup(c => c.UnitOfWork.Commit()).Returns(Task.FromResult(true));

            var service = new TarefaService(mock.Object, _mapper.Object);
            var remover = await service.Remover(tarefaId, usuarioId);

            // Assert
            Assert.True(remover);
        }
Exemple #22
0
        public async Task AdicionarTarefa_CriarTarefaComSucesso()
        {
            // Arrange
            var tarefaViewModel = new TarefaRequestViewModel {
                Descricao = "abc",
                Estimado  = DateTime.Now.AddDays(1)
            };
            var tarefa = new Tarefa(Guid.NewGuid(), "abc", DateTime.Now.AddDays(1), Guid.NewGuid());

            // Act
            var mock = new Mock <ITarefaRepository>();

            mock.Setup(c => c.Adicionar(tarefa));
            mock.Setup(c => c.UnitOfWork.Commit()).Returns(Task.FromResult(true));

            var service   = new TarefaService(mock.Object, _mapper.Object);
            var adicionar = await service.Adicionar(tarefaViewModel, Guid.NewGuid());

            // Assert
            Assert.True(adicionar);
        }
Exemple #23
0
        public void ObterTodos_DeveRetornarUmaLista()
        {
            // Arrange
            IEnumerable <Tarefa> lista = new List <Tarefa>()
            {
                new Tarefa(Guid.NewGuid(), "tarefa", DateTime.Now, Guid.NewGuid())
            };
            var clientId = Guid.NewGuid();
            var data     = DateTime.Now;

            // Act
            var mock = new Mock <ITarefaRepository>();

            mock.Setup(t => t.ObterTodos(clientId, data)).Returns(lista);

            var service = new TarefaService(mock.Object, _mapper.Object);

            service.ObterTodos(clientId, data);

            // Assert
            mock.VerifyAll();
        }
Exemple #24
0
        private async void AdicionarButton_TouchUpInside(object sender, EventArgs e)
        {
            AdicionarButton.Enabled = false;

            using (var client = new TarefaService())
            {
                try
                {
                    await client.GravarAsync(new Tarefa { Descricao = TarefaTextField.Text });
                }
                catch (Exception)
                {
                    const string retorno =
                        "Ocorreu um erro ao realizar operação! Por favor, tente novamente mais tarde!";
                    new UIAlertView("Adicionar Tarefa", retorno, null, "OK", null).Show();
                    AdicionarButton.Enabled = true;
                    return;
                }
            }

            NSUserDefaults.StandardUserDefaults.SetBool(true, "UpdatedApi");
            NavigationController.PopToRootViewController(true);
            //
        }
Exemple #25
0
        public void Execute(IServiceProvider serviceProvider)
        {
            lock (thisLock)
            {
                var                         context        = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                ITracingService             trace          = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                IOrganizationService        service        = serviceFactory.CreateOrganizationService(null);

                TarefaService ServiceTarefas = new TarefaService(context.OrganizationName, context.IsExecutingOffline, service);
                CompromissosDoCanalService ServiceCompromissosDoCanal = new CompromissosDoCanalService(context.OrganizationName, context.IsExecutingOffline, service);

                try
                {
                    trace.Trace(context.MessageName);

                    Intelbras.CRM2013.Domain.Model.Tarefa mTarefa = null;
                    switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName))
                    {
                    case Domain.Enum.Plugin.MessageName.Create:
                        var entidade = (Entity)context.InputParameters["Target"];
                        mTarefa = ServiceTarefas.BuscaTarefa(entidade.Id);


                        new Intelbras.CRM2013.Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).CriarParecerParaSolicitacao(mTarefa);
                        Guid tipoAtividadeExecucao;

                        if (!Guid.TryParse(SDKore.Configuration.ConfigurationManager.GetSettingValue("TipoAtividadeExecucao"), out tipoAtividadeExecucao))
                        {
                            throw new ArgumentException("(CRM) Faltando parâmetro TipoAtividadeExecucao no SDKore");
                        }

                        trace.Trace("Parâmetro do Config: TipoAtividadeExecucao '{0}'", tipoAtividadeExecucao);

                        if (mTarefa.ReferenteA != null && mTarefa.TipoDeAtividade != null && mTarefa.TipoDeAtividade.Id == tipoAtividadeExecucao)
                        {
                            trace.Trace("Tarefa do tipo Execução.");

                            SolicitacaoBeneficio solBenef = new Intelbras.CRM2013.Domain.Servicos.SolicitacaoBeneficioService(context.OrganizationName, context.IsExecutingOffline, service).ObterPor(mTarefa.ReferenteA.Id);

                            if (solBenef == null)
                            {
                                throw new ArgumentException("(CRM) Solicitação não encontrada.");
                            }

                            if (solBenef.TipoSolicitacao != null && solBenef.AjusteSaldo.Value)
                            {
                                trace.Trace("Solicitação do tipo Ajuste.");

                                Tarefa _mTarefa = new Intelbras.CRM2013.Domain.Model.Tarefa(context.OrganizationName, context.IsExecutingOffline, service);
                                _mTarefa.ID        = context.PrimaryEntityId;
                                _mTarefa.Resultado = (int)Domain.Enum.Tarefa.Resultado.PagamentoEfetuadoPedidoGerado;
                                _mTarefa.State     = 1;
                                string retorno;

                                TarefaService tarefaService = new Intelbras.CRM2013.Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service);
                                tarefaService.Persistir(_mTarefa, out retorno);

                                trace.Trace(tarefaService.Trace.StringTrace.ToString());
                                tarefaService.Trace.Save();
                            }
                        }

                        mTarefa.TempoAtuacao = 0;
                        break;

                    case Domain.Enum.Plugin.MessageName.SetStateDynamicEntity:

                        if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity)
                        {
                            Tarefa Tarefa = context.PostEntityImages["imagem"].Parse <Tarefa>(context.OrganizationName, context.IsExecutingOffline, service);

                            if (Tarefa.ReferenteA == null || Tarefa.State.Value != (int)Domain.Enum.Tarefa.StateCode.Fechada)
                            {
                                break;
                            }

                            if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoBeneficio>().ToLower())
                            {
                                new ProcessoDeSolicitacoesService(context.OrganizationName, context.IsExecutingOffline, service)
                                .ConcluirTarefaSolicitacaoBeneficio(Tarefa, context.UserId);
                            }
                            else if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <SolicitacaoCadastro>().ToLower())
                            {
                                new ProcessoDeSolicitacoesService(context.OrganizationName, context.IsExecutingOffline, service)
                                .ConcluirTarefaSolicitacaoDeCadastro(Tarefa, context.UserId);
                            }
                            else if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <CompromissosDoCanal>().ToLower())
                            {
                                new ProcessoDeSolicitacoesService(context.OrganizationName, context.IsExecutingOffline, service)
                                .ConcluirTarefaCompromissoCanal(Tarefa);
                            }
                            else if (Tarefa.ReferenteA.Type.ToLower() == SDKore.Crm.Util.Utility.GetEntityName <Conta>().ToLower())
                            {
                                if (Tarefa.TipoDeAtividade.Name.Contains("Checklist"))
                                {
                                    #region Pendencia Key-Account comentada

                                    Conta canal = new Intelbras.CRM2013.Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, service).BuscaConta(Tarefa.ReferenteA.Id);
                                    if (canal == null || canal.Classificacao == null)
                                    {
                                        throw new ArgumentException("(CRM) Conta cadastrada no campo 'Referente a' não encontrada!");
                                    }

                                    ParametroGlobal paramGlobal = new Intelbras.CRM2013.Domain.Servicos.ParametroGlobalService(context.OrganizationName, context.IsExecutingOffline, service).ObterPor((int)Domain.Enum.TipoParametroGlobal.FrequenciaChecklist, null, canal.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);
                                    ParametroGlobal paramGlobalListaAtividades = new Intelbras.CRM2013.Domain.Servicos.ParametroGlobalService(context.OrganizationName, context.IsExecutingOffline, service).ObterPor((int)Domain.Enum.TipoParametroGlobal.AtividadesChecklist, null, canal.Classificacao.Id, null, null, null, null, (int)Domain.Enum.ParametroGlobal.Parametrizar.VisitaComercial);

                                    List <String> lstAtividades = new Intelbras.CRM2013.Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).ConverterParametroParaLista(paramGlobalListaAtividades.Valor);

                                    if (lstAtividades.Count > 0)
                                    {
                                        string atividade = ServiceTarefas.ObterProximaAtividadeCheckup(lstAtividades, Tarefa.Assunto);

                                        if (!string.IsNullOrEmpty(atividade))
                                        {
                                            Domain.Model.Tarefa novaTarefa = new Domain.Model.Tarefa(context.OrganizationName, context.IsExecutingOffline, service);

                                            Domain.Model.TipoDeAtividade tipoAtividade = new Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).BuscarTipoTarefa("Checklist");
                                            if (tipoAtividade != null)
                                            {
                                                novaTarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, "");
                                            }

                                            novaTarefa.Assunto    = atividade;
                                            novaTarefa.Conclusao  = DateTime.Now.AddDays(Convert.ToInt16(paramGlobal.Valor));
                                            novaTarefa.ReferenteA = new SDKore.DomainModel.Lookup(canal.ID.Value, "account");

                                            novaTarefa.ID = new Domain.Servicos.TarefaService(context.OrganizationName, context.IsExecutingOffline, service).Persistir(novaTarefa);
                                            if (novaTarefa.ID.HasValue)
                                            {
                                                Usuario proprietario = new Domain.Servicos.UsuarioService(context.OrganizationName, context.IsExecutingOffline, service).BuscarProprietario("task", "activityid", Tarefa.Id);
                                                if (proprietario != null)
                                                {
                                                    new Domain.Servicos.UtilService(context.OrganizationName, context.IsExecutingOffline, service).MudarProprietarioRegistro("systemuser", proprietario.ID.Value, "task", novaTarefa.ID.Value);
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        Domain.Model.CompromissosDoCanal CompromissoCanal = ServiceCompromissosDoCanal.BuscarPorGuid(Tarefa.ReferenteA.Id);

                                        if (CompromissoCanal != null && CompromissoCanal.Compromisso != null)
                                        {
                                            List <string> listaAtividadesCheckup2 = ServiceTarefas.ListarAtividadesCheckup(CompromissoCanal.Compromisso.Id);

                                            if (listaAtividadesCheckup2.Count > 0)
                                            {
                                                string atividade = ServiceTarefas.ObterProximaAtividadeCheckup(listaAtividadesCheckup2, Tarefa.Assunto);

                                                if (!string.IsNullOrEmpty(atividade))
                                                {
                                                    Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(context.OrganizationName, context.IsExecutingOffline, service).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", CompromissoCanal.Id);
                                                    if (proprietario != null)
                                                    {
                                                        new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(context.OrganizationName, context.IsExecutingOffline, service).GerarAtividadeChecklist(atividade, CompromissoCanal, proprietario);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    #endregion
                                }
                            }
                        }
                        break;
                    }
                }
                catch (Exception ex)
                {
                    string message = SDKore.Helper.Error.Handler(ex);

                    trace.Trace(SDKore.Helper.Error.GetMessageError(ex));
                    throw new InvalidPluginExecutionException(message, ex);
                }
            }
        }
Exemple #26
0
        protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService)
        {
            switch (EnumConverter <MessageName>(context.MessageName.ToLower()))
            {
                #region Create

            case MessageName.Create:
                break;
                #endregion

                #region Update
            case MessageName.Update:
                break;

                #endregion

                #region SetStateDynamicEntity

            case MessageName.SetStateDynamicEntity:
                EntityReference entity = (EntityReference)context.InputParameters["EntityMoniker"];
                OptionSetValue  state  = (OptionSetValue)context.InputParameters["State"];
                //OptionSetValue status = (OptionSetValue)context.InputParameters["Status"];
                IOrganizationService service = serviceFactory.CreateOrganizationService(null);

                if (state.Value == (int)Tarefa.StateCode.Fechada)
                {
                    TarefaService ServiceTarefas = new TarefaService(context.OrganizationName, context.IsExecutingOffline, service);
                    var           task           = ServiceTarefas.BuscaTarefa(entity.Id);

                    //Alteração para obter tempo de resposta ignorando finais de semana e feriados
                    task.TempoResposta = (Decimal)CalcularDiferencaHorasEntreDatas(context, task.CriadoEm.Value.ToLocalTime(), DateTime.Now.ToLocalTime());

                    //calcula as pausas da Tarefa
                    PausaTarefaService pausaTarefaService = new PausaTarefaService(context.OrganizationName, context.IsExecutingOffline, service);


                    var     pausas     = pausaTarefaService.ListarPausaTarefa(entity.Id);
                    decimal TempoPausa = 0;

                    pausas.ForEach(p =>
                    {
                        //finaliza as pausas pendentes
                        if (p.DataTermino == null || p.DataTermino == DateTime.MinValue)
                        {
                            p.DataTermino = DateTime.Now.AddHours(3);
                            pausaTarefaService.Persistir(p);
                        }
                        //calcula o tempo das pausas (em minutos)
                        TempoPausa = (Decimal)CalcularDiferencaHorasEntreDatas(context, p.DataInicio.ToLocalTime(), p.DataTermino.ToLocalTime());
                    });

                    //atualiza o campo de tempo de atuação da tarefa
                    if (task.TempoResposta.HasValue)
                    {
                        task.TempoAtuacao = (task.TempoResposta.Value - TempoPausa);
                    }
                    else
                    {
                        task.TempoAtuacao = TempoPausa;
                    }

                    task.MotivoPausa = " ";     //para salvar no banco, não funciona se usar null ou string.Empty

                    ServiceTarefas.Persistir(task);
                }

                break;

                #endregion
            }
        }
 public HomeController(TarefaService service)
 {
     _TarefaService = service;
 }
Exemple #28
0
 public ObservableCollection <Model.Tarefa> ListarTarefas()
 {
     servicoTarefa = new TarefaService();
     Tarefas       = new ObservableCollection <Model.Tarefa>(servicoTarefa.ObterTarefasDoUsuarioLogado());
     return(Tarefas);
 }
 public TarefaController()
 {
     service = new TarefaService();
 }
Exemple #30
0
 public TarefaController(TarefaService tarefaService)
 {
     _tarefaService = tarefaService;
 }