How to suggest available username

Step 1 : Modify RegistrationService.asmx.cs as shown below. 
 
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.Script.Serialization;
using System.Web.Services;
 
namespace Demo
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
 
    [System.Web.Script.Services.ScriptService]
    public class RegistrationService : System.Web.Services.WebService
    {
        public bool UserNameExists(string userName)
        {
            string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
            using (SqlConnection con = new SqlConnection(cs))
            {
                SqlCommand cmd = new SqlCommand("spUserNameExists", con);
                cmd.CommandType = CommandType.StoredProcedure;
 
                cmd.Parameters.Add(new SqlParameter()
                {
                    ParameterName = "@UserName",
                    Value = userName
                });
 
                con.Open();
                return Convert.ToBoolean(cmd.ExecuteScalar());
            }
        }
 
        [WebMethod]
        public void GetAvailableUserName(string userName)
        {
            Registration regsitration = new Registration();
            regsitration.UserNameInUse = false;
 
            while (UserNameExists(userName))
            {
                Random random = new Random();
                int randomNumber = random.Next(1, 100);
                userName = userName + randomNumber.ToString();
                regsitration.UserNameInUse = true;
            }
 
            regsitration.UserName = userName;
            JavaScriptSerializer js = new JavaScriptSerializer();
            Context.Response.Write(js.Serialize(regsitration));
        }
    }
}
 
Step 2 : Modify the HTML and jQuery code in HtmlPage1.html as shown below.
 
<html>
<head>
    <script src="jquery-1.11.2.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#txtUserName').keyup(function () {
                var userName = $(this).val();
                if (userName.length >= 3) {
                    $.ajax({
                        url: 'RegistrationService.asmx/GetAvailableUserName',
                        method: 'post',
                        data: { userName: userName },
                        dataType: 'json',
                        success: function (data) {
                            var divElement = $('#divOutput');
                            var spanElement = $('#spanAvailableUserName');
                            var linkElement = $('#linkAvailableUserName');
 
                            if (data.UserNameInUse) {
                                divElement.text(userName + ' already in use. Try another?');
                                divElement.css('color', 'red');
                                spanElement.text('Available :');
                                linkElement.text(data.UserName).click(function () {
                                    $('#txtUserName').val($(this).text());
                                    divElement.text('');
                                    spanElement.text('');
                                    linkElement.text('');
                                });
                            }
                            else {
                                divElement.text(data.UserName + ' available')
                                divElement.css('color', 'green');
                                spanElement.text('');
                                linkElement.text('');
                            }
                        },
                        error: function (err) {
                            alert(err);
                        }
                    });
                }
            });
        });
    </script>
</head>
<body style="font-family:Arial">
    <table>
        <tr>
            <td>
                UserName :
            </td>
            <td>
                <input id="txtUserName" type="text" />
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <div id="divOutput"></div>
                <span id="spanAvailableUserName"></span>
                <a id="linkAvailableUserName" href="#"></a>
            </td>
        </tr>
    </table>
</body>
</html>

Comments

Popular posts from this blog

Automatically send Birthday email using C#.Net

Drag and Drop multiple File upload using jQuery AJAX in ASP.Net using C# and VB.Net

Difference between each and map in jquery