public ActionResult SaveAddPerson(SaveEditParameters param) { if (string.IsNullOrWhiteSpace(param.FirstName) || string.IsNullOrWhiteSpace(param.LastName)) { throw new Exception("Name is required"); } var person = new Person(); person.FirstName = (param.FirstName ?? string.Empty).Trim(); person.LastName = (param.LastName ?? string.Empty).Trim(); person.MiddleName = (param.MiddleName ?? string.Empty).Trim(); person.Honorific = (param.Honorific ?? string.Empty).Trim(); person.Suffix = (param.Suffix ?? string.Empty).Trim(); person.Nickname = (param.Nickname ?? string.Empty).Trim(); person.Biography = (param.Biography ?? string.Empty).Trim(); person.Photo = DatabaseSession.Load <Photo>(Photo.NoPic); // TODO: build in auditing person.InsertedDateTime = DateTime.UtcNow; person.LastModifiedDateTime = DateTime.UtcNow; DatabaseSession.Save(person); DatabaseSession.Flush(); return(this.RedirectToAction(x => x.PersonDetails(person.PersonId))); }
public ActionResult HandleFacebookOAuthCallback(string code, string state) { if (code.IsNullOrWhiteSpace()) { return(this.RedirectToAction(c => c.Login())); } // TODO, decrypt redirectURL var redirectURL = string.Empty; if (!string.IsNullOrWhiteSpace(state)) { redirectURL = HttpUtility.UrlDecode(state); } var facebookAccessToken = FacebookAuthentication.ExchangeCodeForAccessToken(Request, FacebookAuthenticationOptions.FromWebConfig(), code); var user = DatabaseSession.Query <UserAccount>().Where(x => x.FacebookId == facebookAccessToken.FacebookID).SingleOrDefault(); if (user == null) { user = new UserAccount(facebookAccessToken); // TODO: redirect to a welcome page to confirm info redirectURL = this.GetURL<> } user.UpdateSeen(); var tokenEntity = user.AddFacebookAccessToken(facebookAccessToken); DatabaseSession.Save(user); DatabaseSession.Flush(); var tokenID = tokenEntity.UserFacebookAccessTokenId; HttpContext.Get <IAuthenticationManager>().SignIn(tokenID.ToString(), FacebookAuthentication.AuthenticationType); if (redirectURL.IsNullOrWhiteSpace()) { redirectURL = "~"; } return(Redirect(redirectURL)); }