UI (.aspx)
(ASP.Net+HTML)
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
    <ContentTemplate>
        <asp:Timer
runat="server"
ID="timer1"
OnTick="HaZaTimer_Tick" Interval="1000"></asp:Timer>
        <h3>Online
Friends</h3>
        <asp:DataList
runat="server"
ID="OnlineDataList">
            <ItemTemplate>
                <div
id="online">
                    <div
id="onlinealign">
                        <asp:LinkButton
ID="Name"
runat="server"
Text='<%#
DataBinder.Eval(Container.DataItem,"First_Name")
%>'></asp:LinkButton>
                    </div>
                </div>
            </ItemTemplate>
        </asp:DataList>
        <asp:DataList
runat="server"
ID="ChatDataList">
            <ItemTemplate>
                <div
id="chatlist">
                    <div
id="chatlistalign">
                        <asp:LinkButton
ID="Name"
runat="server"
Text='<%#
DataBinder.Eval(Container.DataItem,"First_Name")
%>'></asp:LinkButton>
                        sent on
                        <asp:Label
ID="Time"
runat="server"
Text='<%#
Eval("DateAndTime") %>'></asp:Label>
                         
 
 
Message:
                        <asp:Label
ID="Message"
runat="server"
Text='<%#
Eval("Message") %>'></asp:Label>
                    </div>
                </div>
            </ItemTemplate>
        </asp:DataList>
    </ContentTemplate>
</asp:UpdatePanel>
CodeBehind (.aspx.cs)
(C#)
protected void
HaZaTimer_Tick(object sender, EventArgs e)
{
   
DataTable data = new DataTable();
   
myDAL obj = new myDAL();
   
//Get the User ID of the logged-in user from the Session
   
string uid = Session["userID"] as string;       
   
data = obj.LOADCHAT(uid);
   
ChatDataList.DataSource = data;
   
ChatDataList.DataBind();
   
data = obj.LOADONLINE(uid);
   
OnlineDataList.DataSource = data;
   
OnlineDataList.DataBind();
}
DAL-Data Access
Layer (C#)
Load
Chat
public
DataTable LOADCHAT(string id)
{
    DataTable
d = new DataTable();
    SqlConnection
con = new SqlConnection(connString);
//connString should be defined
    con.Open();
    SqlCommand
cmd;
    try
    {
        cmd = new
SqlCommand("LoadMessages",
con); //Name of your Stored Procedure
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@email", SqlDbType.NVarChar,
50).Value = id.ToString();
        d.Load(cmd.ExecuteReader());
    }
    catch
(SqlException ex)
    {
        Console.WriteLine("SQL Error" + ex.Message.ToString());
    }
    finally
    {
        con.Close();
    }
    return
d;
}
Load
Online
public
DataTable LOADONLINE(string
id)
{
    DataTable
d = new DataTable();
    SqlConnection
con = new SqlConnection(connString);
//connString should be defined
    con.Open();
    SqlCommand
cmd;
    try
    {
        cmd = new
SqlCommand("LoadOnlineFriends",
con); //Name of your Stored Procedure
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@email", SqlDbType.NVarChar,
50).Value = id.ToString();
        d.Load(cmd.ExecuteReader());
    }
    catch
(SqlException ex)
    {
        Console.WriteLine("SQL Error" + ex.Message.ToString());
    }
    finally
    {
        con.Close();
    }
    return
d;
}
Stored Procedure
(SQL)
Load
Messages
create procedure
[dbo].[LoadMessages](@email nvarchar(50) )
as
     declare @id int
     select @id=UserID
     from User_info
     where Email_ID=@email
select 
User_Info.First_Name,Messages.MessageID,Messages.SenderID,Messages.Message,Messages.DateAndTime
from User_Info
inner join Messages on User_Info.UserID=Messages.SenderID
where Messages.ReceiverID=@id
order by
Messages.DateAndTime desc 
Load
Online Friends
create procedure
[dbo].[LoadOnlineFriends](@email nvarchar(50) )
as
begin
     declare @id int
     select @id=UserID
     from User_info
     where Email_ID=@email
     select User_Info.First_Name
     from User_Info join Friends on User_Info.UserID=Friends.FriendID join Online ON Friends.FriendID=Online.UserID
     where Friends.UserID=@id AND Online.isOnline=1
    --There is a table in the database names “Online” which keeps the
info. that which users are currently online
end
 01:05
01:05

No comments
Post a Comment