Esempio n. 1
0
        public dynamic CadastrarItemTrilhaParticipacao(int idUsuarioTrilha, int idItemTrilha, string textoParticipacao, string nomeOriginalArquivo, string imagem, int tipoParticipacao, string cpfAuditoria)
        {
            itemTrilhaParticipacaoBM = new BMItemTrilhaParticipacao();
            fileServerBM             = new BMFileServer();

            var usuarioTrilha = new BMUsuarioTrilha().ObterPorId(idUsuarioTrilha);

            var isParticipacaoTrilheiro = tipoParticipacao == (int)enumTipoParticipacaoTrilha.ParticipacaoTrilheiro;

            if (isParticipacaoTrilheiro && DateTime.Now > usuarioTrilha.DataLimite)
            {
                throw new AcademicoException("O prazo para envio desta atividade já passou!");
            }

            var itemTrilhaParticipacao = new ItemTrilhaParticipacao();
            var itemTrilha             = new BMItemTrilha().ObterPorID(idItemTrilha);

            if (idItemTrilha > 0 && idUsuarioTrilha > 0)
            {
                var listaItemTrilhaParticipacao = itemTrilhaParticipacaoBM.ObterParticipacoesUsuarioTrilha(
                    idItemTrilha, idUsuarioTrilha);

                if (listaItemTrilhaParticipacao.Count > 0)
                {
                    if (
                        listaItemTrilhaParticipacao.Any(
                            x =>
                            x.TipoParticipacao == enumTipoParticipacaoTrilha.ParticipacaoTrilheiro &&
                            x.Autorizado.HasValue && x.Autorizado.Value) && isParticipacaoTrilheiro)
                    {
                        throw new AcademicoException("Sua atividade já está aprovada!");
                    }

                    if (
                        listaItemTrilhaParticipacao.Any(
                            x =>
                            x.TipoParticipacao == enumTipoParticipacaoTrilha.ParticipacaoTrilheiro &&
                            !x.Autorizado.HasValue) && isParticipacaoTrilheiro)
                    {
                        throw new AcademicoException("Sua atividade ainda não foi avaliada!");
                    }
                }

                itemTrilhaParticipacao.ItemTrilha        = itemTrilha;
                itemTrilhaParticipacao.TextoParticipacao = textoParticipacao;
                itemTrilhaParticipacao.DataEnvio         = DateTime.Now;
                itemTrilhaParticipacao.UsuarioTrilha     = usuarioTrilha;
                itemTrilhaParticipacao.Visualizado       = false;
                itemTrilhaParticipacao.TipoParticipacao  =
                    (enumTipoParticipacaoTrilha)
                    Enum.Parse(typeof(enumTipoParticipacaoTrilha), tipoParticipacao.ToString());
                itemTrilhaParticipacao.Auditoria = new Auditoria(cpfAuditoria);
                if (itemTrilha.Missao.PontoSebrae.TrilhaNivel.PrazoMonitorDiasUteis != null)
                {
                    itemTrilhaParticipacao.DataPrazoAvaliacao =
                        DateTime.Now.CalcularPrazo((int)itemTrilha.Missao.PontoSebrae.TrilhaNivel.PrazoMonitorDiasUteis);
                }

                FileServer fileServer;

                if (string.IsNullOrEmpty(nomeOriginalArquivo))
                {
                    fileServer = null;
                }
                else
                {
                    var memoryStream = CommonHelper.ObterMemoryStream(imagem);
                    fileServer = CommonHelper.ObterObjetoFileServer(memoryStream);

                    var caminhoDiretorioUpload =
                        ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro;

                    // Escrever o arquivo na pasta.
                    CommonHelper.EnviarArquivoParaRepositorio(caminhoDiretorioUpload, memoryStream, fileServer.NomeDoArquivoNoServidor);

                    //Define o tipo de arquivo (/Quebra a string para obter o tipo do arquivo. Ex: bmp, jpeg, etc...)
                    fileServer.TipoArquivo           = CommonHelper.ObterTipoDoArquivo(imagem);
                    fileServer.MediaServer           = true;
                    fileServer.NomeDoArquivoOriginal = nomeOriginalArquivo;
                    fileServer.Auditoria             = new Auditoria(cpfAuditoria);
                    fileServerBM.Salvar(fileServer);
                }

                itemTrilhaParticipacao.FileServer = fileServer;
                itemTrilhaParticipacaoBM.Salvar(itemTrilhaParticipacao);

                // Verifica se o usuário já tem participação no item trilha
                InformarParticipacaoLoja(itemTrilhaParticipacao);
            }

            var status = itemTrilha.ObterStatusParticipacoesItemTrilha(usuarioTrilha);

            return(new
            {
                Status = status != null ? (int?)status.Value : null
            });
        }
Esempio n. 2
0
 public ManterFileServer()
     : base()
 {
     bmFileServer = new BMFileServer();
 }