public ActionResult Welcome()
        {
            //Social Login Process.
            if (HttpContext.Request.Params["token"] != null)
            {
                var lrCallback = new LoginRadiusCallback();
                if (lrCallback.IsCallback)
                {
                    var accesstoken = lrCallback.GetAccessToken(WebConfigurationManager.AppSettings["loginradius:apisecret"]);
                    Session["access_token"] = accesstoken.access_token;
                    //create client with the help of access token as parameter
                    var client = new LoginRadiusClient(accesstoken);
                    //create object to execute user profile api to get user profile data.
                    var userprofile = new UserProfileApi();
                    //To get ultimate user profile data with the help of user profile api object as parameter.
                    // and pass "LoginRadiusUltimateUserProfile" model as interface to map user profile data.
                    var userProfileData = client.GetResponse<RaasUserprofile>(userprofile);
                    if (userProfileData != null)
                    {
                        Session["userprofile"] = userProfileData;
                        Session["Uid"] = userProfileData.Uid;
                        return View(userProfileData);
                    }
                    return Redirect("/Home/Index");
                }
            }

            //Traditional Login Process.
            else if (HttpContext.Request.Params["Access_token"] != null)
            {
                var userProfile = UserProfiledata(HttpContext.Request.Params["Access_token"]);
                return View(userProfile);
            }

            //Set Password and Traditional profile registration process for social user accounts.
            else if (HttpContext.Request.Params["password"] != null && HttpContext.Request.Params["confirmpassword"] != null && HttpContext.Request.Params["emailid"] != null)
            {
                var _object = new UserprofileEntity();
                var userid = (string)System.Web.HttpContext.Current.Session["Uid"];
                _object.UserCreateRegistrationProfile(userid, HttpContext.Request.Params["emailid"], HttpContext.Request.Params["password"]);
                return Content("<script language='javascript' type='text/javascript'>alert('Password has been set !'); window.location.href =window.location.href;</script>");
            }

            //Process or Function to update password of user account.
            else if (HttpContext.Request.Params["oldpassword"] != null && HttpContext.Request.Params["newpassword"] != null && HttpContext.Request.Params["confirmnewpassword"] != null)
            {
                try
                {
                    var _object = new UserprofileEntity();
                    _object.ChangePassword(HttpContext.Request.Params["raasid"], HttpContext.Request.Params["oldpassword"], HttpContext.Request.Params["newpassword"]);
                    return Content("<script language='javascript' type='text/javascript'>alert('Password has been Changed successfully !'); window.location.href =window.location.href;</script>");
                }
                //To catch loginRadius API exception.
                catch (LoginRadiusException)
                {
                    return Content("<script language='javascript' type='text/javascript'>alert('Password can not be updated, please check your old password!' ); window.location.href = window.location.href; </script>");
                }
            }

            //Process or Function to link  a social account.
            else if (HttpContext.Request.Params["accounttoken"] != null)
            {
                var accessToken = HttpContext.Request.Params["accounttoken"];
                var client = new LoginRadiusClient(accessToken);
                var userprofile = new UserProfileApi();
                var userProfileData = client.GetResponse<RaasUserprofile>(userprofile);
                var _object = new AccountEntity();
                var userid = (string)System.Web.HttpContext.Current.Session["Uid"];
                try
                {
                    var status = _object.LinkAccount(userid, userProfileData.Provider, userProfileData.ID);
                    return Content(status.isPosted ? "<script language='javascript' type='text/javascript'>alert( 'Social Account has been linked !' ); window.location =window.location.href; </script>" : "<script language='javascript' type='text/javascript'>alert( 'Social Account can not be linked !' ); window.location =window.location.href; </script>");
                }
                catch (LoginRadiusException)
                {
                    return Content("<script language='javascript' type='text/javascript'>alert( 'Social Account cannot be linked! it has been linked with another account' ); window.location =window.location.href; </script>");
                }
            }

            //Process or Function to unlink a social account.
            else if (HttpContext.Request.Params["accountunlinkname"] != null && HttpContext.Request.Params["accountunlinkid"] != null)
            {
                try
                {
                    var _object = new AccountEntity();
                    var userid = (string)System.Web.HttpContext.Current.Session["Uid"];
                    var status = _object.UnlinkAccount(userid, HttpContext.Request.Params["accountunlinkname"], HttpContext.Request.Params["accountunlinkid"]);
                    return Content(status.isPosted ? "<script language='javascript' type='text/javascript'>alert( 'Social Account has been unlinked !' ); window.location.href =window.location.href; </script>" : "<script language='javascript' type='text/javascript'>alert( 'Social Account can not be unlinked !' ); window.location.href = window.location.href; </script>");
                }
                catch (LoginRadiusException exception)
                {
                    return Content("<script language='javascript' type='text/javascript'>alert( '" + exception.Message + "' ); window.location.href ='/Home/Welcome'; </script>");
                }

            }
            return Redirect("/Home/Index");
        }
 public ActionResult UpdateProfile(User user)
 {
     try
     {
         var userProfileData = (RaasUserprofile)Session["userprofile"];
         var _object = new UserprofileEntity();
         var response = _object.EditUser(userProfileData.ID, user);
         UserProfiledata(System.Web.HttpContext.Current.Session["access_token"].ToString());
         return Content(response.isPosted ? "<script language='javascript' type='text/javascript'>alert( 'Profile has been updated !!' ); window.location.href ='/Home/Welcome'; </script>" : "<script language='javascript' type='text/javascript'>alert( 'Profile cannot be updated ,Please check parameters again !' ); window.location.href = '/Home/Welcome'; </script>");
     }
     catch (LoginRadiusException exception)
     {
         return Content("<script language='javascript' type='text/javascript'>alert( '" + exception.Response + "' ); window.location.href ='/Home/Welcome'; </script>");
     }
 }