Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Web/Controllers/PerfilController.cs @ 142:62dc9fb3a03e
Quitando cuentas BuiltIn
author | Nelo@Guinea.neluz.int |
---|---|
date | Mon, 01 Aug 2011 00:28:04 -0300 |
parents | 7a2eeb9e9bf9 |
children | 97e51ddeeb58 |
line wrap: on
line source
using System; using System.Linq; using System.Web.Mvc; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Factories; using AltNetHispano.Agendas.Twitter; using AltNetHispano.Agendas.Web.Models; namespace AltNetHispano.Agendas.Web.Controllers { public class PerfilController : Controller { public ActionResult Index() { var persona = IdentityContext.GetUsuario(); if (persona == null) { ModelState.AddModelError(string.Empty, "No fue posible recuperar su perfil, vuelva a autenticarse y reintente"); return View(); } var model = new PerfilIndexModel { DisplayName = persona.Nombre, Cuentas = from c in persona.Cuentas select new CuentaDto {IdentityProvider = c.IdentityProvider.ToString(), UserName = c.LogonName} }; return View(model); } public ActionResult AddGoogleAccount() { throw new NotImplementedException(); } public ActionResult AddTwitterAccount() { var oAuth = new OAuthTwitter(); if (Request["oauth_token"] == null) { var action = Url.Action("AddTwitterAccount"); var url = Request.Url.Scheme + "://" + Request.Url.Host + (Request.Url.Port != 80 ? ":" + Request.Url.Port : string.Empty) + action; return Redirect(oAuth.AuthorizationLinkGet(url).ToString()); } var response = oAuth.AccessTokenGet(Request["oauth_token"], Request["oauth_verifier"]); if (response.Length > 0) { var username = OAuthTwitter.GetResponseContent(response, "screen_name"); var personaService = AgendaFactory.GetPersonaService(); personaService.AddCuenta(IdentityProviderEnum.Twitter, username); return RedirectToAction("Index"); } return RedirectToAction("Index"); } public ActionResult Remove(string identityProvider, string username) { var personaService = AgendaFactory.GetPersonaService(); IdentityProviderEnum ip; if (!Enum.TryParse<IdentityProviderEnum>(identityProvider, out ip)) { ModelState.AddModelError("IdentityProvider", "No se reconoce el identity provider" + identityProvider); return View("Index"); } personaService.RemoveCuenta(ip, username); return RedirectToAction("Index"); } } }