コード例 #1
0
        public ActionResult SignUp(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var data = _member.CreateMember(model.FirstName, model.LastName, model.Email,null, model.Password, model.Birthday, model.Gender, null, null, null, null, null);
                    if (data.Code != "1")
                    {
                        ModelState.AddModelError("", data.Message);
                        return View(model);
                    }

                    var user = _member.GetSingleMemberByUsernameOrEmail(null, model.Email);

                    SessionManager.IsLoggedIn = true;

                    SessionManager.UserLogged = new UserProfile()
                    {
                        UserName = user.Member.MemberUserName,
                        UserId = user.Member.MemberId,
                        FirstName = model.FirstName,
                        LastName = model.LastName
                    };
                    return RedirectToAction("Index", "Home");
                }
                catch (Exception e)
                {
                    Logger.Error(e.Message);
                    ModelState.AddModelError("", e.Message);
                }
            }

            return View(model);
        }
コード例 #2
0
ファイル: AccountController.cs プロジェクト: nhanthieugia/BSG
        public ActionResult SignUp(RegisterModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var data = MemberRepository.CreateMemberSimple(model.FirstName, model.LastName, null, model.Birthday.ToString("MM/dd/yyyy"), model.Email,
                        null, model.Password, model.Gender);
                    if (data.Code != "1")
                    {
                        ModelState.AddModelError("", data.Message);
                        return View(model);
                    }

                    var user = MemberRepository.GetSingleByUserNameOrEmail(model.Email, null, null);

                    SessionManager.IsLoggedIn = true;

                    SessionManager.UserLogged = new UserProfile()
                    {
                        UserName = user.Member.MemberUserName,
                        UserId = user.Member.MemberId,
                        FirstName = model.FirstName,
                        LastName = model.LastName,
                        Avatar = user.Member.MemberAvatar,
                        AvatarMedium = user.Member.MemberAvatarMedium,
                        FacebookId = user.Member.MemberFacebookId,
                        Gender = user.Member.MemberGender
                    };

                    if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
                        return Redirect(returnUrl);
                    return RedirectToAction("Index", "Home");
                }
                catch (Exception e)
                {
                    Logger.Error(e.Message);
                    ModelState.AddModelError("", e.Message);
                }
            }

            return View(model);
        }
コード例 #3
0
ファイル: AccountController.cs プロジェクト: nhanthieugia/BSG
        public ActionResult FacebookCallbackLogin(string code)
        {
            try
            {
                var fb = new Facebook.FacebookClient();
                dynamic result = fb.Post("oauth/access_token", new
                {
                    client_id = Config.FacebookClientId,
                    client_secret = Config.FacebookClientSecret,
                    redirect_uri = RedirectUri.AbsoluteUri,
                    code = code
                });

                var accessToken = result.access_token;

                // Store the access token in the session
                Session["AccessToken"] = accessToken;

                // update the facebook client with the access token so
                // we can make requests on behalf of the user
                fb.AccessToken = accessToken;

                // Get the user's information
                dynamic me = fb.Get("me?fields=first_name,last_name,id,email,gender,username,birthday");

                MemberResponseModel model = MemberRepository.GetSingleByFacebookId(me.id);

                if (model.Code == "-1" && model.Message.Contains("No member"))
                {
                    MemberEditResponseModel data = MemberRepository.CreateMemberSimple(me.first_name, me.last_name, me.username, me.birthday, me.email, me.id, Contrib.CommonLib.MD5Hasher(me.first_name), me.gender == "male");

                    //Create member error
                    if (data.Code == "-1")
                    {
                        var returnModel = new RegisterModel()
                        {
                            Email = me.email,
                            FirstName = me.first_name,
                            Gender = me.gender == "male",
                            LastName = me.last_name,
                            Birthday = Convert.ToDateTime(me.birthday)
                        };
                        return View(@"~/Views/Account/SignUp.cshtml", returnModel);
                    }

                    //Create member success and then get avatar from facebook
                    if (data.Code == "1")
                    {
                        //Get avatar from facebook api
                        byte[] dataImg;
                        using (var client = new WebClient()){
                            dataImg = client.DownloadData(string.Format(Config.FacebookGraphImage,me.username));
                        }
                        var member = MemberRepository.ChangeAvatar(data.Message, "img.jpg", Convert.ToBase64String(dataImg), null);
                    }

                    model = MemberRepository.GetSingleByFacebookId(me.id);

                }

                SessionManager.IsLoggedIn = true;
                SessionManager.UserLogged = new UserProfile
                {
                    FacebookId = model.Member.MemberFacebookId,
                    FirstName = model.Member.MemberFirstName,
                    LastName = model.Member.MemberLastName,
                    UserName = model.Member.MemberUserName,
                    UserId = model.Member.MemberId,
                    Avatar = model.Member.MemberAvatar,
                    AvatarMedium = model.Member.MemberAvatarMedium,
                    Gender = model.Member.MemberGender
                };

                return RedirectToAction("Index", "Home");
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return RedirectToAction("Index", "Home");
            }
        }