public ActionResult DeleteConfirmed(int id)
        {
            ListaNegra listaNegra = db.ListaNegras.Find(id);

            db.ListaNegras.Remove(listaNegra);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "ID_ListaN,Descripcion,IdAspNetUsers,FechaEntrada,FechaSalida,Estatus,Id_Empleado")] ListaNegra listaNegra)
 {
     if (ModelState.IsValid)
     {
         db.Entry(listaNegra).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IdAspNetUsers = new SelectList(db.AspNetUsers, "Id", "Email", listaNegra.IdAspNetUsers);
     ViewBag.Id_Empleado   = new SelectList(db.AspNetUsers, "Id", "Email", listaNegra.Id_Empleado);
     return(View(listaNegra));
 }
Beispiel #3
0
        public int InsertarListaNegra(ListaNegra oListaNegra)
        {
            int LISTANEGRAID;

            try
            {
                LISTANEGRAID = ListaNegraDA.InsertarListaNegra(oListaNegra);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(LISTANEGRAID);
        }
        public async Task <ActionResult> RegresarListaBlanca(string numtag, string numcuenta)
        {
            try
            {
                db.Configuration.ValidateOnSaveEnabled = false;
                ListaNegra tag = await db.ListaNegras.Where(x => x.Numero == numtag).FirstOrDefaultAsync();

                CuentasTelepeaje cuenta = await db.CuentasTelepeajes.Where(x => x.NumCuenta == numcuenta).FirstOrDefaultAsync();

                if (cuenta == null)
                {
                    return(Json(new { success = "", error = "No existe la cuenta." }));
                }

                var tagNew = new Tags
                {
                    StatusResidente = false,
                    StatusTag       = true,
                    DateTTag        = DateTime.Now,
                    IdCajero        = User.Identity.GetUserId(),
                    NumTag          = numtag,
                    CuentaId        = cuenta.Id,
                };

                switch (cuenta.TypeCuenta)
                {
                case "Colectiva":
                    tagNew.SaldoTag = cuenta.SaldoCuenta;
                    break;

                case "Individual":
                    var SaldoSend = tag.SaldoAnterior.Value.ToString("F2");
                    SaldoSend       = SaldoSend.Replace(",", string.Empty);
                    tagNew.SaldoTag = SaldoSend.Replace(".", string.Empty);
                    break;

                default:
                    break;
                }
                db.Tags.Add(tagNew);
                db.ListaNegras.Remove(tag);
                await db.SaveChangesAsync();

                return(Json(new { success = $"Se agregó correctamente el tag: {numtag} a la cuenta: {numcuenta}." }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = "", error = ex.Message }));
            }
        }
        // GET: ListaNegra/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ListaNegra listaNegra = db.ListaNegras.Find(id);

            if (listaNegra == null)
            {
                return(HttpNotFound());
            }
            return(View(listaNegra));
        }
        // GET: ListaNegra/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ListaNegra listaNegra = db.ListaNegras.Find(id);

            if (listaNegra == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IdAspNetUsers = new SelectList(db.AspNetUsers, "Id", "Email", listaNegra.IdAspNetUsers);
            ViewBag.Id_Empleado   = new SelectList(db.AspNetUsers, "Id", "Email", listaNegra.Id_Empleado);
            return(View(listaNegra));
        }
Beispiel #7
0
 void CarregarUsuarios()
 {
     listBox1.Items.Clear();
     Usuarios.Clear();
     foreach (User usuario in skype.Friends)
     {
         if (usuario.FullName != "")
         {
             if (!ListaNegra.Contains(usuario.Handle))
             {
                 listBox1.Items.Add(usuario.FullName);
                 Usuarios.Add(usuario);
             }
         }
     }
     listBox1.SelectedIndex = 0;
 }
        public async Task <ActionResult> DeleteConfirmed(string numtag)
        {
            try
            {
                db.Configuration.ValidateOnSaveEnabled = false;
                ListaNegra tag = await db.ListaNegras.Where(x => x.Numero == numtag).FirstOrDefaultAsync();

                db.ListaNegras.Remove(tag);
                await db.SaveChangesAsync();

                return(Json(new { success = $"Se eliminó correctamente el tag: {tag.Numero}." }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = "", error = ex.Message }));
            }
        }
