public ActionResult AgregarContacto(ContactoViewModel model)
        {
            if (ModelState.IsValid)
            {
                var contacto = new Contacto();
                GlobalHelpers.Transfer<ContactoViewModel, Contacto>(model, contacto);
                contacto.IdUserProfile = WebSecurity.CurrentUserId;
                db.Contactoes.Add(contacto);
                db.SaveChanges();

                ViewBag.Exito = true;
                return Json(true, JsonRequestBehavior.AllowGet);
            }

            ViewBag.Exito = false;
            return Json(false, JsonRequestBehavior.AllowGet);
        }
        public ActionResult Editar(int Id, Contacto contacto)
        {
            if (ModelState.IsValid)
            {
                var contactoBd = db.Contactoes.FirstOrDefault(c => c.Id == Id);

                contactoBd.IdTipoContacto = contacto.IdTipoContacto;
                contactoBd.Descripcion = contacto.Descripcion;

                db.Entry(contactoBd).State = System.Data.EntityState.Modified;

                return RedirectToAction("Detalles", new { Id = contacto.Id });
            }

            ViewBag.IdTipoContacto = new SelectList(db.TipoContactoes, "Id", "Descripcion", contacto.IdTipoContacto);

            return View(contacto);
        }
        public ActionResult NuevoContacto(Contacto nuevoContacto)
        {
            if (ModelState.IsValid)
            {
                nuevoContacto.IdUserProfile = WebSecurity.CurrentUserId;
                db.Contactoes.Add(nuevoContacto);
                db.SaveChanges();

                return RedirectToAction("MisContactos");
            }

            ViewBag.IdTipoContacto = new SelectList(db.TipoContactoes, "Id", "Descripcion", nuevoContacto.IdTipoContacto);

            return View(nuevoContacto);
        }
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Intento de registrar al usuario
                try
                {
                    Random Nip = new Random();
                    model.NipSms = Nip.Next(1234, 9876).ToString();

                    WebSecurity.CreateUserAndAccount(
                        model.UserName, model.Password,
                        propertyValues: new { Nombre = model.Nombre, Apellido = model.Apellido, Cedula = model.Cedula, Matricula = model.Matricula, NipSms = model.NipSms });
                    var role = db.webpages_Roles.Find(model.RoleId);
                    var provider = (SimpleRoleProvider)Roles.Provider;
                    provider.AddUsersToRoles(new[] { model.UserName }, new[] { role.RoleName }); // Agregar rol a usuario.
                    Contacto nuevo = new Contacto();
                    nuevo.Descripcion = model.Correo;
                    nuevo.IdUserProfile = db.UserProfiles.SingleOrDefault(u=>u.UserName==model.UserName).UserId;
                    nuevo.IdTipoContacto = 1;
                    db.Contactoes.Add(nuevo);
                    db.SaveChanges();
                    string Message = string.Format("{0}. {1}: {2}. Favor anotarlo.", "Usuario registrado satisfactoriamente", "Su Nip Sms es", model.NipSms);
                    TempData["MessageToDeliver"] = Message;
                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario
            return View(model);
        }