public AcessoKonviva RetornarUnidadeCorreta(AcessoKonviva acessoKonviva) { var deParaService = new DeParaDeUnidadeDoKonvivaService(RepositoryService); if (acessoKonviva.Conta != null) { var canal = RepositoryService.Conta.Retrieve(acessoKonviva.Conta.Id); return(deParaService.ObterUnidadeKonvivaDeParaCom(acessoKonviva, canal, null)); } else { var contato = RepositoryService.Contato.Retrieve(acessoKonviva.Contato.Id); return(deParaService.ObterUnidadeKonvivaDeParaCom(acessoKonviva, null, contato)); } }
public void CriarAcessoKonvivaPadrao(Guid contatoId) { Contato contatoM = RepositoryService.Contato.Retrieve(contatoId); if (contatoM == null) { throw new ArgumentException("(CRM) Contato não existente"); } AcessoKonviva acessoKonviva = RepositoryService.AcessoKonviva.ObterPorContato(contatoId, Domain.Enum.StateCode.Ativo); if (acessoKonviva != null) { throw new ArgumentException("(CRM) Usuário Konviva Duplicado!"); } acessoKonviva = new AcessoKonviva(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline); acessoKonviva.Contato = new Lookup(contatoM.ID.Value, ""); //Nova regra de atribuição de Unidade Konviva if (contatoM.AssociadoA != null && contatoM.AssociadoA.Type == SDKore.Crm.Util.Utility.GetEntityName <Conta>()) { acessoKonviva.Conta = new Lookup(contatoM.AssociadoA.Id, contatoM.AssociadoA.Type); acessoKonviva = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, RepositoryService.Conta.Retrieve(acessoKonviva.Conta.Id), null); } else { acessoKonviva = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, null, contatoM); } if (acessoKonviva.UnidadeKonviva == null && this.organizacaoPadrao.HasValue) { acessoKonviva.UnidadeKonviva = new Lookup(this.organizacaoPadrao.Value, ""); acessoKonviva.DeParaUnidadeKonviva = null; } //reseta o perfil para apenas aluno selecionado acessoKonviva = this.ResetarPerfilKonviva(acessoKonviva); //TODO NOME KONVIVA VER PADRAO DO DOCUMENTOS acessoKonviva.Nome = acessoKonviva.Contato.Name; RepositoryService.AcessoKonviva.Create(acessoKonviva); }
public void MudarCanal(Contato contato, Guid?canalId) { AcessoKonviva acessoKonviva = this.ObterPorContato(contato.ID.Value, Enum.StateCode.Ativo); if (acessoKonviva != null) { acessoKonviva = this.ResetarPerfilKonviva(acessoKonviva); acessoKonviva.IntegrarNoPlugin = false; if (canalId.HasValue) { acessoKonviva.Conta = new SDKore.DomainModel.Lookup(canalId.Value, SDKore.Crm.Util.Utility.GetEntityName <Conta>()); acessoKonviva = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, RepositoryService.Conta.Retrieve(canalId.Value), null); } else { acessoKonviva.AddNullProperty("Conta"); acessoKonviva = new DeParaDeUnidadeDoKonvivaService(RepositoryService).ObterUnidadeKonvivaDeParaCom(acessoKonviva, null, contato); } this.Persistir(acessoKonviva); } }