public static TipoTransaccion Tipo(Transaccion transaccion)
        {
            TipoEtiqueta tipoEtiquetaOrigen, tipoEtiquetaDestino;

            tipoEtiquetaOrigen  = EtiquetaDAO.Tipo(transaccion.Origen);
            tipoEtiquetaDestino = EtiquetaDAO.Tipo(transaccion.Destino);
            Array TiposDisponibles = Enum.GetValues(typeof(TipoTransaccion));
            int   tipoInt          = ((int)tipoEtiquetaOrigen << 3) + (int)tipoEtiquetaDestino;
            int   likeness         = 0;
            int   max = 0;

            foreach (int item in TiposDisponibles)
            {
                if ((item & tipoInt) > likeness)
                {
                    likeness = (item & tipoInt);
                    max      = item;
                }
            }
            TipoTransaccion tipo = (TipoTransaccion)max;

            return(tipo);
        }
Exemple #2
0
        public static Etiqueta Add(Etiqueta etiqueta, GastosContainer container)
        {
            //Se verificará si hay etiquetas repetidas
            bool   repetido = true;
            string name     = etiqueta.Name;
            string type     = "La etiqueta";

            if (etiqueta is Cuenta)
            {
                List <Cuenta> cs;
                if (container.CuentaDAO.ItemsLoaded)
                {
                    cs = new List <Cuenta>(container.CuentaDAO.Items);
                }
                else
                {
                    cs = container.Context.Cuentas.ToList();
                }
                repetido = EtiquetaDAO.In <Cuenta>(cs, name);
                type     = "La cuenta";
            }
            else if (etiqueta is Ingreso)
            {
                List <Ingreso> cs;
                if (container.IngresoDAO.ItemsLoaded)
                {
                    cs = new List <Ingreso>(container.IngresoDAO.Items);
                }
                else
                {
                    cs = container.Context.Ingresos.ToList();
                }
                repetido = EtiquetaDAO.In <Ingreso>(cs, name);
                type     = "El ingreso";
            }
            else if (etiqueta is Gasto)
            {
                List <Gasto> cs;
                if (container.GastoDAO.ItemsLoaded)
                {
                    cs = new List <Gasto>(container.GastoDAO.Items);
                }
                else
                {
                    cs = container.Context.Gastos.ToList();
                }
                repetido = EtiquetaDAO.In <Gasto>(cs, name);
                type     = "El gasto";
            }
            else if (etiqueta is Credito)
            {
                List <Credito> cs;
                if (container.CreditoDAO.ItemsLoaded)
                {
                    cs = new List <Credito>(container.CreditoDAO.Items);
                }
                else
                {
                    cs = container.Context.Creditos.ToList();
                }
                repetido = EtiquetaDAO.In <Credito>(cs, name);
                type     = "El credito";
            }
            if (repetido)
            {
                throw new System.Exception($"{type} ya existe");
            }
            container.EtiquetaDAO.Items.Add(etiqueta);
            return(etiqueta);
        }