Beispiel #9
0
        public int InsertarListaNegra(ListaNegra oListaNegra)
        {
            int?ListaNegraID = 0;

            try
            {
                using (ListaNegraDataContext dc = new ListaNegraDataContext(Helper.ConnectionString()))
                {
                    dc.stp_InsertaListaNegra(oListaNegra.VCHIDQEQ
                                             , oListaNegra.VCHTIPOLISTA
                                             , oListaNegra.VCHNOMBRE
                                             , oListaNegra.VCHAPPATERNO
                                             , oListaNegra.VCHAPMATERNO
                                             , oListaNegra.VCHCURP
                                             , oListaNegra.VCHRFC
                                             , oListaNegra.VCHFECHANAC
                                             , oListaNegra.VCHESTATUS
                                             , oListaNegra.VCHDEPENDENCIA
                                             , oListaNegra.VCHPUESTO
                                             , oListaNegra.INTIDDISPO
                                             , oListaNegra.BITCURPOK
                                             , oListaNegra.VCHIDREL
                                             , oListaNegra.VCHPARENTESCO
                                             , oListaNegra.VCHRAZONSOCIAL
                                             , oListaNegra.VCHRFCMORAL
                                             , oListaNegra.VCHISSSTE
                                             , oListaNegra.VCHIMSS
                                             , oListaNegra.VCHINGRESOS
                                             , oListaNegra.VCHNOMCOMPLETO
                                             , oListaNegra.VCHAPELLIDOS
                                             , oListaNegra.VCHENTIDAD
                                             , oListaNegra.VCHGENERO
                                             , oListaNegra.AUDUSUARIO
                                             , DateTime.Now
                                             , oListaNegra.vchCadenaNPM
                                             , oListaNegra.vchCadenaNMP);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(ListaNegraID.Value);
        }
Beispiel #10
0
        public Operation <Miembro> getUnbannedMembers()
        {
            try
            {
                List <ListaNegra>    bans        = EntitySingleton.Context.ListaNegras.Where(ban => ban.baja).ToList();
                Func <Miembro, bool> CheckMember = member =>
                {
                    ListaNegra ban = bans.Find(b => b.Miembro.idMiembro == member.idMiembro);
                    return(member.baja && (ban == null || !ban.baja));
                };

                List <Miembro> data = EntitySingleton.Context.Miembros.Where(CheckMember).ToList();
                return(FactoryOperation <Miembro> .getDataOperation(data));
            }
            catch (Exception e)
            {
                return(FactoryOperation <Miembro> .getFailOperation(e.Message));
            }
        }
        public ActionResult Agregar(string iduser, DateTime FechaSalida, string Motivo)
        {
            var fechaa = DateTime.Now;
            var fecha  = fechaa.Date;

            ListaNegra listaNegra = new ListaNegra();

            listaNegra.IdAspNetUsers = iduser;
            listaNegra.Id_Empleado   = User.Identity.GetUserId();
            listaNegra.FechaEntrada  = fecha;
            listaNegra.FechaSalida   = FechaSalida;
            listaNegra.Descripcion   = Motivo;
            listaNegra.Estatus       = "Bloqueado";
            db.ListaNegras.Add(listaNegra);
            db.SaveChanges();
            var res = "Listo";

            return(Json(res, JsonRequestBehavior.AllowGet));
        }
Beispiel #12
0
 private void clearForm()
 {
     try {
         FormUtils.clearTextbox(new Control[] { txtDescription, txtSearch });
         cmbMembers.SelectedIndex     = -1;
         cmbResponsable.SelectedIndex = -1;
         chbStatus.Checked            = true;
         btnSaveModify.Text           = "Guardar";
         selectedBan = null;
         filterBans  = new List <ListaNegra>();
         loadTable(bans);
         getUnbannedMembers();
         loadDataCmb(members);
     }
     catch (Exception ex)
     {
         FormUtils.defaultErrorMessage(ex);
     }
 }
Beispiel #13
0
        public ServiceResult InsertarListaNegra(ListaNegra oListaNegra)
        {
            ServiceResult resultado = new ServiceResult();

            try
            {
                resultado.ResultValue = (new ListaNegraLogic()).InsertarListaNegra(oListaNegra);
                resultado.ServiceOk   = true;
            }
            catch (Exception ex)
            {
                resultado.ErrorMessage = "Error en ListaNegraServices.InsertarListaNegra:" + ex.Message;
                #if (DEBUG)
                Console.WriteLine(resultado.ErrorMessage);
                #else
                //EventLogManager.LogErrorEntry(result.ErrorMessage);
                #endif
            }
            return(resultado);
        }
Beispiel #14
0
        private void dgvBlackList_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try {
                int index = e.RowIndex;
                if (index >= 0)
                {
                    List <ListaNegra> list = filterBans.Count == 0 ? bans : filterBans;
                    selectedBan = list[index];

                    setTemporarilyAllMembers();

                    cmbMembers.SelectedValue     = selectedBan.Miembro.idMiembro;
                    cmbResponsable.SelectedValue = selectedBan.Miembro1.idMiembro;
                    chbStatus.Checked            = selectedBan.baja;
                    txtDescription.Text          = selectedBan.motivo;
                    btnSaveModify.Text           = "Modificar";
                }
            }
            catch (Exception ex)
            {
                FormUtils.defaultErrorMessage(ex);
            }
        }
Beispiel #15
0
        private static bool LeerArchivoEntrada(List <ListaNegra> ListaNegra, string rutaArchivo, out string msgError)
        {
            msgError = string.Empty;

            try
            {
                using (FileStream fileStream = new FileStream(rutaArchivo, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                    using (SpreadsheetDocument docExcel = SpreadsheetDocument.Open(fileStream, false))
                    {
                        WorkbookPart  oWorkbookPart  = docExcel.WorkbookPart;
                        WorksheetPart oWorksheetPart = oWorkbookPart.WorksheetParts.First();
                        Worksheet     oWorksheet     = oWorksheetPart.Worksheet;

                        var sheetData = oWorksheetPart.Worksheet.Elements <SheetData>().First();

                        SharedStringTablePart sstpart = oWorkbookPart.GetPartsOfType <SharedStringTablePart>().First();
                        SharedStringTable     sst     = sstpart.SharedStringTable;

                        var celdas   = oWorksheet.Descendants <Cell>();
                        var columnas = sheetData.Elements <Row>().ToList();

                        string strCelda;
                        string strRFC       = string.Empty;
                        string strEstado    = string.Empty;
                        string strFechaSAT1 = string.Empty;
                        string strFechaDOF1 = string.Empty;
                        string strFechaSAT2 = string.Empty;
                        string strFechaDOF2 = string.Empty;

                        foreach (Row columna in columnas)
                        {
                            strRFC       = string.Empty;
                            strEstado    = string.Empty;
                            strFechaSAT1 = string.Empty;
                            strFechaDOF1 = string.Empty;
                            strFechaSAT2 = string.Empty;
                            strFechaDOF2 = string.Empty;


                            if (columna.RowIndex > 3)
                            {
                                //foreach (Cell celda in columna.Elements<Cell>())
                                foreach (Cell celda in columna.Descendants <Cell>())
                                {
                                    strCelda = celda.CellReference.Value;

                                    string valorCelda = ObtenValorCeldaFormateado(oWorkbookPart, celda);

                                    //RFC
                                    if (celda.CellReference.Value.Equals("B" + columna.RowIndex))
                                    {
                                        strRFC = valorCelda;
                                    }

                                    //Situacion
                                    if (celda.CellReference.Value.Equals("D" + columna.RowIndex))
                                    {
                                        //strEstado = sst.ChildElements[ssid].InnerText;
                                        strEstado = valorCelda;
                                    }

                                    //Fecha SAT1
                                    if (celda.CellReference.Value.Equals("F" + columna.RowIndex))
                                    {
                                        strFechaSAT1 = valorCelda;
                                    }

                                    //Fecha DOT1
                                    if (celda.CellReference.Value.Equals("H" + columna.RowIndex))
                                    {
                                        strFechaDOF1 = valorCelda;
                                    }

                                    //Fecha SAT2
                                    if (celda.CellReference.Value.Equals("M" + columna.RowIndex))
                                    {
                                        strFechaSAT2 = valorCelda;
                                    }

                                    //Fecha DOT2
                                    if (celda.CellReference.Value.Equals("N" + columna.RowIndex))
                                    {
                                        strFechaDOF2 = valorCelda;
                                    }
                                }


                                if (strRFC != string.Empty)
                                {
                                    if (strEstado.Contains("Presunto") || strEstado.Contains("Definitivo"))
                                    {
                                        ListaNegra registroListaNegra = new ListaNegra();
                                        registroListaNegra.RFC    = strRFC;
                                        registroListaNegra.Estado = strEstado;

                                        if (strEstado.Contains("Presunto"))
                                        {
                                            registroListaNegra.FechaSAT = strFechaSAT1;
                                            registroListaNegra.FechaDOF = strFechaDOF1;
                                        }
                                        else if (strEstado.Contains("Definitivo"))
                                        {
                                            registroListaNegra.FechaSAT = strFechaSAT2;
                                            registroListaNegra.FechaDOF = strFechaDOF2;
                                        }

                                        ListaNegra.Add(registroListaNegra);
                                    }
                                }
                            }
                        }
                    }
                }
            }

            catch (Exception e)
            {
                msgError = e.Message;
                return(false);
            }

            return(true);
        }
        public async Task <ActionResult> DeleteTraspaso(TagsViewModel model)
        {
            try
            {
                db.Configuration.ValidateOnSaveEnabled = false;

                if (model.IdOldTag == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                Tags tagOld = await db.Tags.FindAsync(model.IdOldTag);

                if (tagOld == null)
                {
                    return(HttpNotFound());
                }

                var cuenta = await db.CuentasTelepeajes.Join(db.Clientes,
                                                             cue => cue.ClienteId,
                                                             cli => cli.Id,
                                                             (cue, cli) => new { cue, cli })
                             .Where(x => x.cue.Id == tagOld.CuentaId)
                             .FirstOrDefaultAsync();

                if (cuenta == null)
                {
                    return(HttpNotFound());
                }

                var UserId = User.Identity.GetUserId();

                var lastCorteUser = await db.CortesCajeros
                                    .Where(x => x.IdCajero == UserId)
                                    .OrderByDescending(x => x.DateTApertura).ToListAsync();

                if (lastCorteUser.Count > 0)
                {
                    if (model.Checked == true)
                    {
                        var tagNew = new Tags
                        {
                            StatusResidente = false,
                            StatusTag       = true,
                            DateTTag        = DateTime.Now,
                            IdCajero        = User.Identity.GetUserId(),
                            NumTag          = model.NumNewTag,
                            CobroTag        = model.CobroTag,
                            CuentaId        = cuenta.cue.Id,
                        };
                        var detalle = new OperacionesCajero
                        {
                            Concepto       = "TAG TRASPASO",
                            DateTOperacion = DateTime.Now,
                            Numero         = tagNew.NumTag,
                            Tipo           = "TAG",
                            TipoPago       = "TRA",
                            CorteId        = lastCorteUser.FirstOrDefault().Id,
                            CobroTag       = Convert.ToDouble(tagNew.CobroTag),
                            NoReferencia   = await methods.RandomNumReferencia(),
                        };

                        switch (cuenta.cue.TypeCuenta)
                        {
                        case "Colectiva":
                            tagNew.SaldoTag = cuenta.cue.SaldoCuenta;
                            detalle.Monto   = double.Parse(tagNew.SaldoTag);
                            break;

                        case "Individual":
                            var SaldoSend = model.SaldoTag;
                            SaldoSend       = SaldoSend.Replace(",", string.Empty);
                            tagNew.SaldoTag = SaldoSend.Replace(".", string.Empty);
                            detalle.Monto   = double.Parse(model.SaldoTag);
                            break;

                        default:
                            break;
                        }

                        db.Tags.Add(tagNew);
                        db.OperacionesCajeros.Add(detalle);
                    }
                    else
                    {
                        var detalle = new OperacionesCajero
                        {
                            Concepto       = "TAG ELIMINADO",
                            DateTOperacion = DateTime.Now,
                            Numero         = tagOld.NumTag,
                            Tipo           = "TAG",
                            TipoPago       = null,
                            CorteId        = lastCorteUser.FirstOrDefault().Id,
                            CobroTag       = null,
                            Monto          = null,
                            NoReferencia   = await methods.RandomNumReferencia(),
                        };

                        db.OperacionesCajeros.Add(detalle);
                    }

                    var listNegra = new ListaNegra
                    {
                        Tipo        = "TAG",
                        Numero      = tagOld.NumTag,
                        Observacion = model.Observacion,
                        Date        = DateTime.Now,
                        IdCajero    = User.Identity.GetUserId(),
                        Clase       = cuenta.cue.TypeCuenta,
                        NumCliente  = cuenta.cli.NumCliente,
                        NumCuenta   = cuenta.cue.NumCuenta,
                    };

                    switch (cuenta.cue.TypeCuenta)
                    {
                    case "Individual":
                        listNegra.SaldoAnterior = double.Parse(model.SaldoTag);
                        break;

                    default:
                        break;
                    }

                    db.ListaNegras.Add(listNegra);
                    db.Tags.Remove(tagOld);
                    await db.SaveChangesAsync();

                    TempData["SDelete"] = $"Se eliminó correctamente el tag: {tagOld.NumTag}.";
                    return(RedirectToAction("Index", "Clientes"));
                }

                TempData["EDelete"] = $"¡Ups! ha ocurrido un error inesperado.";
                return(RedirectToAction("Index", "Clientes"));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Beispiel #17
0
        private void btnSaveModify_Click(object sender, EventArgs e)
        {
            try {
                this.errorProvider.Clear();
                List <ControlErrorProvider> errorsProvider = FormValidators.validFormTest(getValidators());
                bool isValid = errorsProvider == null;
                if (isValid)
                {
                    int  member      = int.Parse(cmbMembers.SelectedValue.ToString());
                    int  responsable = int.Parse(cmbResponsable.SelectedValue.ToString());
                    bool saveValue   = true;
                    bool isNew       = selectedBan == null;

                    if (!isNew)
                    {
                        Operation <ListaNegra> existingRecordOperation = blackListController.getBansByResponsableAndMember(responsable, member);
                        saveValue = existingRecordOperation.Data.Count == 0 ||
                                    selectedBan.idMiembro == member && selectedBan.responsable == responsable;

                        if (!saveValue)
                        {
                            MessageBox.Show("Ya existe un registro activo con los datos que estan ingresando.", "ERROR DE VALIDACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                    }

                    if (member == responsable)
                    {
                        MessageBox.Show("El responsable debe ser diferente del miembro.", "ERROR DE VALIDACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    ListaNegra ban = new ListaNegra()
                    {
                        idListaNegra = isNew ? 0 : selectedBan.idListaNegra,
                        responsable  = responsable,
                        idMiembro    = member,
                        motivo       = txtDescription.Text,
                        baja         = isNew ? true : chbStatus.Checked
                    };

                    Operation <ListaNegra> operation = isNew ? blackListController.addRecord(ban) :
                                                       blackListController.updateRecord(ban);
                    if (operation.State)
                    {
                        loadTable(getBans());
                        getUnbannedMembers();
                        loadDataCmb(members);
                        clearForm();
                        MessageBox.Show(isNew ? "Miembro agregado a lista negra" : "Registro modificado");
                        return;
                    }
                }
                else
                {
                    MessageBox.Show("Algunos datos proporcionados son inválidos. Pase el puntero sobre los íconos de error para ver los detalles de cada campo.", "ERROR DE VALIDACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    foreach (ControlErrorProvider errorProvider in errorsProvider)
                    {
                        this.errorProvider.SetError(errorProvider.ControlName, errorProvider.ErrorMessage);
                    }
                }
            }
            catch (Exception ex)
            {
                FormUtils.defaultErrorMessage(ex);
            }
        }
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult> CreateTagsAjax(Tags tags)
        {
            string message = string.Empty;

            try
            {
                //ViewBag.CuentaId = new SelectList(db.CuentasTelepeajes, "Id", "NumCuenta", tags.CuentaId);
                db.Configuration.ValidateOnSaveEnabled = false;

                ModelState.Remove("SaldoARecargar");
                ModelState.Remove("ConfSaldoARecargar");
                ModelState.Remove("IdCajero");

                tags.NumTag.Trim();

                var cuenta = await db.CuentasTelepeajes.Include(m => m.Tags).Where(x => x.Id == tags.CuentaId).FirstOrDefaultAsync();

                if (cuenta == null)
                {
                    return(HttpNotFound());
                }

                if (cuenta.StatusCuenta == true)
                {
                    var query = await db.Tags.Where(x => x.NumTag == tags.NumTag).ToListAsync();

                    var query_listnegra = await db.ListaNegras.Where(x => x.Numero == tags.NumTag).ToListAsync();

                    if (query.Count == 0 && query_listnegra.Count == 0)
                    {
                        tags.StatusResidente = false;
                        tags.StatusTag       = true;
                        tags.DateTTag        = DateTime.Now;
                        tags.IdCajero        = User.Identity.GetUserId();

                        if (ModelState.IsValid)
                        {
                            var UserId = User.Identity.GetUserId();

                            var lastCorteUser = await db.CortesCajeros
                                                .Where(x => x.IdCajero == UserId)
                                                .OrderByDescending(x => x.DateTApertura).FirstOrDefaultAsync();

                            if (lastCorteUser != null)
                            {
                                var detalle = new OperacionesCajero
                                {
                                    Concepto       = "TAG ACTIVADO",
                                    DateTOperacion = DateTime.Now,
                                    Numero         = tags.NumTag,
                                    Tipo           = "TAG",
                                    TipoPago       = "EFE",
                                    CorteId        = lastCorteUser.Id,
                                    CobroTag       = double.Parse(tags.CobroTag, new NumberFormatInfo {
                                        NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                                    }),
                                    NoReferencia = await methods.RandomNumReferencia(),
                                };

                                switch (cuenta.TypeCuenta)
                                {
                                case "Colectiva":
                                    tags.SaldoTag = cuenta.SaldoCuenta;
                                    detalle.Monto = null;
                                    break;

                                case "Individual":
                                    var SaldoSend = tags.SaldoTag;
                                    SaldoSend     = SaldoSend.Replace(",", string.Empty);
                                    tags.SaldoTag = SaldoSend.Replace(".", string.Empty);
                                    detalle.Monto = double.Parse(tags.SaldoTag, new NumberFormatInfo {
                                        NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                                    });
                                    break;

                                default:
                                    break;
                                }

                                if (tags.Checked)
                                {
                                    var listnegra = new ListaNegra {
                                        Date = DateTime.Now, IdCajero = User.Identity.GetUserId(), Observacion = tags.Observacion, Numero = tags.OldTag, Tipo = "TAG"
                                    };

                                    listnegra.SaldoAnterior = tags.OldSaldo == null || tags.OldSaldo == string.Empty ? (double?)null : double.Parse(tags.OldSaldo, new NumberFormatInfo {
                                        NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                                    });
                                    db.ListaNegras.Add(listnegra);
                                }

                                db.Tags.Add(tags);
                                db.OperacionesCajeros.Add(detalle);

                                await db.SaveChangesAsync();

                                message = "Se activó correctamente el tag: " + tags.NumTag + " para la cuenta: " + cuenta.NumCuenta + ".";

                                var count_tags = $"# de Tags activados: {cuenta.Tags.Count}";


                                return(Json(new { Message = message, count_tags, JsonRequestBehavior.AllowGet }));
                            }
                        }

                        message = "¡Ups! ocurrio un error inesperado.";
                        return(Json(new { Message = message, JsonRequestBehavior.AllowGet }));
                    }
                    else
                    {
                        message = "El tag: " + tags.NumTag + " ya esta activado o en lista negra.";
                        return(Json(new { Message = message, JsonRequestBehavior.AllowGet }));
                    }
                }

                message = $"No se puede agregar el tag: {tags.NumTag} a la cuenta porque esta dada de baja.";
                return(Json(new { Message = message, JsonRequestBehavior.AllowGet }));
            }
            catch (Exception ex)
            {
                message = $"¡Ups! ocurrio un error inesperado, {ex.Message}";
                return(Json(new { Message = message, JsonRequestBehavior.AllowGet }));
            }
        }