예제 #1
0
        /// <summary>
        /// Get a list of string dates less that the given date.
        /// </summary>
        /// <param name="taxonomyId">Taxonomy identifier.</param>
        /// <param name="entityId">Entity identifier.</param>
        /// <param name="maxDate">Date to compare.</param>
        /// <param name="abaxXBRLCellStoreMongo">Data access object</param>
        /// <returns>List with the string dates.</returns>
        public static async Task <IList <string> > FindLowestDatesAsync(string taxonomyId, string entityId, DateTime maxDate, AbaxXBRLCellStoreMongo abaxXBRLCellStoreMongo)
        {
            var db         = abaxXBRLCellStoreMongo.GetMongoDB();
            var collection = db.GetCollection <BsonDocument>(COLLECTION_NAME);
            var match      = new BsonDocument
            {
                { "dimensionMap.taxonomyId", taxonomyId },
                { "dimensionMap.instanceDocmentEntity", entityId }
            };
            var groupDistinctDates = new BsonDocument {
                { "_id", "$dimensionMap.instanceDocmentReportedDate" }
            };
            var projectParseDate = new BsonDocument
            {
                { "_id", "$_id" },
                { "date", new BsonDocument
                  {
                      { "$dateFromString", new BsonDocument {
                            { "dateString", "$_id" }
                        } }
                  } }
            };
            FilterDefinition <BsonDocument> matchLessDate = "{\"date\":{\"$lt\":" + ModeloBase.ParseJson(maxDate) + "}}";
            var aggregate = collection.Aggregate().
                            Match(match).Group(groupDistinctDates).Project(projectParseDate).Match(matchLessDate);
            var documentsList = await aggregate.ToListAsync();

            var listDates = new List <string>();

            foreach (var document in documentsList)
            {
                listDates.Add(document["_id"].AsString);
            }
            return(listDates);
        }
예제 #2
0
        public bool Salva(ModeloBase <M> objModelo, GerenciadorDB mngBD)
        {
            bool   bRetorno     = false;
            string sDetalhesLog = string.Empty;

            if (objModelo.Status == ModeloBase <M> .ObjetoStatus.NaoAlterado)
            {
                // Não realiza nenhuma alteração
            }
            else if (objModelo.Status == ModeloBase <M> .ObjetoStatus.Novo)
            {
                // Insert
                Insert(getDicionarioColValores(objModelo), mngBD, ref sDetalhesLog);
            }
            else if (objModelo.Status == ModeloBase <M> .ObjetoStatus.Editado)
            {
                // Update
                Update(getDicionarioColValores(objModelo), getDicionarioColValores(objModelo._objetoOriginal), mngBD, ref sDetalhesLog);
                // Atualiza o ObjetoOriginal para o que acabou de ser salvo
                objModelo.CarregaObjeto(getDicionarioColValores(objModelo), getDicionarioColPropInfo(objModelo));
            }
            else
            {
                throw new Exception(string.Format("Solicitado salvamento para objeto ModeloBase com STATUS inválido. Valor recebido: {0}",
                                                  Enum.GetName(typeof(ModeloBase <M> .ObjetoStatus), objModelo.Status)));
            }

            return(bRetorno);
        }
예제 #3
0
        /// <summary>
        /// Crea un hash con los parámetros clave del reporte.
        /// </summary>
        /// <param name="reportParams">Parámetros generales del reporte.</param>
        /// <param name="reportSendDate">Send date of the report.</param>
        /// <returns>Hash con los principales identificadores del reporte.</returns>
        public static String CreateReportRecordId(String reportId, DateTime reportSendDate)
        {
            var reportKeys = new Dictionary <String, String>();

            reportKeys[ConstantsJBRL.REPORT_REPORT_ID_ATT]        = ModeloBase.ParseJson(reportId);
            reportKeys[ConstantsJBRL.REPORT_REGISTRATON_DATE_ATT] = ModeloBase.ParseJson(reportSendDate);
            var hash = GetHash(reportKeys);

            return(hash);
        }
예제 #4
0
        public async Task CriarNotificacaoConclusaoAtividade(UsuarioADE usuario, AtividadeEstagio atividade)
        {
            ServicoAlteracaoEntidadesSistema servicoAlteracaoEntidadesSistema = new ServicoAlteracaoEntidadesSistema(ref unitOfWork);
            ModeloBase recurso = await servicoAlteracaoEntidadesSistema.ObterEntidadeAlteracao(atividade.EnumEntidade, atividade.IdentificadorEntidadeAtividade);

            string Descricao = $"<i class='material-icons medium prefix'>assignment_turned_in</i> Você concluiu a atividade {atividade.Titulo} ao realizar {atividade.TipoAtividade.ObterNomeEnum()} do recurso {recurso.ToString()} na data {atividade.DataHoraUltimaAlteracao.ToLocalTime()}";
            NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, $"Atividade {atividade.Titulo} Concluida!", Descricao);
            await ServicoNotificacaoIndividual.CadastrarAsync(usuario, notificacao);

            await unitOfWork.Commit();
        }
