public ActionResult Delete(CountableAccountViewModel vm)
 {
     try
     {
         var account = Mapper.Map(vm, new CountableAccount());
         var toDetele = db.Accounts.Where(a => a.MayorAccountId == account.Id).ToList();
         db.Accounts.RemoveRange(toDetele);
         db.Accounts.Attach(account);
         db.Accounts.Remove(account);
         db.SaveChanges();
         return Json(new { Result = "OK", Message = "Elemento Eliminado." });
     }
     catch (Exception ex)
     {
         return Json(new { Result = "Error", Message = ex.StackTrace });
     }
 }
        public ActionResult Save(CountableAccountViewModel vm)
        {
            if (ModelState.ContainsKey("FechaRegistro"))
            {
                ModelState["FechaRegistro"].Errors.Clear();
            }
            var account = Mapper.Map(vm, new CountableAccount());
            if (ModelState.IsValid)
            {
                string mensaje = "";
                if (account.Id > 0)
                {
                    db.Accounts.Attach(account);
                    db.Entry(account).State = EntityState.Modified;
                    db.SaveChanges();
                    mensaje = "Datos Actualizados.";
                }
                else
                {
                    db.Accounts.Add(account);
                    db.SaveChanges();
                    mensaje = "Cuenta Creado";
                }
                var tempAccount = db.Accounts.Find(account.Id);
                vm = Mapper.Map(tempAccount, new CountableAccountViewModel());
                return Json(new { Result = "OK", Data = vm, Message = mensaje });
            }

            return Json(new { Result = "ERROR", Message = "Hay Datos erroneos" });
        }