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); }
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); }