예제 #5
0
        private static void CrearTarea(Usuario key)
        {
            Utilidades.salida("Creando una Tarea");
            String tareaNombre = Utilidades.entrada("Ingresa un nombre para tu Tarea");

            List <ModeloBase> listaUsuarios = ((Usuario)ModeloBase.darInstancia("Modelo.Usuario")).Listar();
            int indice = 1;

            foreach (ModeloBase objeto in listaUsuarios)
            {
                Utilidades.salida(indice + ". " + ((Usuario)objeto).ObtenerNombre());
            }

            String usuarioId = Utilidades.entrada("Seleccione un Usuario");
        }
예제 #6
0
        public bool Apaga(ModeloBase <M> objModelo, GerenciadorDB mngBD)
        {
            bool   bRetorno     = false;
            string sDetalhesLog = string.Empty;

            if (objModelo.Status != ModeloBase <M> .ObjetoStatus.Novo)
            {
                // Delete
                Delete(getDicionarioColValores(objModelo._objetoOriginal), mngBD, ref sDetalhesLog);
                bRetorno = true;
            }
            else
            {
                throw new Exception(string.Format("Solicitado exclusão para objeto ModeloBase com STATUS inválido. Valor recebido: {0}",
                                                  Enum.GetName(typeof(ModeloBase <M> .ObjetoStatus), objModelo.Status)));
            }

            return(bRetorno);
        }
예제 #7
0
        public List <ModeloBase> LeerTabla()
        {
            List <ModeloBase> lista = new List <ModeloBase>();

            try
            {
                String[] lineas = _contenido.Split("\n");
                for (int i = 0; i < lineas.Length; i++)
                {
                    ModeloBase _objeto = (ModeloBase)ModeloBase.darInstancia(_tipo);
                    lista.Add(_objeto.leerTexto(lineas[i]));
                }
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("Ha ocurrido un Error: " + ex.Message);
            }
            return(lista);
        }
예제 #8
0
        /// <summary>
        /// Devolve dicionário com Coluna (base de dados) e respectivo valor da propriedade
        /// </summary>
        private static Dictionary <string, object> getDicionarioColValores(ModeloBase <M> objModelBase)
        {
            Dictionary <string, object> dicProps = new Dictionary <string, object>();

            PropertyInfo[] props = getObjectProperties();

            // Varre as propriedades do modelo
            foreach (System.Reflection.PropertyInfo prop in props)
            {
                if (prop.PropertyType != null && prop.CanWrite)
                {
                    AtributoPropriedade atbc      = null;
                    object[]            atributos = prop.GetCustomAttributes(typeof(AtributoPropriedade), true);

                    // Utiliza o AtributoPropriedade para obter o nome da coluna na Base de dados
                    foreach (object item in atributos)
                    {
                        if (item is AtributoPropriedade)
                        {
                            atbc = (AtributoPropriedade)item;
                            break;
                        }
                    }

                    object objValue = prop.GetValue(objModelBase);

                    // Se nao tem NomeColuna, o nome é o mesmo da propriedade.
                    if (atbc != null && !string.IsNullOrEmpty(atbc.NomeColuna))
                    {
                        dicProps.Add(atbc.NomeColuna.ToUpper(), objValue);
                    }
                    else
                    {
                        dicProps.Add(prop.Name.ToUpper(), objValue);
                    }
                }
            }

            return(dicProps);
        }
예제 #9
0
        public KeyValuePair <Tarea, List <String> > VerificarModificabilidad(Usuario usuario, List <ModeloBase> lista, String idTarea)
        {
            KeyValuePair <Tarea, List <String> > tareaLista = new KeyValuePair <Tarea, List <String> >();

            if (usuario != null && lista != null)
            {
                //TODO--->>> verificar si es super usuario

                Tarea         tarea       = (Tarea)ModeloBase.Obtener(new KeyValuePair <String, String>("id", idTarea), "Modelo.Tarea");
                List <String> listaCampos = new List <String>();
                if (usuario.ObtenerRol().esSuperUsuario())
                {
                    listaCampos.Add("nombre");
                    listaCampos.Add("usuario");
                    listaCampos.Add("estado");
                }
                else
                {
                    listaCampos.Add("estado");
                }
                return(new KeyValuePair <Tarea, List <String> >(tarea, listaCampos));
            }
            return(tareaLista);
        }