code listing

625
K:\SpringDale\About.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="About.aspx.cs" Inherits="About" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <div> <h1 style=" text-align:center;" class="defaultPageHeader">Project Created By Sudeep,Balmukund,Shadab,Shaheen For M.Tech Second Semester</h1> <table cellpadding="10px" cellspacing="3px" border="1" class="rowWithBorder"> <tr > <td> <img width="200px" height="140px" src="css//images//kungfupandap3.jpg" /> </td> <td> <p class="defaultPageHeader">Sudeep Mukherjee</p> <p class="defaultText">The brains and the brawn behind this endevour. Microsoft fanatic. ASP lover. Programmer Extraoridinaire.</p> </td> </tr> <tr>

Upload: sudeeplko

Post on 06-Sep-2014

176 views

Category:

Documents


1 download

DESCRIPTION

My MTech Project

TRANSCRIPT

Page 1: Code Listing

K:\SpringDale\About.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="About.aspx.cs" Inherits="About" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<div>

<h1 style=" text-align:center;" class="defaultPageHeader">Project Created By Sudeep,Balmukund,Shadab,Shaheen For M.Tech Second Semester</h1>

<table cellpadding="10px" cellspacing="3px" border="1" class="rowWithBorder">

<tr >

<td>

<img width="200px" height="140px" src="css//images//kungfupandap3.jpg" />

</td>

<td>

<p class="defaultPageHeader">Sudeep Mukherjee</p>

<p class="defaultText">The brains and the brawn behind this endevour. Microsoft fanatic. ASP lover. Programmer Extraoridinaire.</p>

</td>

</tr>

<tr>

<td>

<img width="200px" height="140px" src="css//images//Sh1.jpg" />

</td>

<td>

<p class="defaultPageHeader">Shadab Siddique</p>

<p class="defaultText">The public face of the adventure. Excellent people's skill. Garullous and jovial. All the time.</p>

</td>

</tr>

Page 2: Code Listing

<tr>

<td>

<img width="200px" height="140px" src="css/images/sh3.jpg" />

</td>

<td>

<p class="defaultPageHeader">Balmukund Maurya</p>

<p class="defaultText">The silent assasin. Quite,down to earth and unassuming but carries lot of weight when he speaks.</p>

</td>

</tr>

<tr>

<td>

<img width="200px" height="140px" src="css/images/sh4.png" />

</td>

<td>

<p class="defaultPageHeader">Shaheen Fatima</p>

<p class="defaultText">Pretty & charming but extremely intelligent. Killer combo.</p>

</td>

</tr>

</table>

</div>

</asp:Content>

Page 3: Code Listing

K:\SpringDale\About.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class About : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

Page 4: Code Listing

K:\SpringDale\Default.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ MasterType VirtualPath="~/MasterPage.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function myPageLoad() {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").button();

$("#opener").click(SearchClicked);

Page 5: Code Listing

return false;

}

function SearchClicked() {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Sorry! Functionality is not ready as of now. Please Check Back Some Time Later...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

Page 6: Code Listing

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/ManageUsersRoles.asmx"/>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Detailed Student Information" style="width:200px;height:300px;">

<p>This will show the record for the student you have selected</p>

</div>

<div style="width:100%;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:12px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:12px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

Page 7: Code Listing

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div id="masterCtrl" style="float:left;width:74%; margin-top:5px;">

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 8: Code Listing

K:\SpringDale\Default.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myPageLoad);", true);

}

}

Page 9: Code Listing

K:\SpringDale\GetAttendanceTable.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/GetAttendanceTable.cs" Class="GetAttendanceTable" %>

Page 10: Code Listing

K:\SpringDale\GetTeachers.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/GetTeachers.cs" Class="GetTeachers" %>

Page 11: Code Listing

K:\SpringDale\HolidayList.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/HolidayList.cs" Class="HolidayListSvc" %>

Page 12: Code Listing

K:\SpringDale\LibraryManagement.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/LibraryManagement.cs" Class="LibraryManagement" %>

Page 13: Code Listing

K:\SpringDale\Login.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<style type="text/css">

table

{

border:0 none 0;

border-bottom-style:none;

border-top-style:none;

border-right-style:none;

border-left-style:none;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<table width="100%" style="margin:0 auto;">

<tr>

<td style="width:17%">&nbsp;</td>

<td>

<asp:Image ID="Image1" runat="server" ImageUrl="~/css/animated-gif-2.gif" />

</td>

<td>

<asp:Login ID="Login1" runat="server" BackColor="#ebebeb" BorderColor="#E6E2D8"

BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Bold="True"

Font-Names="Verdana" Font-Size="Large" ForeColor="#333333" Height="367px"

Page 14: Code Listing

Width="499px">

<InstructionTextStyle Font-Italic="True" ForeColor="Black" />

<LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"

BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />

<TextBoxStyle Font-Size="0.8em" />

<TitleTextStyle BackColor="#7d7d7d" Font-Bold="True" Font-Size="0.9em"

ForeColor="White" />

</asp:Login>

</td>

<td style="width:10%">&nbsp;</td>

</tr>

</table>

</asp:Content>

Page 15: Code Listing

K:\SpringDale\Login.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Login : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

if (Request.IsAuthenticated && !string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))

{

// This is an unauthorized, authenticated request...

Response.Redirect("~/UnauthorizedAccess.aspx");

}

}

}

}

Page 16: Code Listing

K:\SpringDale\ManageUsersRoles.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/ManageUsersRoles.cs" Class="ManageUsersRoles" %>

Page 17: Code Listing

K:\SpringDale\MarksWeb.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/MarksWeb.cs" Class="MarksWeb" %>

Page 18: Code Listing

K:\SpringDale\MasterPage.master

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>M.Tech Project</title>

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<link type="text/css" href="css/custom-theme/jquery-ui-1.8.18.custom.css" rel="Stylesheet" />

<link type="text/css" href="css/MyTableStyle.css" rel="Stylesheet" />

<link href="css/MyMenu.css" rel="stylesheet" type="text/css" />

<link type="text/css" rel="Stylesheet" href="http://learnasp.in/css/GreyTableStyle.css" />

<asp:ContentPlaceHolder id="head" runat="server">

<script type="text/javascript">

</script>

</asp:ContentPlaceHolder>

</head>

<body>

<form id="form1" runat="server">

<div style="width:100%;">

<div style="margin:0 auto; width: 1045px; height:80px;">

<div style="width:59%;float:left;">

&nbsp;

Page 19: Code Listing

</div>

<div style="width:40%;float:left; text-align:right;">

<asp:LoginView ID="LoginView1" runat="server"

onviewchanged="LoginView1_ViewChanged">

<AnonymousTemplate>

Hi! Stranger Please Login...

</AnonymousTemplate>

<LoggedInTemplate>

</LoggedInTemplate>

<RoleGroups>

<asp:RoleGroup Roles="Students">

<ContentTemplate>

<asp:Image ID="studentAvatar" runat="server" Width="50px" Height="50px" />

<asp:Label ID="studentMsg" runat="server" Text=""></asp:Label>

<asp:LoginName ID="LoginName1" runat="server" />

</ContentTemplate>

</asp:RoleGroup>

<asp:RoleGroup Roles="Teachers">

<ContentTemplate>

<asp:Image ID="teacherAvatar" runat="server" Width="50px" Height="50px" />

<asp:Label ID="teacherMsg" runat="server" Text=""></asp:Label>

<asp:LoginName ID="LoginName3" runat="server" />

</ContentTemplate>

</asp:RoleGroup>

<asp:RoleGroup Roles="Administrators">

<ContentTemplate>

<asp:Image ID="adminAvatar" runat="server" Width="50px" Height="50px" ImageUrl="http://learnasp.in/css/admin.png" />

<asp:Label ID="adminMsg" runat="server" Text=""></asp:Label>

<asp:LoginName ID="LoginName2" runat="server" />

Page 20: Code Listing

</ContentTemplate>

</asp:RoleGroup>

</RoleGroups>

</asp:LoginView>

<br />

<div style="float:right; padding-right:10px;">

<asp:LoginStatus ID="LoginStatus1" runat="server"

Font-Bold="true" LogoutAction="Redirect" LogoutPageUrl="http://learnasp.in/Default.aspx" />

</div>

</div>

</div>

<div style="margin:0 auto; width: 1045px;">

<ul id="nav">

<li><a href="http://learnasp.in/Default.aspx">Home</a></li>

<li><a href="javascript:void(0);">Admin</a>

<ul>

<li><a href="javascript:void(0);">Manage Students</a>

<ul>

<li><a href="http://learnasp.in/Teacher/AttendanceCtrl.aspx">Attendance</a></li>

<li><a href="http://learnasp.in/Admin/CreateStudent.aspx">Addmissions</a></li>

<li><a href="http://learnasp.in/Reports/ShowReports.aspx">Reports</a></li>

<li><a href="http://learnasp.in/Admin/StudentMaster.aspx">Master</a></li>

<li><a href="http://learnasp.in/Admin/SRS.aspx">SRS</a></li>

<li><a href="#">Transport</a></li>

</ul>

Page 21: Code Listing

</li>

<li><a href="http://learnasp.in/Admin/ManageUsers.aspx">Manage Users</a></li>

<li><a href="http://learnasp.in/Admin/ManageRoles.aspx">Manage Roles</a></li>

<li><a href="http://learnasp.in/Admin/HolidayManager.aspx">Manage Holidays</a></li>

<li><a href="http://learnasp.in/Admin/SubjectManager.aspx">Manage Subjects</a></li>

<li><a href="javascript:void(0);">Manage TimeTables</a>

<ul>

<li><a href="http://learnasp.in/Admin/TimeTableMaster.aspx">Time Table Master</a></li>

<li><a href="http://learnasp.in/Admin/TimeTableCreator.aspx">Time Table Builder</a></li>

</ul>

</li>

<li><a href="javascript:void(0);">Manage Library</a>

<ul>

<li><a href="http://learnasp.in/Library/AddBooks.aspx">Add Books</a></li>

<li><a href="http://learnasp.in/Library/AddMember.aspx">Add Members</a></li>

</ul>

</li>

<li><a href="javascript:void(0);">Exams</a>

<ul>

<li><a href="http://learnasp.in/Admin/ExamSetting.aspx">Exam Settings</a></li>

</ul>

</li>

</ul>

</li>

<li>

<a href="javascript:void(0);">Library</a>

Page 22: Code Listing

<ul>

<li><a href="http://learnasp.in/Library/FindBooks.aspx">FindBooks</a></li>

<li><a href="http://learnasp.in/Library/RoughPage2.aspx">Issue</a></li>

<li><a href="http://learnasp.in/Library/BookReturn.aspx">Return</a></li>

</ul>

</li>

<li><a href="javascript:void(0);">Teachers</a>

<ul>

<li><a href="http://learnasp.in/Teacher/AttendanceCtrl.aspx">Attendance</a></li>

<li><a href="http://learnasp.in/Teacher/AttendanceEmailMaster.aspx">Send Emails</a></li>

<li><a href="http://learnasp.in/Teacher/EnterMarks.aspx">Marks</a></li>

<li><a href="#">Profile</a></li>

</ul>

</li>

<li><a href="javascript:void(0);">Students</a>

<ul>

<li><a href="http://learnasp.in/Student/StudentProfile.aspx">Profile</a></li>

</ul>

</li>

<li><a href="http://learnasp.in/About.aspx">About</a></li>

<li><a href="javascript:void(0);">Contact Us</a></li>

</ul>

</div>

</div>

<div style="width:100%; padding-top:20px; clear:both; height:auto;">

Page 23: Code Listing

<div id="centralGap" style="float:left;width:1%;">&nbsp;</div>

<div id="centralColumn"

style="margin-left:10px; padding-left:10px;float:left; width: 100%; margin-top:10px;" >

<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

</div>

</div>

</form>

</body>

</html>

Page 24: Code Listing

K:\SpringDale\MasterPage.master.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Text.RegularExpressions;

using System.Security.Authentication;

using System.Web.UI.WebControls;

public partial class MasterPage : System.Web.UI.MasterPage

{

private bool _addnew = false;

public StudentRecord.StudentRecDataTable dt = null;

private int _rownum = 0;

public event CommandEventHandler BrowseData;

public StudentRecord.StudentRecDataTable masterdata

{

get

{

return dt;

}

}

private string getMsg()

{

string ans = "";

DateTime dttime = DateTime.Now;

if (dttime.Hour >= 0 && dttime.Hour < 12)

ans = "Good Morning";

Page 25: Code Listing

else if (dttime.Hour >= 12 && dttime.Hour < 17)

ans = "Good Afternoon";

else if (dttime.Hour >= 17 && dttime.Hour < 24)

ans = "Good Evening";

return ans;

}

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

Image imgAvatar = ( Image)LoginView1.FindControl("studentAvatar");

LoginName lname = (LoginName)LoginView1.FindControl("LoginName1");

if (lname != null)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(lname.Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

imgAvatar.ImageUrl = "ShowImage.ashx?enroll=" + num.ToString();

Label lbl = (Label)LoginView1.FindControl("studentMsg");

lbl.Text = getMsg() + " Student ";

}

else

{

lname= (LoginName)LoginView1.FindControl("LoginName2");

if (lname != null)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(lname.Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

Page 26: Code Listing

// imgAvatar.ImageUrl = "ShowImage.ashx?enroll=" + num.ToString();

Label lbl = (Label)LoginView1.FindControl("adminMsg");

lbl.Text = getMsg() + " Admin ";

}

else {

lname = (LoginName)LoginView1.FindControl("LoginName3");

if (lname != null)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(lname.Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

// imgAvatar.ImageUrl = "ShowImage.ashx?enroll=" + num.ToString();

Label lbl = (Label)LoginView1.FindControl("teacherMsg");

lbl.Text = getMsg() + " Teacher ";

}

}

}

}

}

protected void LoginView1_ViewChanged(object sender, EventArgs e)

{

}

}

Page 27: Code Listing

K:\SpringDale\ShowImage.ashx

<%@ WebHandler Language="VB" Class="ShowImage" Debug="true" %>

Imports System

Imports System.Web

Imports System.Drawing

Imports System.Configuration

Imports System.IO

Imports System.Data

Imports System.Data.SqlClient

Public Class ShowImage : Implements IHttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

Dim enroll As Decimal

If Not context.Request.QueryString("enroll") Is Nothing Then

enroll = Decimal.Parse(context.Request.QueryString("enroll"))

Else

Throw New ArgumentException("No parameter specified")

'Return

End If

context.Response.ContentType = "image/jpeg"

Dim strm As Stream = ShowEmpImage(enroll)

'Dim bmp As New Bitmap(strm)

'bmp.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)

Dim buffer As Byte() = New Byte(4095) {}

Page 28: Code Listing

Dim byteSeq As Integer = strm.Read(buffer, 0, 4096)

context.Response.Buffer = True

context.Response.Charset = ""

context.Response.ContentType = "image/jpeg"

Do While byteSeq > 0

context.Response.BinaryWrite(buffer)

'context.Response.OutputStream.Write(buffer, 0, byteSeq)

byteSeq = strm.Read(buffer, 0, 4096)

Loop

End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable

Get

Return False

End Get

End Property

Public Function ShowEmpImage(ByVal enroll As Decimal) As Stream

Dim con As SqlConnection

Dim str As String = ConfigurationManager.ConnectionStrings("springdaleConnectionString2").ConnectionString

con = New SqlConnection(str) '"Data Source=.\SQLExpress;Integrated Security=true; AttachDbFilename=|DataDirectory|\Database.mdf;User Instance=true;")

Dim sql As String = "SELECT StudentImage FROM StudentRec WHERE EnrollNo = @ID"

Dim cmd As SqlCommand = New SqlCommand(sql, con)

cmd.CommandType = CommandType.Text

cmd.Parameters.AddWithValue("@ID", enroll)

con.Open()

Dim img As Object = cmd.ExecuteScalar()

Try

Return New MemoryStream(CType(img, Byte()))

Page 29: Code Listing

Catch

Return Nothing

Finally

con.Close()

End Try

End Function

End Class

Page 30: Code Listing

K:\SpringDale\UnauthorizedAccess.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="UnauthorizedAccess.aspx.cs" Inherits="UnauthorizedAccess" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<table width="100%">

<tr>

<td style="width:15%"><asp:Image runat="server" ImageUrl="~/css/warning_1.gif" /></td>

<td style="width:65%"> <h1>Unauthorized Access</h1>

<h3>Sorry! you are not authorized to visit this page. Please be kind enough to navigate to an authorised section.</h3>

<h2>Cheers</h2></td>

<td style="width:10%"></td>

</tr>

</table>

</asp:Content>

Page 31: Code Listing

K:\SpringDale\UnauthorizedAccess.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class UnauthorizedAccess : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

Page 32: Code Listing

K:\SpringDale\web.config

<?xml version="1.0"?>

<!--

For more information on how to configure your ASP.NET application, please visit

http://go.microsoft.com/fwlink/?LinkId=169433

-->

<configuration>

<appSettings>

<add key="ChartImageHandler" value="storage=memory;timeout=20;"/>

</appSettings>

<connectionStrings>

<add name="springdaleConnectionString2" connectionString="Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep" providerName="System.Data.SqlClient"/>

<add name="springdaleConnectionString1" connectionString="Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep;Current Language=British" providerName="System.Data.SqlClient"/>

</connectionStrings>

<location path="UnauthorizedAccess.aspx">

<system.web>

<authorization>

<allow users="*"/>

</authorization>

</system.web>

</location>

<location path="Login.aspx">

<system.web>

<authorization>

<allow users="*"/>

</authorization>

</system.web>

Page 33: Code Listing

</location>

<location path="Default.aspx">

<system.web>

<authorization>

<deny users="?"/>

<allow users="*"/>

</authorization>

</system.web>

</location>

<system.web>

<authorization>

<deny users="?"/>

<allow roles="Administrators"/>

</authorization>

<authentication mode="Forms">

<forms loginUrl="login.aspx" cookieless="AutoDetect" defaultUrl="Default.aspx"/>

</authentication>

<customErrors mode="Off"/>

<httpHandlers>

<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>

<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>

</httpHandlers>

<pages enableViewStateMac="false" enableEventValidation="false" clientIDMode="AutoID" controlRenderingCompatibilityVersion="4.0" validateRequest="false" viewStateEncryptionMode="Never">

<controls>

<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

</controls>

Page 34: Code Listing

</pages>

<compilation debug="true" targetFramework="4.0">

<assemblies>

<add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

</assemblies>

<buildProviders>

<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

</buildProviders>

</compilation>

<membership defaultProvider="SecurityTutorialsSqlMembershipProvider">

<providers>

<!--Add a customized SqlMembershipProvider -->

<add name="SecurityTutorialsSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="springdaleConnectionString1" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="SpringDale" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>

Page 35: Code Listing

</providers>

</membership>

<roleManager enabled="true" defaultProvider="SecurityTutorialsSqlRoleProvider" cacheRolesInCookie="true" createPersistentCookie="false" cookieProtection="All">

<providers>

<add name="SecurityTutorialsSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" applicationName="SecurityTutorials" connectionStringName="springdaleConnectionString1"/>

</providers>

</roleManager>

</system.web>

<system.webServer>

<validation validateIntegratedModeConfiguration="false"/>

<handlers>

<remove name="ChartImageHandler"/>

<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

</handlers>

</system.webServer>

</configuration>

Page 36: Code Listing

K:\SpringDale\Admin\CreateStudent.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="CreateStudent.aspx.cs" Inherits="Admin_CreateStudent" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<%@ MasterType VirtualPath="~/MasterPage.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function myPageLoad() {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").button();

Page 37: Code Listing

$("#opener").click(SearchClicked);

return false;

}

function SearchClicked() {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

</script>

<style type="text/css">

#myform td

{

padding-bottom:10px;

font-size:medium;

}

.style2

Page 38: Code Listing

{

width: 12%;

}

.style3

{

width: 10%;

}

table

{

border:0 none 0;

border-bottom-style:none;

border-top-style:none;

border-right-style:none;

border-left-style:none;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/ManageUsersRoles.asmx"/>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

</Services>

</asp:ScriptManager>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Detailed Student Information" style="width:200px;height:300px;">

<p>This will show the record for the student you have selected</p>

</div>

Page 39: Code Listing

<div style="margin-top:20px; width:100%">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:12px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:12px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="font-size:small;width:74%; margin:0px auto; float:left;height:auto;">

<table>

<tr>

<td>

<table border="0" style="width:100%;" id="myform" runat="server">

<tr>

<td>

<asp:Image ImageUrl="" ID="studentImg" runat="server" width="70px" Height="70px" />

</td>

Page 40: Code Listing

<td></td>

<td></td>

<td></td>

</tr>

<tr style="display:none;">

<td>Enroll No</td>

<td><asp:TextBox ID="txtEnroll" runat="server" width="189px"></asp:TextBox></td>

<td>Roll No</td>

<td><asp:TextBox ID="txtRoll" runat="server" Height="22px" Width="188px"></asp:TextBox></td>

</tr>

<tr>

<td>First Name</td>

<td><asp:TextBox ID="txtFirstName" runat="server" Width="298px"></asp:TextBox></td>

<td>Last Name</td>

<td><asp:TextBox ID="txtLastName" runat="server" width="297px"></asp:TextBox></td>

</tr>

<tr>

<td>Class</td>

<td><asp:TextBox ID="txtClass" runat="server" Width="94px"></asp:TextBox></td>

<td>Section</td>

<td><asp:TextBox ID="txtSection" runat="server" Width="59px"></asp:TextBox></td>

</tr>

<tr>

<td>Fathers Name</td>

<td><asp:TextBox ID="txtFather" runat="server" Width="298px"></asp:TextBox></td>

<td>Mothers Name</td>

<td><asp:TextBox ID="txtMother" runat="server" Width="298px"></asp:TextBox></td>

Page 41: Code Listing

</tr>

<tr>

<td>Address</td>

<td><asp:TextBox ID="txtAddr" runat="server" Width="298px"></asp:TextBox></td>

<td>City</td>

<td><asp:TextBox ID="txtCity" runat="server" Width="198px"></asp:TextBox></td>

</tr>

<tr>

<td>State</td>

<td><asp:TextBox ID="txtState" runat="server" Width="150px"></asp:TextBox></td>

<td>Home Phone</td>

<td><asp:TextBox ID="txtHomePh" runat="server" Width="198px"></asp:TextBox></td>

</tr>

<tr>

<td>Father's Designation</td>

<td><asp:TextBox ID="txtDesig" runat="server" Width="90px"></asp:TextBox></td>

<td>Company Name</td>

<td><asp:TextBox ID="txtCompany" runat="server" Width="90px"></asp:TextBox></td>

</tr>

<tr>

<td>Company Address</td>

<td><asp:TextBox ID="txtCAddress" runat="server" Width="190px"></asp:TextBox></td>

<td>Company Phone</td>

<td><asp:TextBox ID="txtCompanyPhone" runat="server" Width="90px"></asp:TextBox></td>

</tr>

<tr>

<td>Last College</td>

Page 42: Code Listing

<td><asp:TextBox ID="txtLast" runat="server" Width="140px"></asp:TextBox></td>

<td>Last Percentage</td>

<td><asp:TextBox ID="txtPercentage" runat="server" Width="90px"></asp:TextBox></td>

</tr>

<tr>

<td>Email </td>

<td><asp:TextBox ID="txtEmail" runat="server" Width="140px"></asp:TextBox></td>

<td>Image </td>

<td>

<asp:FileUpload ID="studentImage" runat="server" />

</td>

</tr>

</table>

</td></tr>

<tr>

<td >

<table><tr>

<td style="width:12%;">

<asp:Button ID="btnClear" runat="server" Text="Clear" AccessKey="P"

width="61px" Visible="True" onclick="btnClear_Click" />

</td>

<td style="width:12%;">

<asp:Button ID="btnAddNew" runat="server" Text="New" AccessKey="N"

onclick="btnAddNew_Click" width="61px" />

</td>

<td style="width:12%;">

<asp:Button ID="btnUpdate" runat="server" Text="Update" AccessKey="U"

Page 43: Code Listing

onclick="btnUpdate_Click" />

</td>

<td style="width:12%;">

<asp:Button ID="btnDelete" runat="server" Text="Delete" AccessKey="D"

width="61px" />

</td>

<td style="width:1%;">

<asp:Button ID="btnFirst" runat="server" Text="First" AccessKey="F"

width="1px" onclick="btnFirst_Click" Visible="False" />

</td>

<td style="width:1%;">

<asp:Button ID="btnPrev" runat="server" Text="Prev" AccessKey="P"

width="1px" onclick="btnPrev_Click" Visible="False" />

</td>

<td style="width:1%;">

<asp:Button ID="btnNext" runat="server" Text="Next" AccessKey="N"

width="1px" onclick="btnNext_Click" Visible="False" />

</td>

<td class="style3">

<asp:Button ID="btnLast" runat="server" Text="Last" AccessKey="L"

width="0px" Visible="False" />

</td>

<td style="width:18%;">

<asp:Label ID="Label1" runat="server" Text="" Width="110px"></asp:Label>

</td>

</tr></table>

</td>

<td>

Page 44: Code Listing

</td>

</tr>

</table>

</div>

</div>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>

</asp:Content>

Page 45: Code Listing

K:\SpringDale\Admin\CreateStudent.aspx.cs

using System;

using System.Collections.Generic;

using Microsoft.VisualBasic;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using StudentRecordTableAdapters;

using ClassRecTableAdapters;

public partial class Admin_CreateStudent : System.Web.UI.Page

{

private bool _addnew = false;

StudentRecord.StudentRecDataTable dt = null;

private int _rownum = 0;

byte[] imageBinary;

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myPageLoad);", true);

}

protected void putData( int rownum)

{

try

{

if (!Convert.IsDBNull(dt[rownum].ClassName))

Page 46: Code Listing

txtClass.Text = dt[rownum].ClassName;

else

txtClass.Text = "";

if (!Convert.IsDBNull(dt[rownum].FirstName))

txtFirstName.Text = dt[rownum].FirstName;

else

txtFirstName.Text = "";

if (!Convert.IsDBNull(dt[rownum].LastName))

txtLastName.Text = dt[rownum].LastName;

else

txtLastName.Text = "";

if (!Convert.IsDBNull(dt[rownum].ClassSection))

txtSection.Text = dt[rownum].ClassSection;

else

txtSection.Text = "";

txtEnroll.Text = dt[rownum].EnrollNo.ToString();

//txtSection.Text = dt[rownum].ClassSection.ToString();

txtRoll.Text = dt[rownum].RollNo.ToString();

}

catch (Exception ex) {

//Label1.Text = ex.Message;

}

}

protected void btnAddNew_Click(object sender, EventArgs e)

{

Page 47: Code Listing

StudentRecBLL obj = new StudentRecBLL();

ClassRecBLL obj1 = new ClassRecBLL();

int? classID=(int)obj1.GetClassID(txtClass.Text.ToUpper(),txtSection.Text.ToUpper());

StudentRecordTableAdapters.StudentRecAdapter _studentAdapter = new StudentRecAdapter();

decimal? ans = 1;

decimal? _enroll = _studentAdapter.GetMaxEnrollNo();

if (_enroll == null)

{

_enroll = 1;

}

else

{

_enroll += 1;

}

decimal? _roll = _studentAdapter.GetMaxRollNo();

if (_roll == null)

{

_roll = 1;

}

else

{

_roll+= 1;

}

ClassRecBLL objClass = new ClassRecBLL();

ans = objClass.GetClassID(txtClass.Text , txtSection.Text );

if (ans == null)

{

Page 48: Code Listing

ans = objClass.GetMaxClassID() + 1;

objClass.AddNewClass(txtClass.Text , txtSection.Text , (decimal)ans);

}

//bool rowsaffected = obj.AddStudent(txtFirstName.Text, txtLastName.Text, txtClass.Text.ToUpper(), txtSection.Text.ToUpper(), txtEmail.Text);

//imageBinary = new byte[imageLength];

System.IO.Stream inputStream = studentImage.PostedFile.InputStream;

int imageLength = studentImage.PostedFile.ContentLength;

imageBinary = new byte[imageLength];

int inputRead = inputStream.Read(imageBinary, 0, imageLength);

bool rowsaffected = obj.AddStudent(txtFirstName.Text, txtLastName.Text,

txtClass.Text.ToUpper(),txtSection.Text.ToUpper(), txtEmail.Text,txtFather.Text,

txtMother.Text,txtAddr.Text,txtCity.Text,txtState.Text,txtHomePh.Text,

txtCompany.Text,txtCAddress.Text,txtCompanyPhone.Text,txtDesig.Text,txtLast.Text,

decimal.Parse(txtPercentage.Text),imageBinary);

if (rowsaffected)

{

Label1.Text = "Student Addmission Success";

StudentRecord.StudentRecDataTable dt = obj.GetLatestStudent();

studentImg.ImageUrl = "http://learnasp.in/ShowImage.ashx?enroll=" + dt[0].EnrollNo;

}

else

{

Label1.Text = "Something has gone wrong";

}

obj.Dispose();

obj1.Dispose();

Page 49: Code Listing

}

protected void btnUpdate_Click(object sender, EventArgs e)

{

/*Label1.Text = "Addnew hona chahiye " + _addnew.ToString();

if (_addnew) {

Label1.Text = "Addnew mai baap";

}

else { }*/

}

protected void btnFirst_Click(object sender, EventArgs e)

{

_rownum=0;

if (dt != null)

putData(_rownum);

}

protected void btnPrev_Click(object sender, EventArgs e)

{

if (dt != null)

{

if (_rownum > 0)

_rownum--;

putData(_rownum);

}

}

protected void btnNext_Click(object sender, EventArgs e)

{

if (dt != null)

{

if (_rownum < dt.Rows.Count-1)

_rownum++;

putData(_rownum);

Page 50: Code Listing

}

}

private void Master_BrowseData(object sender, CommandEventArgs e)

{

// Rebind data to ProductsGrid

/*StudentRecord.StudentRecDataTable dt = Master.masterdata;// (StudentRecord.StudentRecDataTable)e.CommandArgument;

Label1.Text = dt.Rows.Count.ToString();

if (dt != null && dt.Rows.Count > 0)

{

GridView1.DataSource = dt;

GridView1.DataBind();

GridView1.Visible = true;

//myform.Visible = false;

}*/

}

protected void btnClear_Click(object sender, EventArgs e)

{

txtClass.Text = "";

txtEnroll.Text = "";

txtFirstName.Text = "";

txtLastName.Text = "";

txtSection.Text = "";

txtRoll.Text = "";

studentImg.ImageUrl = "";

txtPercentage.Text = "";

txtMother.Text = "";

txtFather.Text = "";

Page 51: Code Listing

txtEmail.Text = "";

txtLast.Text = "";

txtHomePh.Text = "";

txtCAddress.Text = "";

txtCompany.Text = "";

txtCompanyPhone.Text = "";

}

protected void studentImage_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)

{

//imageData = imageBinary;

//imgSave.Enabled = true;

}

}

Page 52: Code Listing

K:\SpringDale\Admin\ExamSetting.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ExamSetting.aspx.cs" Inherits="Admin_ExamSetting" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

function addload() {

$("#opener").button();

// $("#btnLoadAttendance").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

Page 53: Code Listing

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

}

</script>

</asp:Content>

Page 54: Code Listing

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

<p>

</p>

<p>

</p>

</p>

</div>

<div style="width:98%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

Page 55: Code Listing

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search .......</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div style="margin:auto 0;padding:0;width:100%;">

<div id="divClasses" style="width:100%; padding-top:5px;">

<div style="width:60%;margin:0 auto;">

<asp:Table ID="Table2" runat="server">

<asp:TableHeaderRow>

<asp:TableHeaderCell>Classes</asp:TableHeaderCell>

<asp:TableHeaderCell>No. Of Terms</asp:TableHeaderCell>

<asp:TableHeaderCell></asp:TableHeaderCell>

<asp:TableHeaderCell></asp:TableHeaderCell>

</asp:TableHeaderRow>

<asp:TableRow>

<asp:TableCell>

<asp:ListBox ID="lstClasses" runat="server" DataSourceID="SqlDataSource1"

DataTextField="ClassName" DataValueField="ClassName" Width="70px"

SelectionMode="Multiple"></asp:ListBox>

</asp:TableCell>

<asp:TableCell>

Page 56: Code Listing

<asp:TextBox ID="txtNumTerms" runat="server" Width="100px"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:Button ID="btnShowDetails" runat="server" Text=" Next > >"

onclick="btnShowDetails_Click" />

</asp:TableCell>

<asp:TableCell>

<asp:Button ID="btnSaveDetails" runat="server" Text="Save Details"

onclick="btnSaveDetails_Click" />

</asp:TableCell>

</asp:TableRow>

</asp:Table>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"

ConnectionString="<%$ ConnectionStrings:springdaleConnectionString2 %>"

SelectCommand="SELECT DISTINCT ClassName FROM ClassRec"></asp:SqlDataSource>

<br />

</div>

</div>

<div id="termdetails" style="width:100%; padding-top:5px;">

<asp:Panel ID="detailsHolder" runat="server">

<asp:Table ID="Table1" runat="server" Width="100%">

<asp:TableHeaderRow>

<asp:TableHeaderCell HorizontalAlign="Center">

Term Name

</asp:TableHeaderCell>

<asp:TableHeaderCell HorizontalAlign="Center">

Maximum Marks

Page 57: Code Listing

</asp:TableHeaderCell>

<asp:TableHeaderCell HorizontalAlign="Center">

Passing %

</asp:TableHeaderCell>

<asp:TableHeaderCell HorizontalAlign="Center">

Weight In Grand Total(%)

</asp:TableHeaderCell>

</asp:TableHeaderRow>

<asp:TableRow HorizontalAlign="Center" ID="Row1" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName1" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks1" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass1" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight1" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row2" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName2" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks2" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass2" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

Page 58: Code Listing

<asp:TextBox ID="txtWeight2" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row3" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName3" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks3" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass3" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight3" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row4" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName4" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks4" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass4" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight4" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row5" Visible="false">

<asp:TableCell>

Page 59: Code Listing

<asp:TextBox ID="txtTermName5" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks5" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass5" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight5" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row6" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName6" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks6" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass6" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight6" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row7" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName7" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks7" runat="server"></asp:TextBox>

</asp:TableCell>

Page 60: Code Listing

<asp:TableCell>

<asp:TextBox ID="txtPass7" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight7" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row8" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName8" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks8" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass8" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight8" runat="server"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow HorizontalAlign="Center" ID="Row9" Visible="false">

<asp:TableCell>

<asp:TextBox ID="txtTermName9" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtMaxMarks9" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtPass9" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtWeight9" runat="server"></asp:TextBox>

Page 61: Code Listing

</asp:TableCell>

</asp:TableRow>

</asp:Table>

</asp:Panel>

</div>

</div>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 62: Code Listing

K:\SpringDale\Admin\ExamSetting.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Admin_ExamSetting : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

}

protected void btnShowDetails_Click(object sender, EventArgs e)

{

int num = int.Parse(txtNumTerms.Text);

Table tb = new Table();

for (int i = 1; i <= num; i++)

{

Table1.Rows[i].Visible = true;

TextBox txtTermName =(TextBox) Table1.Rows[i].FindControl("txtTermName" + i.ToString());

if(txtTermName!=null)

txtTermName.Text = "Term " + i.ToString();

}

}

protected void btnSaveDetails_Click(object sender, EventArgs e)

{

Page 63: Code Listing

int num = int.Parse(txtNumTerms.Text);

Table tb = new Table();

ExamSettingBLL obj = new ExamSettingBLL();

//classes = classes.Substring(1, classes.Length-1);

for (int j = 0; j < lstClasses.Items.Count; j++)

{

if (lstClasses.Items[j].Selected)

{

decimal tid = obj.ClassExists(lstClasses.Items[j].Text);

if ( tid>= 0)

{

obj.RemoveData(tid);

}

for (int i = 1; i <= num; i++)

{

TextBox txtTermName = (TextBox)Table1.Rows[i].FindControl("txtTermName" + i.ToString());

TextBox txtMaxMarks = (TextBox)Table1.Rows[i].FindControl("txtMaxMarks" + i.ToString());

TextBox txtPass = (TextBox)Table1.Rows[i].FindControl("txtPass" + i.ToString());

TextBox txtWeight = (TextBox)Table1.Rows[i].FindControl("txtWeight" + i.ToString());

obj.InsertData(txtTermName.Text, decimal.Parse(txtMaxMarks.Text), decimal.Parse(txtPass.Text),

decimal.Parse(txtWeight.Text), lstClasses.Items[j].Text);

}

}

}

}

Page 64: Code Listing

}

Page 65: Code Listing

K:\SpringDale\Admin\HolidayManager.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="HolidayManager.aspx.cs" Inherits="Admin_HolidayManager" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<style type="text/css">

table, .table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption, .caption {

text-align: left;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot, .theader {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

Page 66: Code Listing

}

thead th, tfoot th, .theader th {

padding:5px;

text-align:left

}

table a {

color: #333333;

text-decoration:none;

}

table a:hover {

}

tr.odd, .odd {

background: #f1f1f1;

text-align:left;

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

Page 67: Code Listing

.callout {

padding: 5px;

border: 1px solid #7992B0;

background-color: #8AA9B7;

border-radius: 8px;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

</style>

<script type="text/javascript" language="javascript">

var currentrow;

var pagecontent = 10;

var currentpage = 1;

function jsonFeedRecieved(result) {

var i = 0;

//myObject = JSON.parse(result);

myObject = jQuery.parseJSON(result);

var txt = "<table id='holidaytable' style='margin:0 auto;width:100%;border:none;'>";

txt += "<thead><tr><th><input id='headerchk' onclick='headerChecked();' type='checkbox' /></th><th>SNo</th>";

txt += "<th>Day</th><th>Month</th><th>Year</th><th>Description</th></tr></thead><tbody>"; //<th>Publisher</th><th>Avail</th>

for (i = 0; i < myObject.length; i++) {

if (i < 9) {

Page 68: Code Listing

txt += "<tr name='" + (i+1).toString() + "' id='holidayrow" + (i + 1).toString() + "' class='hovereffect'><td><input id='chkRow" + (i + 1).toString() + "' value='" + myObject[i].Sno.toString();

txt += "' type='checkbox' onclick='rowChecked(" + myObject[i].Sno + ");'/></td>";

txt += "<td>" + myObject[i].Sno + "</td>";

txt += "<td>" + myObject[i].dt_dd + "</td>";

txt += "<td>" + myObject[i].dt_mm + "</td>";

txt += "<td>" + myObject[i].dt_yyyy + "</td>";

txt += "<td>" + myObject[i].dt_desc + "</td></tr>";

}

else {

txt += "<tr name='" + (i + 1).toString() + "' id='holidayrow" + (i + 1).toString() + "' style='display:none;' class='hovereffect'><td><input id='chkRow" + (i + 1).toString() + "' value='" + myObject[i].Sno.toString();

txt += "' type='checkbox' onclick='rowChecked(" + myObject[i].Sno + ");'/></td>";

txt += "<td>" + myObject[i].Sno + "</td>";

txt += "<td>" + myObject[i].dt_dd + "</td>";

txt += "<td>" + myObject[i].dt_mm + "</td>";

txt += "<td>" + myObject[i].dt_yyyy + "</td>";

txt += "<td>" + myObject[i].dt_desc + "</td></tr>";

}

}

txt += "</tbody>";

if (myObject.length > pagecontent) {

var pages = myObject.length / pagecontent;

var rem = myObject.length % pagecontent;

if (rem > 0)

pages += 1;

txt += "<tfoot><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>";

Page 69: Code Listing

for (i = 1; i <= pages; i++) {

txt += "<a href='javascript:void(0)' style ='padding:5px;' onclick='showpage(" + i.toString() + ");'>" + i.toString() + "</a>";

}

}

txt += "</td></tr></tfoot></table>";

$("#holidaylist").html(txt);

}

function showpage(pagenum) {

$('#holidaytable tbody tr:visible').hide();

var start = (pagenum - 1) * pagecontent;

var j = 0;

currentpage = pagenum;

$('#holidaytable tr').each(function () {

j = j + 1;

if (j >= (start+1) && j <= (start + pagecontent)) {

$(this).show();

}

});

}

function getJsonString() {

$.fx.speeds._default = 1000;

// $("#ajaxloader").show();

//$("#showjson").hide();

$("#btnDelete").button();

Page 70: Code Listing

//$("#btnDelete").click("deleteHolidays");

HolidayListSvc.GetAllHolidays(jsonFeedRecieved);

}

function deleteHolidays() {

var i = 0;

var chkbox="";

$('#holidaytable tr').each(function () {

i = i + 1;

chkbox = '#chkRow' + i;

if ($(chkbox).is(':checked')) {

var rowid = "#holidayrow" + i.toString();

//alert();

HolidayListSvc.DeleteSnoHolidays($(chkbox).val());

$(rowid).remove();

}

});

HolidayListSvc.GetAllHolidays(jsonFeedRecieved);

return false;

}

function rowChecked(index) { }

function headerChecked() {

var i = 0;

$('#holidaytable tr:visible').each(function () {

i = parseInt($(this).attr('name'));

if (isNaN(i) == false) {

chkbox = '#chkRow' + i;

Page 71: Code Listing

$(chkbox).attr('checked', $('#headerchk').is(':checked'));

}

});

return false;

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="HolidayPanel" runat="server">

<ContentTemplate>

<table width="100%">

<tr>

<td>

<asp:Panel ID="Panel1" runat="server" Width="710px" >

<asp:Table ID="Table1" runat="server" Width="100%" CssClass="table">

<asp:TableHeaderRow HorizontalAlign="Center">

<asp:TableHeaderCell Width="40%">Choose Date</asp:TableHeaderCell>

<asp:TableHeaderCell Width="20%">Date</asp:TableHeaderCell>

<asp:TableHeaderCell Width="37%">Description</asp:TableHeaderCell>

</asp:TableHeaderRow>

<asp:TableRow HorizontalAlign="Center">

<asp:TableCell HorizontalAlign="Center">

Page 72: Code Listing

<asp:Calendar ID="calDate" runat="server" OnSelectionChanged="CalDateChange"></asp:Calendar>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtDate" runat="server" Font-Size="Medium"></asp:TextBox>

</asp:TableCell>

<asp:TableCell>

<asp:TextBox ID="txtDesc" runat="server" Font-Size="Medium" ></asp:TextBox>

</asp:TableCell></asp:TableRow><asp:TableRow HorizontalAlign="Center">

<asp:TableCell HorizontalAlign="Center">

<asp:DropDownList ID="DaysList" runat="server">

<asp:ListItem Value="1">Monday</asp:ListItem>

<asp:ListItem Value="2">Tuesday</asp:ListItem>

<asp:ListItem Value="3">Wednesday</asp:ListItem>

<asp:ListItem Value="4">Thursday</asp:ListItem>

<asp:ListItem Value="5">Friday</asp:ListItem>

<asp:ListItem Value="6">Saturday</asp:ListItem>

<asp:ListItem Value="0">Sunday</asp:ListItem>

</asp:DropDownList>

</asp:TableCell><asp:TableCell>

<asp:Button ID="btnSundays" runat="server" CssClass="ui-button-text-icon ui-button ui-widget

ui-state-default ui-corner-all ui-button-text-only" Text="Day Holiday For Year" OnClick="btnSundayClicked" OnClientClick="javascript:getJsonString();" />

</asp:TableCell><asp:TableCell>

<asp:Button ID="btnUpdate" runat="server" CssClass="ui-button-text-icon ui-button ui-widget

Page 73: Code Listing

ui-state-default ui-corner-all ui-button-text-only" Text="Add Holiday" OnClick="AddHoliday" OnClientClick="javascript:getJsonString();" />

</asp:TableCell></asp:TableRow></asp:Table></asp:Panel></td><td>

<div style="width:710px;" id="holidaylist">

</div>

<div>

<input id='btnDelete' type='button' value='Delete' onclick="deleteHolidays();" />

</div>

</td>

</tr>

</table>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 74: Code Listing

K:\SpringDale\Admin\HolidayManager.aspx.cs

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Admin_HolidayManager : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!ClientScript.IsStartupScriptRegistered("loadevent"))

{

ClientScript.RegisterStartupScript(this.GetType(), "loadevent", "Sys.Application.add_load(getJsonString)",true);

}

}

protected void AddHoliday(object sender, EventArgs e)

{

HolidayListSvc svc = new HolidayListSvc();

if (calDate.SelectedDate.Year < 2000)

calDate.SelectedDate = DateTime.Now.Date;

if (txtDesc.Text == "" || txtDesc.Text.Length < 1)

txtDesc.Text = "Undefined";

if (svc.InsertHoliday(calDate.SelectedDate.Day, calDate.SelectedDate.Month, calDate.SelectedDate.Year, txtDesc.Text))

{

Page 75: Code Listing

}

}

protected void CalDateChange(object sender, EventArgs e)

{

txtDate.Text = calDate.SelectedDate.ToShortDateString();

}

protected void btnSundayClicked(object sender, EventArgs e)

{

List<DateTime> Dates;

if(calDate.SelectedDate.Year <2000)

calDate.SelectedDate = DateTime.Now.Date;

Dates = GetAllDays(calDate.SelectedDate.Year, int.Parse(DaysList.SelectedValue));

HolidayListSvc svc = new HolidayListSvc();

foreach (DateTime dt in Dates)

{

svc.InsertHoliday(dt.Day, dt.Month, dt.Year, DaysList.SelectedItem.Text);

}

}

List<DateTime> GetAllDays(int year,int weekday)

Page 76: Code Listing

{

List<DateTime> Dates = new List<DateTime>();

DateTime Date = new DateTime(year, 1, 1);

bool firstsundayfound = false;

txtDesc.Text = year.ToString();

while (Date.Year == year)

{

if ((Convert.ToInt16(Date.DayOfWeek) == weekday))

{

Dates.Add(Date);

firstsundayfound = true;

}

if (firstsundayfound)

{

Date = Date.AddDays(7);

continue;

}

Date = Date.AddDays(1);

}

return Dates;

}

}

Page 77: Code Listing

K:\SpringDale\Admin\ManageRoles.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ManageRoles.aspx.cs" Inherits="Admin_ManageRoles" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function myPageLoad() {

findRoles();

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").button();

$("#opener").click(SearchClicked);

//$("#btnAddRole").button();

Page 78: Code Listing

$("#btnAddRole").click(addRole);

//$("#btnRemoveRole").button();

$("#btnRemoveRole").click(deleteRole);

return false;

}

function SearchClicked()

{

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

Page 79: Code Listing

function findRoles() {

$("#ajaxloader").show();

ManageUsersRoles.GetAllRoles(gotAllRoles);

return false;

}

function gotAllRoles(result) {

var i = 0;

$("#ajaxloader").hide();

for (i = 0; i < result.length; i++) {

$('#AllRoles').append("<option value='" + result[i] +"'>" + result[i] + "</option>");

}

return false;

}

function deleteRole() {

var str = "";

$("#AllRoles option:selected").each(function () {

str = $(this).text();

ManageUsersRoles.removeRole(str, roleDeleted,roleDeleteError);

});

return false;

}

function addRole() {

$("#ajaxloader").show();

var obj = document.getElementById('txtRoleName');

ManageUsersRoles.addRole(obj.value, roleUpdated);

return false;

}

function roleDeleteError(result) {

$('#msgText').html("<b>Unable To Update Role It Might Already Exist Or There May Be Users Attached</b>");

Page 80: Code Listing

return false;

}

function roleDeleted(result) {

$("#ajaxloader").hide();

if (result == true) {

$('#msgText').html("<b>Role Deleted</b>");

$("#AllRoles option:selected").remove();

}

else {

$('#msgText').html("<b>Unable To Update Role It Might Already Exist </b>");

}

return false;

}

function roleUpdated(result) {

$("#ajaxloader").hide();

if (result == true) {

$('#msgText').html("<b>Role Added</b>");

var obj = document.getElementById('txtRoleName');

$('#AllRoles').append("<option value='" + obj.value + "'>" + obj.value + "</option>");

}

else {

$('#msgText').html("<b>Unable To Update Role It Might Already Exist </b>");

}

return false;

}

</script>

<style type="text/css">

#AllRoles

{

Page 81: Code Listing

width: 429px;

}

table

{

border:0 none 0;

border-bottom-style:none;

border-top-style:none;

border-right-style:none;

border-left-style:none;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/ManageUsersRoles.asmx"/>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Detailed Student Information" style="width:200px;height:300px;">

<p>This will show the record for the student you have selected</p>

</div>

<div style="width:100%; z-index:9999;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

Page 82: Code Listing

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:12px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:12px; text-align:center;" id="fixed-div"><button id="opener"

type="button" >Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div id="masterCtrl" style="height:43px;float:left;width:74%; margin-top:5px;">

<table width="100%">

<tr>

<td>

<table>

<tr>

<td><div style="float:left;"><input id="txtRoleName" type="text" onkeyup="" /></div></td>

<td><div style="float:left;"><button id="btnAddRole"

type="button" value="AddRole" style="z-index:9999;" >Add Role</button></div></td>

<td><div style="float:left;"><button id="btnRemoveRole" type="button" value="DeleteRole" style="z-index:9999;">Delete Role</button></div></td>

<td><div style="float:left; display:none;" id="ajaxloader">&nbsp;

<img src="../css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

Page 83: Code Listing

</tr>

</table>

</td>

</tr>

<tr>

<td>

<div id="msgText">&nbsp;</div>

</td>

</tr>

<tr>

<td>

<div id="RoleManager" >

<select name="drop1" id="AllRoles" size="14">

</select>

</div>

</td>

</tr>

</table>

</div>

</div>

Page 84: Code Listing

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 85: Code Listing

K:\SpringDale\Admin\ManageRoles.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Admin_ManageRoles : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myPageLoad);", true);

}

}

Page 86: Code Listing

K:\SpringDale\Admin\ManageUsers.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ManageUsers.aspx.cs" Inherits="Admin_ManageUsers" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function myOnLoad() {

findUser();

}

function openUserWizard() {

$('#txtNewUserName').val('');

$('#txtPassword').val('');

$('#txtPassword2').val('');

$('#txtEmail').val('');

$('#txtErorr').val('');

$('#txtQuestion').val('');

$('#txtAnswer').val('');

$("#CreateUser").dialog("open");

return false;

return false;

}

function createUser() {

$("#ajaxLoader2").show();

var txtUserName = $('#txtNewUserName').val();

if (txtUserName == null || txtUserName == ''){

Page 87: Code Listing

$('#txtErorr').text("Sorry! User Name field cannot be blank.....");

$('#txtErorr').show();

$("#ajaxLoader2").hide();

return false;

}

var txtPassword = $('#txtPassword').val();

var txtPassword2 = $('#txtPassword2').val();

if ( txtPassword == null || txtPassword == '') {

$('#txtErorr').show();

$('#txtErorr').text("Sorry! Password field cannot be blank.....");

$("#ajaxLoader2").hide();

return false;

}

if (txtPassword != txtPassword2) {

$('#txtErorr').text("Sorry the passwords do not match");

$('#txtErorr').show();

$("#ajaxLoader2").hide();

return false;

}

var txtEmail = $('#txtEmail').val();

if (txtEmail == undefined || txtEmail == null || txtEmail == '') {

$('#txtErorr').text("Sorry! You must give a valid Email.");

$('#txtErorr').show();

$("#ajaxLoader2").hide();

return false;

}

var txtSecurityQ = $('#txtQuestion').val();

if (txtSecurityQ == undefined || txtSecurityQ == null || txtSecurityQ == '') {

$('#txtErorr').text("Sorry! Security Question Field Cannot be left blank.");

$('#txtErorr').show();

Page 88: Code Listing

$("#ajaxLoader2").hide();

return;

}

var txtAnswer = $('#txtAnswer').val();

if (txtAnswer == undefined || txtAnswer == null || txtAnswer == '') {

$('#txtErorr').text("Sorry! User Name field cannot be blank.....");

$('#txtErorr').show();

$("#ajaxLoader2").hide();

return;

}

ManageUsersRoles.CreateNewUser(txtUserName, txtPassword, txtEmail, txtSecurityQ, txtAnswer, function (result) {

$("#ajaxLoader2").hide();

$('#txtErorr').text("Congratulation! user " + txtUserName + " has been created ");

$('#txtNewUserName').text("");

$('#Password').text("");

$('#Password2').text("");

$('#txtEmail').text("");

$('#txtQuestion').text("");

$('#txtAnswer').text("");

findUser();

$('#txtErorr').text('User Creation Successfull');

}, function (result) {

$("#ajaxLoader2").hide();

$('#txtErorr').text(result.toString());

$("#CreateUser").dialog("close");

}, this);

}

function delUser(username) {

$("#ajaxloader").show();

ManageUsersRoles.DeleteUser(username, function (result) {

Page 89: Code Listing

if (result == true) {

findUser();

}

else {

$("#ajaxloader").hide();

alert("Sorry! Unable to delete user");

}

}, function () {

$("#ajaxloader").hide();

});

}

function UserRoles(userName, roleName, playerPPD) {

this.PlayerID = playerID;

this.PlayerName = playerName;

this.PlayerPPD = parseFloat(playerPPD);

}

function findUser() {

$("#ajaxloader").show();

var obj = document.getElementById('txtUserName');

if (obj.value == null || obj.value == undefined)

obj.value = "";

ManageUsersRoles.GetUserRolesTable(obj.value, GotAllUsers, ErrorInFindUsers);

$.fx.speeds._default = 1000;

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

Page 90: Code Listing

$("#CreateUser").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 800,

height: 450

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

//$("#btnNewUser").button();

$("#btnNewUser").click(openUserWizard);

// $("#btnSearch").button();

$("#btnSearch").click(findUser);

//$('#btnCreate').button();

$('#btnCreate').click(createUser);

$("#opener").button();

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

Page 91: Code Listing

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

$("#AttendanceGrid").hide("slow");

return false;

}

function GotAllUsers(result) {

$("#ajaxloader").hide();

$("#AttendanceGrid").show("slow");

$("#AttendanceGrid").html(result.toString());

}

function ErrorInFindUsers(result) { }

function updateUser(obj) {

if (obj.checked) {

ManageUsersRoles.putUserInRole(obj.name, obj.value, userUpdated);

}

else {

ManageUsersRoles.removeUserFromRole(obj.name, obj.value, userUpdated);

}

Page 92: Code Listing

}

function userUpdated(result) {

if (result == true) {

$('#msgText').html("<b>User Updated</b>");

}

else {

$('#msgText').html("<b>Unable To Update User>/b>");

}

}

function OpenWizard() {

$('#CreateUserWizard').toggle('slow', function () {

var txt = $('#openwizardhref').text();

txt = txt == 'Open User Creation Wizard' ? 'Close User Creation Wizard' : 'Open User Creation Wizard';

$('#openwizardhref').text(txt);

});

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

</script>

<style type="text/css">

.style1

{

width: 34%;

}

#txtQuestion

{

width: 390px;

Page 93: Code Listing

}

#txtAnswer

{

width: 391px;

}

.style3

{

font-family: Arial, Helvetica, sans-serif;

font-size: medium;

font-style: normal;

font-weight: bold;

color: #353133;

letter-spacing: normal;

width: 34%;

height: 34px;

}

.style4

{

font-family: Arial, Helvetica, sans-serif;

font-size: medium;

width: 50%;

height: 34px;

}

.style5

{

font-family: Arial, Helvetica, sans-serif;

font-size: medium;

font-style: normal;

font-weight: bold;

color: #353133;

letter-spacing: normal;

width: 34%;

}

Page 94: Code Listing

.style6

{

height: 24px;

width: 796px;

}

.style7

{

width: 796px;

}

table

{

border:0 none 0;

border-bottom-style:none;

border-top-style:none;

border-right-style:none;

border-left-style:none;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/ManageUsersRoles.asmx"/>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Detailed Student Information" style="width:200px;height:300px;">

Page 95: Code Listing

<p>This will show the record for the student you have selected</p>

</div>

<div id="CreateUser" title="Create New User" style="width:847px; height:300px; z-index:9999;">

<table border="0" style="width: 823px">

<tr id="Row1">

<td class="style7"></td>

</tr>

<tr>

<td class="style6"></td>

</tr>

<tr>

<td class="style7"><table width="100%" border="0" style="height: 242px; width: 95%">

<tr>

<td class="style5" >UserName</td>

<td class="textbox1" ><input name="txtNewUserName" type="text" id="txtNewUserName" accesskey="t" tabindex="0" size="50" maxlength="100" /></td>

</tr>

<tr>

<td class="style3">Password</td>

<td class="style4" ><input name="txtPassword" type="password" id="txtPassword" accesskey="t" tabindex="0" size="25" maxlength="25" /></td>

</tr>

<tr>

<td class="style5">Confirm Password</td>

<td class="textbox1" ><input name="txtPassword2" type="password" id="txtPassword2" accesskey="t" tabindex="0" size="25" maxlength="25" /></td>

</tr>

<tr>

<td class="style5">Security Question</td>

<td class="textbox1" ><input name="txtQuestion" type="text" id="txtQuestion" accesskey="t" tabindex="0" size="125" maxlength="125" /></td>

</tr>

<tr>

Page 96: Code Listing

<td class="style5">Security Answer</td>

<td class="textbox1" ><input name="txtAnswer" type="text" id="txtAnswer" accesskey="t" tabindex="0" size="125" maxlength="125" /></td>

</tr>

<tr>

<td class="style5">Email</td>

<td class="textbox1" ><input name="txtEmail" type="text" id="txtEmail" accesskey="t" tabindex="0" size="50" maxlength="100" /></td>

</tr>

<tr>

<td class="style1"><div style="float:left; display:none;" id="ajaxLoader2">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

<td class="textbox1"><label id="txtErorr" style="display:none; color:Red; font-weight:bolder;"></label>&nbsp;</td>

</tr>

</table></td>

</tr>

<tr>

<td class="style7"><button name="btnCreate" id="btnCreate" value="Create User" >Creat User</button>

</td>

</tr>

</table>

</div>

<div style="width:100%;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

Page 97: Code Listing

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:12px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:12px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div id="masterCtrl" style="float:left;width:74%; margin-top:5px;">

<table style="width:100%">

<tr>

<td>

<table><tr><td><b>Enter UserName To Search&nbsp;&nbsp;&nbsp;</b><input id="txtUserName" type="text" onkeyup="findUser();" /></td>

<td><button id="btnSearch" type="button" value="Search" >Search...</button></td>

<td><button id="btnNewUser" value="CreateUser" onclick="openUserWizard();">Create New User</button></td>

<td><div style="float:left; display:none;" id="ajaxloader">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

</table>

</td>

</tr>

<tr>

<td>

Page 98: Code Listing

<div id="msgText">&nbsp;</div>

</td>

</tr>

<tr>

<td>

<div id="AttendanceGrid" ></div>

</td>

</tr>

</table>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 99: Code Listing

K:\SpringDale\Admin\ManageUsers.aspx.cs

using System;

using System.Collections.Generic;

using System.Web.Security;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using ManageUsersTableAdapters;

public partial class Admin_ManageUsers : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if(!Page.IsPostBack)

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myOnLoad);", true);

}

protected void txtUserNameSearch_TextChanged(object sender, EventArgs e)

{

}

protected void CreateUserWizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)

{

e.Cancel = true;

}

Page 100: Code Listing

protected void CreateUserWizard1_ContinueButtonClick(object sender, EventArgs e)

{

}

}

Page 101: Code Listing

K:\SpringDale\Admin\StudentMaster.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="StudentMaster.aspx.cs" Inherits="Admin_StudentMaster" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<link type="text/css" href="http://learnasp.in/css/MyTableStyle.css" />

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function myPageLoad() {

findRoles();

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").button();

$("#opener").click(SearchClicked);

Page 102: Code Listing

//$("#btnAddRole").button();

$("#btnAddRole").click(addRole);

//$("#btnRemoveRole").button();

$("#btnRemoveRole").click(deleteRole);

return false;

}

function SearchClicked() {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

Page 103: Code Listing

function findRoles() {

$("#ajaxloader").show();

ManageUsersRoles.GetAllRoles(gotAllRoles);

return false;

}

function gotAllRoles(result) {

var i = 0;

$("#ajaxloader").hide();

for (i = 0; i < result.length; i++) {

$('#AllRoles').append("<option value='" + result[i] + "'>" + result[i] + "</option>");

}

return false;

}

function deleteRole() {

var str = "";

$("#AllRoles option:selected").each(function () {

str = $(this).text();

ManageUsersRoles.removeRole(str, roleDeleted, roleDeleteError);

});

return false;

}

function addRole() {

$("#ajaxloader").show();

var obj = document.getElementById('txtRoleName');

ManageUsersRoles.addRole(obj.value, roleUpdated);

return false;

}

function roleDeleteError(result) {

$('#msgText').html("<b>Unable To Update Role It Might Already Exist Or There May Be Users Attached</b>");

Page 104: Code Listing

return false;

}

function roleDeleted(result) {

$("#ajaxloader").hide();

if (result == true) {

$('#msgText').html("<b>Role Deleted</b>");

$("#AllRoles option:selected").remove();

}

else {

$('#msgText').html("<b>Unable To Update Role It Might Already Exist </b>");

}

return false;

}

function roleUpdated(result) {

$("#ajaxloader").hide();

if (result == true) {

$('#msgText').html("<b>Role Added</b>");

var obj = document.getElementById('txtRoleName');

$('#AllRoles').append("<option value='" + obj.value + "'>" + obj.value + "</option>");

}

else {

$('#msgText').html("<b>Unable To Update Role It Might Already Exist </b>");

}

return false;

}

</script>

<style type="text/css">

#AllRoles

{

Page 105: Code Listing

width: 429px;

}

table

{

border:0 none 0;

border-bottom-style:none;

border-top-style:none;

border-right-style:none;

border-left-style:none;

}

.simpletextbox

{

width:90%;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/ManageUsersRoles.asmx"/>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Detailed Student Information" style="width:200px;height:300px;">

<p>This will show the record for the student you have selected</p>

</div>

<div style="width:100%; z-index:9999;">

Page 106: Code Listing

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:12px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:12px; text-align:center;" id="fixed-div">

<button id="opener" type="button" >Search...</button>

</div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div id="masterCtrl" style="height:43px;float:left;width:74%; margin-top:5px;">

<table border="0" style="width:100%;" >

<tbody>

<tr>

<td>

<table border="0" style="width:100%;" >

<tr>

<td style="width:20%; font-weight:bold;">

Search Student Name

</td>

<td style="width:20%;">

<asp:TextBox ID="txtSearchStudent" runat="server" CssClass="simpletextbox"></asp:TextBox>

Page 107: Code Listing

</td>

<td>

<asp:ImageButton ID="ImageButton1" runat="server"

ImageUrl="http://learnasp.in/css/search.png" onclick="ImageButton1_Click" />

</td>

</tr>

</table>

</td>

</tr>

<tr>

<td>

<asp:GridView ID="studentMaster" runat="server" AllowPaging="True"

AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="EnrollNo"

DataSourceID="studentMasterSource" GridLines="None" >

<Columns>

<asp:BoundField DataField="EnrollNo" HeaderText="EnrollNo" ReadOnly="True"

SortExpression="EnrollNo" />

<asp:BoundField DataField="RollNo" HeaderText="RollNo"

SortExpression="RollNo" />

<asp:BoundField DataField="FirstName" HeaderText="FirstName"

SortExpression="FirstName" />

<asp:BoundField DataField="LastName" HeaderText="LastName"

SortExpression="LastName" />

<asp:BoundField DataField="ClassID" HeaderText="ClassID"

SortExpression="ClassID" />

<asp:BoundField DataField="ClassName" HeaderText="ClassName" ReadOnly="True"

SortExpression="ClassName" />

Page 108: Code Listing

<asp:BoundField DataField="ClassSection" HeaderText="ClassSection"

ReadOnly="True" SortExpression="ClassSection" />

<asp:BoundField DataField="FathersName" HeaderText="FathersName"

SortExpression="FathersName" />

<asp:BoundField DataField="MothersName" HeaderText="MothersName"

SortExpression="MothersName" />

<asp:BoundField DataField="Address" HeaderText="Address"

SortExpression="Address" />

<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />

<asp:BoundField DataField="State" HeaderText="State" SortExpression="State" />

<asp:BoundField DataField="HomePhone" HeaderText="HomePhone"

SortExpression="HomePhone" />

<asp:BoundField DataField="CompanyName" HeaderText="CompanyName"

SortExpression="CompanyName" />

<asp:BoundField DataField="CompanyAddress" HeaderText="CompanyAddress"

SortExpression="CompanyAddress" />

<asp:BoundField DataField="CompanyPhone" HeaderText="CompanyPhone"

SortExpression="CompanyPhone" />

<asp:BoundField DataField="Designation" HeaderText="Designation"

SortExpression="Designation" />

<asp:BoundField DataField="LastCollege" HeaderText="LastCollege"

SortExpression="LastCollege" />

<asp:BoundField DataField="LastResult" HeaderText="LastResult"

SortExpression="LastResult" />

Page 109: Code Listing

</Columns>

</asp:GridView>

</td>

</tr>

</tbody>

</table>

<asp:SqlDataSource ID="studentMasterSource" runat="server"

ConnectionString="<%$ ConnectionStrings:springdaleConnectionString2 %>" SelectCommand="SELECT EnrollNo, RollNo, FirstName, LastName, ClassID,

(SELECT ClassName

FROM ClassRec

WHERE (ClassID = StudentRec.ClassID)) AS ClassName,

(SELECT ClassSection

FROM ClassRec AS ClassRec_1

WHERE (ClassID = StudentRec.ClassID)) AS ClassSection, FathersName, MothersName, Address, City, State, HomePhone, CompanyName, CompanyAddress,

CompanyPhone, Designation, LastCollege, LastResult, StudentImage

FROM StudentRec where FirstName like @fname + '%' or LastName like @fname + '%'">

<SelectParameters>

<asp:ControlParameter ControlID="txtSearchStudent" Name="fname"

PropertyName="Text" />

</SelectParameters>

</asp:SqlDataSource>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 110: Code Listing

K:\SpringDale\Admin\StudentMaster.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Admin_StudentMaster : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myPageLoad);", true);

if (!IsPostBack)

txtSearchStudent.Text = "%";

}

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)

{

//studentMaster.Columns.Clear();

studentMasterSource.DataBind();

}

}

Page 111: Code Listing

K:\SpringDale\Admin\SubjectManager.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="SubjectManager.aspx.cs" Inherits="Admin_SubjectManager" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

function addload() {

$("#opener").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

Page 112: Code Listing

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

}

Page 113: Code Listing

</script>

<style type="text/css">

.sendback

{

z-index:-9999;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

</p>

</div>

<div style="width:100%; margin-left:10px;">

Page 114: Code Listing

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div style="width:100%;margin:0 auto;padding:0;" class="ui-widget-header"><h2>Enter Subjects For Each Class</h2></div>

<asp:Table runat="server" Width="100%" CssClass="sendback" BorderStyle="None" style="border:0;" >

<asp:TableRow CssClass="sendback">

<asp:TableCell Width="20%" ><b>Enter Or Choose Subject Name</b> </asp:TableCell>

<asp:TableCell Width="30%">

<table width="100%" border="0" style=" border-bottom-style:none; border-left-style:none; border-right-style:none; border-top-style:none;">

<tr>

<td style="width:30%; vertical-align:bottom;">

<asp:TextBox ID="txtSubName" runat="server"></asp:TextBox>

</td>

Page 115: Code Listing

<td style="width:10%">

&nbsp;

</td>

<td style="vertical-align:top;">

<asp:ComboBox ID="cmbSubName" runat="server" DataSourceID="DSSubjectName" DataTextField="SubjectName"

DataValueField="SubjectID" AutoCompleteMode="SuggestAppend" AutoPostBack="true"

DropDownStyle="DropDownList"

Width="140px" OnSelectedIndexChanged="cmbSubName_SelChanged" CssClass="sendback"

ontextchanged="cmbSubName_TextChanged" style="display:inline; vertical-align:top;" >

</asp:ComboBox>

</td>

</tr>

</table>

</asp:TableCell>

<asp:TableCell Width="49%">

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="sendback">

<asp:TableCell Width="20%"><b>Choose Class</b></asp:TableCell>

<asp:TableCell Width="50%">

<table border="0" style="border-bottom-style:none; border-top-style:none; border-left-style:none; border-right-style:none;z-index:-99999;">

<tr>

<td class="sendback" style="width:30%;">

<asp:DropDownList ID="cmbClasses" runat="server" Width="80px" DataSourceID="DSClassRec" DataTextField="Class" DataValueField="ClassID" >

</asp:DropDownList>

Page 116: Code Listing

</td>

<td style="width:10%;">

<b>Subject Teacher</b>

</td>

<td class="sendback" style="width:20%;">

<asp:DropDownList ID="cmbTeacher" runat="server" CssClass="sendback" DataSourceID="DSTeachers" DataValueField="TeacherID" DataTextField="TeacherName" style="vertical-align:bottom;z-index:-99999;">

</asp:DropDownList>

</td>

<td style="width:10%;">

<b>Periods/Week</b>

</td>

<td style="width:10%;">

<asp:TextBox ID="txtNumPeriods" runat="server"></asp:TextBox>

</td>

<td style="width:10%;">

&nbsp;

</td>

</tr>

</table>

</asp:TableCell>

<asp:TableCell>

<asp:Button ID="btnUpdate" runat="server" Text="Add" OnClick="btnUpdate_Click" />

</asp:TableCell>

</asp:TableRow>

</asp:Table>

Page 117: Code Listing

</div>

</div>

<asp:ObjectDataSource ID="DSSubjectName" runat="server" DeleteMethod="DeleteData"

InsertMethod="InsertData" OldValuesParameterFormatString="original_{0}"

SelectMethod="GetData" TypeName="SubjectsBLL" UpdateMethod="UpdateData">

<DeleteParameters>

<asp:Parameter Name="subjectid" Type="Decimal" />

</DeleteParameters>

<InsertParameters>

<asp:Parameter Name="subjectname" Type="String" />

<asp:Parameter Name="classid" Type="Decimal" />

</InsertParameters>

<UpdateParameters>

<asp:Parameter Name="subjectid" Type="Decimal" />

<asp:Parameter Name="subjectname" Type="String" />

<asp:Parameter Name="classid" Type="Decimal" />

</UpdateParameters>

</asp:ObjectDataSource>

<asp:ObjectDataSource ID="DSClassRec" runat="server"

OldValuesParameterFormatString="original_{0}" SelectMethod="GetClassSectAdd"

TypeName="ClassRecBLL"></asp:ObjectDataSource>

<asp:ObjectDataSource ID="DSGridAll" runat="server" DeleteMethod="DeleteData"

InsertMethod="InsertData" OldValuesParameterFormatString="original_{0}"

SelectMethod="GetDataEx" TypeName="SubjectsBLL" UpdateMethod="UpdateData">

<DeleteParameters>

<asp:Parameter Name="subjectid" Type="Decimal" />

</DeleteParameters>

Page 118: Code Listing

<InsertParameters>

<asp:Parameter Name="subjectname" Type="String" />

<asp:Parameter Name="classid" Type="Decimal" />

<asp:Parameter Name="teacherid" Type="Decimal" />

</InsertParameters>

<UpdateParameters>

<asp:Parameter Name="subjectid" Type="Decimal" />

<asp:Parameter Name="subjectname" Type="String" />

<asp:Parameter Name="classid" Type="Decimal" />

<asp:Parameter Name="teacherid" Type="Decimal" />

</UpdateParameters>

</asp:ObjectDataSource>

<asp:SqlDataSource ID="DSTeachers" runat="server"

ConnectionString="<%$ ConnectionStrings:springdaleConnectionString2 %>"

SelectCommand="SELECT [TeacherID], [TeacherName] FROM [TeacherDummy]"></asp:SqlDataSource>

<asp:SqlDataSource ID="DSGridView2" runat="server"

ConnectionString="<%$ ConnectionStrings:springdaleConnectionString2 %>"

SelectCommand="SELECT SubjectRec.SubjectID, SubjectRec.SubjectName, ClassRec.ClassName, ClassRec.ClassSection, SubjectRec.NumPeriodsPerWeek,TeacherDummy.TeacherName FROM SubjectRec INNER JOIN TeacherDummy ON SubjectRec.TeacherID = TeacherDummy.TeacherID INNER JOIN ClassRec ON SubjectRec.ClassID = ClassRec.ClassID"></asp:SqlDataSource>

</ContentTemplate>

<Triggers>

<asp:PostBackTrigger ControlID="btnUpdate" />

</Triggers>

</asp:UpdatePanel>

<asp:UpdatePanel ID="Update2" runat="server">

<ContentTemplate>

<div style="clear:both;">&nbsp;</div>

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">&nbsp;</div>

Page 119: Code Listing

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

DataSourceID="DSGridView2" ondatabound="GridView1_DataBound"

RowStyle-BorderStyle="None" GridLines="None"

BorderStyle="None"

style="border-bottom-style:none; border-top-style:none; border-left-style:none; border-right-style:none; width:100%;"

AllowPaging="True" >

<Columns>

<asp:BoundField DataField="SubjectID" HeaderText="SubjectID"

SortExpression="SubjectID" />

<asp:BoundField DataField="SubjectName" HeaderText="SubjectName"

SortExpression="SubjectName" />

<asp:BoundField DataField="ClassName" HeaderText="ClassName"

SortExpression="ClassName" />

<asp:BoundField DataField="ClassSection" HeaderText="ClassSection"

SortExpression="ClassSection" />

<asp:BoundField DataField="NumPeriodsPerWeek" HeaderText="NumPeriodsPerWeek"

SortExpression="NumPeriodsPerWeek" />

<asp:BoundField DataField="TeacherName" HeaderText="TeacherName"

SortExpression="TeacherName" />

<asp:TemplateField>

<ItemTemplate>

<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="http://learnasp.in/css/remove.png"

RowIndex='<%# Container.DisplayIndex %>' OnClick="ImageButton1_Click"/>

</ItemTemplate>

</asp:TemplateField>

</Columns>

Page 120: Code Listing

<RowStyle BorderStyle="None" />

</asp:GridView>

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="Update2" >

<ProgressTemplate>

<asp:Image ID="Image1" runat="server" ImageUrl="http://learnasp.in/css/ajax-loader.gif" />

</ProgressTemplate>

</asp:UpdateProgress>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 121: Code Listing

K:\SpringDale\Admin\SubjectManager.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Admin_SubjectManager : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

if (Page.IsPostBack)

{

GridView1.DataBind();

}

else

{

GridView1.DataBind();

}

}

protected void btnUpdate_Click(object sender, EventArgs e)

{

SubjectsBLL obj = new SubjectsBLL();

if (string.IsNullOrEmpty(txtSubName.Text))

return;

Page 122: Code Listing

// convert to char array of the string

char[] letters = txtSubName.Text.ToCharArray();

// upper case the first char

letters[0] = char.ToUpper(letters[0]);

// return the array made of the new char array

txtSubName.Text= new string(letters);

if (txtNumPeriods.Text =="")

txtNumPeriods.Text = "1";

if(obj.IsRecordExist(txtSubName.Text,decimal.Parse(cmbClasses.SelectedValue)))

obj.UpdateData(txtSubName.Text, decimal.Parse(cmbClasses.SelectedValue), decimal.Parse(cmbTeacher.SelectedValue), decimal.Parse(txtNumPeriods.Text));

else

obj.InsertData(txtSubName.Text, decimal.Parse(cmbClasses.SelectedValue),decimal.Parse(cmbTeacher.SelectedValue),decimal.Parse(txtNumPeriods.Text));

GridView1.DataBind();

}

protected void cmbSubName_SelChanged(object sender, EventArgs e)

{

txtSubName.Text = cmbSubName.SelectedItem.Text;

}

protected void GridView1_DataBound(object sender, EventArgs e)

{

GridView1.UseAccessibleHeader = true;

GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;

GridView1.BorderStyle = BorderStyle.None;

GridView1.BorderWidth = new Unit(0.0);

}

protected void cmbSubName_TextChanged(object sender, EventArgs e)

{

txtSubName.Text = cmbSubName.SelectedItem.Text;

}

protected void ImageButton1_Click(object sender, EventArgs e)

Page 123: Code Listing

{

ImageButton bt = (ImageButton)sender;

SubjectsBLL obj = new SubjectsBLL();

int rowIndex = Convert.ToInt32(bt.Attributes["RowIndex"]);

string subjectname = GridView1.Rows[rowIndex].Cells[1].Text;

string classname = GridView1.Rows[rowIndex].Cells[2].Text;

string classection = GridView1.Rows[rowIndex].Cells[3].Text;

decimal classid = 0;

ClassRecBLL class_obj = new ClassRecBLL();

classid=(decimal)class_obj.GetClassID(classname,classection);

class_obj.Dispose();

obj.DeleteData(subjectname, classid);

GridView1.DataBind();

}

}

Page 124: Code Listing

K:\SpringDale\Admin\TimeTableCreator.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="TimeTableCreator.aspx.cs" Inherits="Admin_TimeTableCreator" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<style type="text/css">

table

{

border:0 none;

}

.subjects

{

float:left;

width:80px;

font-size:smaller;

}

.draggable { width: 100px; height: 80px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }

.droppable { width: 100px; height: 80px; padding: 0.5em; float: left; margin: 10px; }

.ui-state-highlightme

{

background-color:White;

border-color:Orange;

width:100px;

Page 125: Code Listing

height:80px;

}

</style>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

var color = '';

var current_div;

function addload() {

$("#opener").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

Page 126: Code Listing

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

TimeTableManager.GetClassListBox(GotClassListBox);

}

function GotClassListBox(result) {

$('#classbox').html(result);

}

function startBuild() {

var selected = $("#allclasses option:selected");

var output = "";

Page 127: Code Listing

if (selected.val() != 0) {

output = selected.val();

TimeTableManager.GetAllSubjects(output, GotAllSubjects);

TimeTableManager.GetTimeTableGrid(output, GotTheGrid);

}

}

function GotAllSubjects(result) {

$('#subjectlist').html(result);

}

function GotTheGrid(result) {

$('#TimeTableGrid').html(result);

$('#subjectlist > div').each(function () {

$(this).draggable({ revert: "invalid", appendTo: "body",

helper: "clone", create: function (event, ui) {

var x = $(this).css('backgroundColor');

hexc(x);

}, start: function (event, ui) {

var x = $(this).css('backgroundColor');

hexc(x);

current_div = $(this);

}

});

});

$('div#TimeTableGrid td').each(function () {

$(this).droppable({ activeClass: "ui-state-hover",

hoverClass: "ui-state-active",

drop: function (event, ui) {

Page 128: Code Listing

$(this).addClass("ui-state-highlightme")

$(this).html(ui.draggable.text());

$(this).css('backgroundColor', color);

current_div.hide();

}

});

});

}

function hexc(colorval) {

var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);

delete (parts[0]);

for (var i = 1; i <= 3; ++i) {

parts[i] = parseInt(parts[i]).toString(16);

if (parts[i].length == 1) parts[i] = '0' + parts[i];

}

color = '#' + parts.join('');

}

function saveTimeTable() {

var classid ;

var selected = $("#allclasses option:selected");

if (selected.val() != 0) {

classid = selected.val();

}

var i = 0;

var j = 0;

Page 129: Code Listing

var arr = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

$('div#TimeTableGrid tr').each(function () {

i++;

$(this).find('td').each(function () {

j++;

if (j > 1) {

var txt = $(this).text();

if (txt != "" && txt.length > 5) {

var arr_txt = txt.split("/");

//alert("Day is " + arr[i - 1] + " PeriodNum is " + (j - 1).toString() + " Subject id is " + arr_txt[0] + " Teacher Id is " + arr_txt[2]);

TimeTableManager.insertInTimeTable(classid, arr[i - 1], j - 1, arr_txt[0], arr_txt[2], function (result) {

if (result == false) {

Notifier.error("Unable To Update", "Something has gone wrong");

}

});

}

}

});

j = 0;

});

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

Page 130: Code Listing

<asp:ServiceReference Path="http://learnasp.in/TimeTableManager.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3> </p>

</div>

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search .......</button></div>

Page 131: Code Listing

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div style="margin:auto 0;padding:0;width:100%;">

<table width="100%" border="0">

<tr>

<td style="width:10%;"><b>Choose Class</b></td>

<td style="width:15%;" id="classbox"></td>

<td style="width:20%;" >

<input id="btnGetData" type="button" value="StartBuild" onclick="startBuild();" />

</td>

<td style="width:15%;">

<input id="btnSave" type="button" value="Save Time Table" onclick="saveTimeTable();" />

</td>

</tr>

</table>

<table width="100%" border="0">

<tr>

<td id="subjectlist">

</td>

</tr>

</table>

<div id='TimeTableGrid'>

</div>

</div>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 132: Code Listing
Page 133: Code Listing

K:\SpringDale\Admin\TimeTableCreator.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Admin_TimeTableCreator : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

}

}

Page 134: Code Listing

K:\SpringDale\Admin\TimeTableMaster.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="TimeTableMaster.aspx.cs" Inherits="Admin_TimeTableMaster" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

function addload() {

$("#opener").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

Page 135: Code Listing

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

}

Page 136: Code Listing

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3> </p>

</div>

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

Page 137: Code Listing

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search .......</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div style="margin:auto 0;padding:0;width:100%;">

<table border="0" width="50%">

<thead>

<tr>

<td>

<b>Choose Your Class For Fixing Time Table Metrics </b>

</td>

</tr>

</thead>

<tbody>

<tr>

<td>

<asp:ListBox ID="lstClasses" runat="server" DataSourceID="ObjectDataSource1" Width="100%"

DataTextField="Class" DataValueField="ClassID" SelectionMode="Multiple"></asp:ListBox>

</td>

</tr>

</tbody>

</table>

</div>

Page 138: Code Listing

<table border="0" width="100%">

<thead>

<tr>

<th>Day Name</th>

<th>Number Of Periods</th>

<th></th>

</tr>

</thead>

<tbody>

<tr>

<td>Monday</td>

<td>

<asp:TextBox ID="txtMonday" runat="server"></asp:TextBox><asp:RequiredFieldValidator ControlToValidate="txtMonday"

ID="RequiredFieldValidator1" runat="server" ErrorMessage="Cannot Be Blank" Display="None"></asp:RequiredFieldValidator>

<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="RequiredFieldValidator1">

</asp:ValidatorCalloutExtender>

</td>

<td></td>

</tr>

<tr>

<td>Tuesday</td>

<td>

<asp:TextBox ID="txtTuesday" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ControlToValidate="txtTuesday"

ID="RequiredFieldValidator2" runat="server" ErrorMessage="Cannot Be Blank" Display="None"></asp:RequiredFieldValidator>

<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" TargetControlID="RequiredFieldValidator2">

Page 139: Code Listing

</asp:ValidatorCalloutExtender>

</td>

<td></td>

</tr>

<tr>

<td>Wednesday</td>

<td>

<asp:TextBox ID="txtWednesday" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ControlToValidate="txtWednesday"

ID="RequiredFieldValidator3" runat="server" ErrorMessage="Cannot Be Blank" Display="None"></asp:RequiredFieldValidator>

<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender5" runat="server" TargetControlID="RequiredFieldValidator3">

</asp:ValidatorCalloutExtender>

<a

</td>

<td></td>

</tr>

<tr>

<td>Thursday</td>

<td>

<asp:TextBox ID="txtThursday" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ControlToValidate="txtThursday"

ID="RequiredFieldValidator4" runat="server" ErrorMessage="Cannot Be Blank" Display="None"></asp:RequiredFieldValidator>

<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender7" runat="server" TargetControlID="RequiredFieldValidator4">

</asp:ValidatorCalloutExtender>

</td>

<td></td>

Page 140: Code Listing

</tr>

<tr>

<td>Friday</td>

<td>

<asp:TextBox ID="txtFriday" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ControlToValidate="txtFriday"

ID="RequiredFieldValidator5" runat="server" ErrorMessage="Cannot Be Blank" Display="None"></asp:RequiredFieldValidator>

<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender9" runat="server" TargetControlID="RequiredFieldValidator5">

</asp:ValidatorCalloutExtender>

</td>

<td></td>

</tr>

<tr>

<td>Saturday</td>

<td>

<asp:TextBox ID="txtSaturday" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ControlToValidate="txtSaturday"

ID="RequiredFieldValidator6" runat="server" ErrorMessage="Cannot Be Blank" Display="None"></asp:RequiredFieldValidator >

<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender11" runat="server" TargetControlID="RequiredFieldValidator6">

</asp:ValidatorCalloutExtender>

</td>

<td>

<asp:Button ID="btnUpdate" runat="server" Text="Update...." CssClass="ui-button-text-icon ui-button ui-widget

ui-state-default ui-corner-all ui-button-text-only" onclick="btnUpdate_Click" />

</td>

Page 141: Code Listing

</tr>

</tbody>

</table>

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" >

<ProgressTemplate>

<asp:Image ID="Image1" runat="server" ImageUrl="http://learnasp.in/css/ajax-loader.gif" />

</ProgressTemplate>

</asp:UpdateProgress>

</div>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"

OldValuesParameterFormatString="original_{0}" SelectMethod="GetClassSectAdd"

TypeName="ClassRecBLL"></asp:ObjectDataSource>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 142: Code Listing

K:\SpringDale\Admin\TimeTableMaster.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Admin_TimeTableMaster : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

}

protected void btnUpdate_Click(object sender, EventArgs e)

{

TimeTableMasterBLL obj = new TimeTableMasterBLL();

for (int i = lstClasses.Items.Count - 1; i >= 0; i--)

{

if (lstClasses.Items[i].Selected == true)

{

//txtMonday.Text+= " , " + lstClasses.Items[i].Value;

if (obj.RecordExists(decimal.Parse(lstClasses.Items[i].Value), "Monday"))

Page 143: Code Listing

obj.UpdateData(decimal.Parse(lstClasses.Items[i].Value), "Monday", int.Parse(txtMonday.Text));

else

obj.InsertData(decimal.Parse(lstClasses.Items[i].Value), "Monday", int.Parse(txtMonday.Text));

if (!obj.RecordExists(decimal.Parse(lstClasses.Items[i].Value), "Tuesday"))

obj.InsertData(decimal.Parse(lstClasses.Items[i].Value), "Tuesday", int.Parse(txtTuesday.Text));

else

obj.UpdateData(decimal.Parse(lstClasses.Items[i].Value), "Tuesday", int.Parse(txtTuesday.Text));

if (!obj.RecordExists(decimal.Parse(lstClasses.Items[i].Value), "Wednesday"))

obj.InsertData(decimal.Parse(lstClasses.Items[i].Value), "Wednesday", int.Parse(txtWednesday.Text));

else

obj.UpdateData(decimal.Parse(lstClasses.Items[i].Value), "Wednesday", int.Parse(txtWednesday.Text));

if (!obj.RecordExists(decimal.Parse(lstClasses.Items[i].Value), "Thursday"))

obj.InsertData(decimal.Parse(lstClasses.Items[i].Value), "Thursday", int.Parse(txtThursday.Text));

else

obj.UpdateData(decimal.Parse(lstClasses.Items[i].Value), "Thursday", int.Parse(txtThursday.Text));

if (!obj.RecordExists(decimal.Parse(lstClasses.Items[i].Value), "Friday"))

obj.InsertData(decimal.Parse(lstClasses.Items[i].Value), "Friday", int.Parse(txtFriday.Text));

else

obj.UpdateData(decimal.Parse(lstClasses.Items[i].Value), "Friday", int.Parse(txtFriday.Text));

if (!obj.RecordExists(decimal.Parse(lstClasses.Items[i].Value), "Saturday"))

obj.InsertData(decimal.Parse(lstClasses.Items[i].Value), "Saturday", int.Parse(txtSaturday.Text));

else

obj.UpdateData(decimal.Parse(lstClasses.Items[i].Value), "Saturday", int.Parse(txtSaturday.Text));

Page 144: Code Listing

}

}

}

}

Page 145: Code Listing

K:\SpringDale\Admin\web.config

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<system.web>

<authorization>

<allow roles="Administrators"/>

<deny roles="Teachers" />

<deny users="*"/>

</authorization>

</system.web>

</configuration>

Page 146: Code Listing

K:\SpringDale\App_Code\AttendanceCtrl.cs

using System;

using System.Collections.Generic;

using System.Data.SqlClient;

using System.Data;

using System.Web;

/// <summary>

///This class handles the complex relationship between

///student attendance and class

///use this to show and update data for attendance table

/// </summary>

///

[System.ComponentModel.DataObject]

public class AttendanceControler:IDisposable

{

private SqlConnection con;

private SqlDataAdapter da;

private DataTable dt=null;

public AttendanceControler(int ClassID)

{

string connString = System.Configuration.ConfigurationManager.ConnectionStrings["springdaleConnectionString1"].ConnectionString;

con = new SqlConnection(connString.ToString() );

try {

con.Open();

string commtxt = "Select AttendanceRec.*,(Select FirstName from StudentRec where AttendanceRec.EnrollNo=StudentRec.EnrollNo) as FirstName,";

Page 147: Code Listing

commtxt+=" (Select LastName from StudentRec where AttendanceRec.EnrollNo=StudentRec.EnrollNo) as LastName from AttendanceRec ";

commtxt += "where AttendanceRec.EnrollNo in (Select EnrollNo from StudentRec where ClassID=" + ClassID.ToString() +")";

da = new SqlDataAdapter(commtxt, con);

dt = new DataTable("ComplexAttendance");

da.Fill(dt);

}

catch (Exception ex)

{

throw ex;

}

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public DataTable GetData()

{

return dt;

}

public void Dispose()

{

Dispose(true);

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

Page 148: Code Listing

if (disposing) {

dt.Dispose();

da.Dispose();

con.Dispose();

}

else { }

}

~AttendanceControler() {

Dispose(false);

}

}

Page 149: Code Listing

K:\SpringDale\App_Code\GetAttendanceTable.cs

using System;

using System.Collections.Generic;

using System.Web;

using System.IO;

using System.Text;

using System.Xml;

using System.Web.Services;

/// <summary>

/// Summary description for GetAttendanceTable

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.

[System.Web.Script.Services.ScriptService]

public class GetAttendanceTable : System.Web.Services.WebService {

public GetAttendanceTable () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

[WebMethod]

public string GetClassListBox() {

string answer = "<select id='lstClass' style='width:50%'>";

ClassRecBLL obj = new ClassRecBLL();

Page 150: Code Listing

ClassRec.ClassRecDataTable dt = obj.GetUniqueName(); ;

foreach(ClassRec.ClassRecRow row1 in dt.Rows)

{

answer += "<option value='" + row1.ClassName + "'>" + row1.ClassName + "</option>";

}

answer+="</option>";

return answer;

}

[WebMethod]

public string GetSectionListBox()

{

string answer = "<select id='lstSection' style='width:50%'>";

ClassRecBLL obj = new ClassRecBLL();

ClassRec.ClassRecDataTable dt = obj.GetUniqueSection() ;

foreach (ClassRec.ClassRecRow row1 in dt.Rows)

{

answer += "<option value='" + row1.ClassSection + "'>" + row1.ClassSection + "</option>";

}

answer += "</option>";

return answer;

}

Page 151: Code Listing

[WebMethod]

public string GetDataTable(string ClassName,string ClassSection) {

//<input id="Radio1" type="radio" />

ClassRecBLL obj = new ClassRecBLL();

int classid = (int)obj.GetClassID(ClassName, ClassSection);

string answer = "<Table id='mainAttendance'><thead><tr class='trHead'><th class='thEnroll'>EnrollNo</th>";

answer+="<th class='thEnroll'>RollNo</th><th class='thFirst'>First Name</th><th class='thLast'>Last Name</th>";

answer += "<th class='thRadio'><a href='#' class='headLink' onclick='chooseAll(1);'>Present</a></th><th class='thRadio'>";

answer+="<a href='#' class='headLink' onclick='chooseAll(2);'>Absent</a></th>";

answer += "<th class='thRadio'><a href='#' class='headLink' onclick='chooseAll(3);'>";

answer+="Leave</a></th><th class='thRadio'><a href='#' class='headLink' onclick='chooseAll(4);'>Unknown</a></th></tr></thead><tbody>";

obj.Dispose();

StudentRecBLL obj1 = new StudentRecBLL();

StudentRecord.StudentRecDataTable dt = obj1.GetDataByClassID(classid);

int icounter=1;

string strclass="";

foreach (StudentRecord.StudentRecRow row1 in dt.Rows)

{

if (icounter % 2 == 0)

strclass = "trEven";

else

strclass = "trOdd";

answer += "<tr class='" + strclass + "'><td class='EnrollNo'>" + row1.EnrollNo.ToString() + "</td>";

Page 152: Code Listing

answer+="<td class='tdRollNo'>" + row1.RollNo.ToString() + "</td>";

answer+="<td class='tdFirstName'>" + row1.FirstName + "</td>";

answer += "<td class='tdFirstName'>" + row1.LastName + "</td>";

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' value='P' />" + "</td>";

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' value='A' />" + "</td>";

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' value='L'/>" + "</td>";

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' value='U'/>" + "</td>";

icounter+=1;

answer+="</tr>";

}

answer += "</tbody></table>";

obj1.Dispose();

return answer;

}

[WebMethod]

public string GetNewDataTable(string ClassName,string ClassSection,DateTime AttDate) {

DateTime validDate = DateTime.Now;

try

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

validDate = Convert.ToDateTime(AttDate.ToShortDateString(), dateInfo);

}

catch (Exception ex)

{

Page 153: Code Listing

return ex.Message + " " + AttDate.ToShortDateString();

}

ClassRecBLL obj = new ClassRecBLL();

string style1 = " background: #ffcccc;font-weight:bolder;";

int classid = (int)obj.GetClassID(ClassName, ClassSection);

string answer = "<Table id='mainAttendance'><thead><tr class='trHead'><th class='thEnroll'>EnrollNo</th>";

answer += "<th class='thEnroll'>RollNo</th><th class='thFirst'>First Name</th><th class='thLast'>Last Name</th>";

answer += "<th class='thRadio'><a href='javascript:void(0);' class='headLink' onclick='chooseAll(1);'>Present</a></th><th class='thRadio'>";

answer += "<a href='javascript:void(0);' class='headLink' onclick='chooseAll(2);'>Absent</a></th>";

answer += "<th class='thRadio'><a href='javascript:void(0);' class='headLink' onclick='chooseAll(3);'>";

answer += "Leave</a></th><th class='thRadio'><a href='javascript:void(0);' class='headLink' onclick='chooseAll(4);'>";

answer+="Unknown</a></th><th>%</th><th>Stat</th></tr></thead><tbody>";

obj.Dispose();

StudentRecBLL obj1 = new StudentRecBLL();

StudentRecord.StudentRecDataTable dt = obj1.GetDataByClassID(classid);

AttendanceRecBLL att_rec = new AttendanceRecBLL();

int icounter = 1;

string strclass = "";

foreach (StudentRecord.StudentRecRow row1 in dt.Rows)

{

Page 154: Code Listing

AttendanceRec.AttendanceRecDataTable att_dt = att_rec.GetRecordByDateEnroll(row1.EnrollNo, validDate);

string chk1, chk2, chk3, chk4;

chk1 = "";

chk2 = "";

chk3 = "";

chk4 = "";

if (att_dt.Rows.Count > 0)

{

if (att_dt.Rows[0]["AttendanceType"].ToString() == "P")

{

chk1 = "checked";

chk2 = "";

chk3 = "";

chk4 = "";

}

else if (att_dt.Rows[0]["AttendanceType"].ToString() == "A")

{

chk1 = "";

chk2 = "checked";

chk3 = "";

chk4 = "";

}

else if (att_dt.Rows[0]["AttendanceType"].ToString() == "L")

{

chk1 = "";

chk2 = "";

chk3 = "checked";

chk4 = "";

}

Page 155: Code Listing

else if (att_dt.Rows[0]["AttendanceType"].ToString() == "U")

{

chk1 = "";

chk2 = "";

chk3 = "";

chk4 = "checked";

}

}

if (icounter % 2 == 0)

strclass = "trEven";

else

strclass = "trOdd";

decimal? enroll = row1.EnrollNo;

//This has to be changed because percentage is shown according to the given date not the current date this to me is a bit of an error

float percentage = att_rec.PercentageAttendance(enroll.Value, AttDate, "P");

//att_rec.PercentageAttendance((decimal)9, AttDate, "P");

//float percentage = 0.0f;

if(percentage<50)

answer += "<tr style='" + style1 + "'><td class='EnrollNo'>" + row1.EnrollNo.ToString() + "</td>";

else

answer += "<tr class='" + strclass + "'><td class='EnrollNo'>" + row1.EnrollNo.ToString() + "</td>";

answer += "<td class='tdRollNo'>" + row1.RollNo.ToString() + "</td>";

answer += "<td class='tdFirstName'>" + row1.FirstName + "</td>";

answer += "<td class='tdFirstName'>" + row1.LastName + "</td>";

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' " + chk1 + " value='P' />" + "</td>";

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' " + chk2 + " value='A' />" + "</td>";

Page 156: Code Listing

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' " + chk3 + " value='L'/>" + "</td>";

answer += "<td class='tdRadio'><input type='radio' " + "Name='Att" + icounter.ToString() + "' " + chk4 + " value='U'/>" + "</td>";

answer += "<td>" + percentage.ToString() + "</td>";

answer += "<td><a href='javascript:void(0)' onclick='showChart(" + row1.EnrollNo.ToString() + ");'><img style='border:0;' src='http://learnasp.in/css/chart_bar.png' alt='X'/></a></td>";

icounter += 1;

answer += "</tr>";

}

answer += "</tbody></table>";

obj1.Dispose();

return answer;

//return AttDate.ToString();

}

[WebMethod]

public string GetDataTableForSearch(int ctrlNum, string searchStr)

{

//<input id="Radio1" type="radio" />

StudentRecBLL obj = null;

ClassRecBLL obj1 = null;

StudentRecord.StudentRecDataTable dt = null;

if (ctrlNum==1)

{

obj = new StudentRecBLL();

obj1 = new ClassRecBLL();

dt = obj.GetDataByEnrollNoEx(int.Parse(searchStr));

Page 157: Code Listing

}

else if (ctrlNum == 2)

{

obj = new StudentRecBLL();

obj1 = new ClassRecBLL();

dt = obj.GetDataByRollNo(int.Parse(searchStr));

}

else if (ctrlNum==3)

{

obj = new StudentRecBLL();

obj1 = new ClassRecBLL();

searchStr +="%";

dt = obj.GetDataByFirstName(searchStr);

}

else if (ctrlNum==4)

{

obj = new StudentRecBLL();

obj1 = new ClassRecBLL();

string[] temp = searchStr.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);

if (temp.Length >= 2)

{

int classid = (int)obj1.GetClassID(temp[0], temp[1]);

dt = obj.GetDataByClassID(classid);

}

}

Page 158: Code Listing

string answer = "<Table id='studentData'><thead><tr class='trHead'>";

answer += "<th class='thEnroll'> EnrollNo </th>";

answer += "<th class='thEnroll'> RollNo</th>";

answer += "<th class='thEnroll'>First Name </th>";

answer += "<th class='thEnroll'>Last Name</th>";

answer += "<th class='thEnroll'>Class</th>";

answer += "<th class='thEnroll'>Section</th>";

answer += "</thead><tbody>";

int icounter = 1;

string strclass = "";

foreach (StudentRecord.StudentRecRow row1 in dt.Rows)

{

if (icounter % 2 == 0)

strclass = "trEven";

else

strclass = "trOdd";

answer += "<tr class='" + strclass + "'><td class='EnrollNo'><a href='#' style='text-decoration:none;' onclick='openAttendanceRecord(" + row1.EnrollNo.ToString() + ");'>";

answer+=row1.EnrollNo.ToString() + "</a></td>";

answer += "<td class='tdRollNo'>" + row1.RollNo.ToString() + "</td>";

answer += "<td class='tdFirstName'>" + row1.FirstName + "</td>";

answer += "<td class='tdFirstName'>" + row1.LastName + "</td>";

answer += "<td class='tdFirstName'>" + row1.ClassName + "</td>";

answer += "<td class='tdFirstName'>" + row1.ClassSection + "</td>";

icounter += 1;

answer += "</tr>";

}

answer += "</tbody></table>";

obj1.Dispose();

Page 159: Code Listing

return answer;

}

[WebMethod]

public System.Data.DataTable GetDefaultingStudent(string ClassName, string ClassSection, float cutoffpercent)

{

AttendanceRecBLL obj = new AttendanceRecBLL();

return obj.DefaultingStudents(ClassName, ClassSection, cutoffpercent);

}

[WebMethod]

public string GetMonthlyAttendance(decimal Enroll, DateTime AttDate,string AttType )

{

AttendanceRecBLL obj = new AttendanceRecBLL();

Decimal? enrollno = Enroll;

return obj.PercentageMonthly(enrollno.Value, AttDate, AttType);

}

[WebMethod]

public string GetMonthlyAttendanceAll(decimal Enroll, DateTime AttDate)

{

AttendanceRecBLL obj = new AttendanceRecBLL();

Decimal? enrollno = Enroll;

return obj.PercentageAttAllMonthly(enrollno.Value, AttDate);

}

[WebMethod]

public string UpdateAttendance(string xmlstr,DateTime AttDate)

{

Page 160: Code Listing

String msg = "";

string enrollno = "", atttype = "";

AttendanceRecBLL obj = new AttendanceRecBLL();

XmlReader reader = XmlReader.Create(new StringReader(xmlstr));

try

{

reader.ReadStartElement();

int i = 0;

bool enroll = true;

while (reader.Read())

{

switch (reader.NodeType)

{

case XmlNodeType.Element:

if (reader.Name == "EnrollNo")

{

//reader.Read();

enroll = true;

i++;

}

else if (reader.Name == "AttType")

{

//reader.Read();

//atttype = reader.Value;

//msg += " AttType " + atttype ;

enroll = false;

i++;

}

break;

case XmlNodeType.Text:

Page 161: Code Listing

if (enroll!= true)

{

atttype = reader.Value;

i++;

}

else

{

enrollno = reader.Value;

i++;

}

break;

}

if (i == 4)

{

if (obj.IsRecordExist(decimal.Parse(enrollno), AttDate))

{

// msg = "Data Already Exists ";

if (obj.UpdateAttendance(decimal.Parse(enrollno), AttDate, atttype) == false)

{

msg = "Data Already Exists Unable to update";

//throw new Exception("Something went wrong while Updating record");

}

else

{

msg = "Data Updated " + AttDate.ToShortDateString();

}

}

else

{

//msg = "No records found.";

if (obj.AddAttendance(int.Parse(enrollno), AttDate, atttype) == false)

Page 162: Code Listing

throw new Exception("Something went wrong while Inserting record");

else

msg = "Data Added " + AttDate.ToShortDateString();

}

i = 0;

}

}

}

catch (Exception ex)

{

msg = "Problem : " + ex.Message + " enroll " + enrollno + " type " + atttype + " date " + AttDate.ToShortDateString();

}

return msg;

}

}

Page 163: Code Listing

K:\SpringDale\App_Code\GetTeachers.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Data.SqlClient;

using System.Data;

using System.Configuration;

/// <summary>

/// Summary description for GetTeachers

/// </summary>

[WebService(Namespace = "http://learnasp.in/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.

[System.Web.Script.Services.ScriptService]

public class GetTeachers : System.Web.Services.WebService {

public GetTeachers () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

/// <summary>

/// At present this method connects with the dummy

/// teachers table, in future this will connect with the

/// actual teachers table

/// </summary>

/// <returns></returns>

Page 164: Code Listing

[WebMethod]

public string GetTeachersList() {

String answer="";

SqlConnection con;

SqlDataAdapter da;

System.Data.DataTable dt;

string connString = ConfigurationManager.ConnectionStrings["springdaleConnectionString2"].ConnectionString;

con = new SqlConnection(connString.ToString());

try

{

con.Open();

string commtxt = "Select TeacherID,TeacherName from TeacherDummy";

da = new SqlDataAdapter(commtxt, con);

dt = new System.Data.DataTable("TeacherDummy");

da.Fill(dt);

answer = "<ul>";

foreach (DataRow dr in dt.Rows)

{

answer += "<li>" + dr[1].ToString() + "</li>";

}

answer += "</ul>";

dt.Dispose();

da.Dispose();

con.Close();

con.Dispose();

}

catch (Exception ex)

{

throw ex;

}

return answer;

}

Page 165: Code Listing

}

Page 166: Code Listing

K:\SpringDale\App_Code\HolidayList.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.IO;

using System.Text;

using System.Data;

using System.Data.SqlClient;

using System.Web.Services;

using System.Runtime.Serialization.Json;

using System.Web.Script.Serialization;

using System.Configuration;

using HolidayListTableAdapters;

/// <summary>

/// Manages the HolidayList Table and returns/updates all the data

/// </summary>

[WebService(Namespace = "http://learnasp.in/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.Web.Script.Services.ScriptService]

public class HolidayListSvc : System.Web.Services.WebService {

public HolidayListSvc () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

[WebMethod]

Page 167: Code Listing

public bool InsertHoliday(int dt_dd,int dt_mm,int dt_yyyy,string dt_desc) {

HolidayListXTableAdapter _adapter = new HolidayListXTableAdapter();

decimal? val= _adapter.MaxSno();

if (val.HasValue)

{

if (val > 0)

{

val = val + 1;

}

else

{

val = 1;

}

}

else

{

val = 1;

}

int res=_adapter.InsertQuery((decimal)val,(decimal)dt_dd, (decimal)dt_mm, (decimal)dt_yyyy, dt_desc);

return (res == 1);

}

[WebMethod]

public bool DeleteHoliday(int dt_dd, int dt_mm, int dt_yyyy)

{

HolidayListXTableAdapter _adapter = new HolidayListXTableAdapter();

int res = _adapter.DeleteDateQuery((decimal)dt_dd, (decimal)dt_mm, (decimal)dt_yyyy);

return (res == 1);

}

Page 168: Code Listing

[WebMethod]

public bool DeleteAllHolidays()

{

HolidayListXTableAdapter _adapter = new HolidayListXTableAdapter();

int res = _adapter.DeleteAllQuery();

return (res > 0);

}

[WebMethod]

public bool DeleteMonthHolidays(int dt_mm)

{

HolidayListXTableAdapter _adapter = new HolidayListXTableAdapter();

int res = _adapter.DeleteMonthQuery((decimal)dt_mm);

return (res > 0);

}

[WebMethod]

public bool DeleteSnoHolidays(int Sno)

{

HolidayListXTableAdapter _adapter = new HolidayListXTableAdapter();

int res = _adapter.DeleteOnSno((decimal)Sno);

return (res > 0);

}

[WebMethod]

public string GetAllHolidays(){

HolidayListXTableAdapter _adapter = new HolidayListXTableAdapter();

Page 169: Code Listing

System.Data.DataTable dt = _adapter.GetData();

var results = new List<object>();

foreach (DataRow row in dt.Rows)

{

var item = new Dictionary<string, string>();

foreach (DataColumn column in dt.Columns)

{

item.Add(column.ColumnName, row[column].ToString());

}

results.Add(item);

}

//return results;

string jsonstring = new JavaScriptSerializer().Serialize(results);

return jsonstring;

}

[WebMethod]

public HolidayList.HolidayListXDataTable GetAllHolidaysEx() {

HolidayListXTableAdapter _adapter = new HolidayListXTableAdapter();

return _adapter.GetData();

}

}

Page 170: Code Listing

K:\SpringDale\App_Code\LibraryManagement.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.IO;

using System.Text;

using System.Data;

using System.Data.SqlClient;

using System.Web.Services;

using System.Runtime.Serialization.Json;

using System.Web.Script.Serialization;

using System.Configuration;

/// <summary>

/// Summary description for LibraryManagement

/// </summary>

[WebService(Namespace = "http://learnasp.in/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.

[System.Web.Script.Services.ScriptService]

public class LibraryManagement : System.Web.Services.WebService {

public LibraryManagement () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

Page 171: Code Listing

[WebMethod]

public string getDataByAuthor(string authname)

{

BooksBLL obj = new BooksBLL();

System.Data.DataTable dt = obj.GetDataByAuthor(authname);

var results = new List<object>();

foreach (DataRow row in dt.Rows)

{

var item = new Dictionary<string, string>();

foreach (DataColumn column in dt.Columns)

{

item.Add(column.ColumnName, row[column].ToString());

}

results.Add(item);

}

//return results;

string jsonstring = new JavaScriptSerializer().Serialize(results);

return jsonstring;

}

[WebMethod]

public string getDataByTitle(string title)

{

BooksBLL obj = new BooksBLL();

System.Data.DataTable dt = obj.GetDataByTitle(title);

Page 172: Code Listing

var results = new List<object>();

foreach (DataRow row in dt.Rows)

{

var item = new Dictionary<string, string>();

foreach (DataColumn column in dt.Columns)

{

item.Add(column.ColumnName, row[column].ToString());

}

results.Add(item);

}

string jsonstring = new JavaScriptSerializer().Serialize(results);

return jsonstring;

}

[WebMethod]

public string getDataBySubject(string subject)

{

BooksBLL obj = new BooksBLL();

System.Data.DataTable dt = obj.GetDataBySubject(subject);

var results = new List<object>();

foreach (DataRow row in dt.Rows)

{

var item = new Dictionary<string, string>();

foreach (DataColumn column in dt.Columns)

{

item.Add(column.ColumnName, row[column].ToString());

}

Page 173: Code Listing

results.Add(item);

}

string jsonstring = new JavaScriptSerializer().Serialize(results);

return jsonstring;

}

[WebMethod]

public string getDataByPublisher(string subject)

{

BooksBLL obj = new BooksBLL();

System.Data.DataTable dt = obj.GetDataBySubject(subject);

var results = new List<object>();

foreach (DataRow row in dt.Rows)

{

var item = new Dictionary<string, string>();

foreach (DataColumn column in dt.Columns)

{

item.Add(column.ColumnName, row[column].ToString());

}

results.Add(item);

}

string jsonstring = new JavaScriptSerializer().Serialize(results);

return jsonstring;

}

Page 174: Code Listing

[WebMethod]

public string getDataByISBN(decimal isbn)

{

BooksBLL obj = new BooksBLL();

System.Data.DataTable dt = obj.GetDataByISBN(isbn);

var results = new List<object>();

foreach (DataRow row in dt.Rows)

{

var item = new Dictionary<string, string>();

foreach (DataColumn column in dt.Columns)

{

item.Add(column.ColumnName, row[column].ToString());

}

results.Add(item);

}

string jsonstring = new JavaScriptSerializer().Serialize(results);

return jsonstring;

}

[WebMethod]

public string getDataByBookNo(int bookno)

{

BooksBLL obj = new BooksBLL();

System.Data.DataTable dt = obj.GetDataByBookNo(bookno);

Page 175: Code Listing

var results = new List<object>();

foreach (DataRow row in dt.Rows)

{

var item = new Dictionary<string, string>();

foreach (DataColumn column in dt.Columns)

{

item.Add(column.ColumnName, row[column].ToString());

}

results.Add(item);

}

string jsonstring = new JavaScriptSerializer().Serialize(results);

return jsonstring;

}

[WebMethod]

public bool checkAccNo(decimal accno)

{

bool answer = false;

LibMemberBLL obj = new LibMemberBLL();

if(obj.GetDataByAccNo(accno)>0 && obj.GetDataByBooksLeft(accno)>0)

answer = true;

return answer;

}

Page 176: Code Listing

[WebMethod]

public bool issueBook(decimal accno, decimal bookno, string issuedate, string returndate)

{

bool ans = false;

decimal fine = 0;

IssuesReturnsBll obj = new IssuesReturnsBll();

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

DateTime validissueDate = Convert.ToDateTime(issuedate, dateInfo);

DateTime validreturnDate = Convert.ToDateTime(returndate, dateInfo);

//ans=obj.Adapter.IssueQuery(,bookno, accno, validissueDate, validreturnDate, fine);

//DateTime validreturnDate = new DateTime();

//validreturnDate.ToShortDateString();

SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["springdaleConnectionString1"].ConnectionString);

con.Open();

string commtext = "Select * from Members where AccNo=" + accno.ToString();

SqlDataAdapter da = new SqlDataAdapter(commtext, con);

System.Data.DataTable dt = new System.Data.DataTable();

da.Fill(dt);

if (dt.Rows.Count > 0)

{

int i = int.Parse(dt.Rows[0]["BooksLeft"].ToString());

if (i > 0)

{

decimal? maxid = obj.Adapter.GetMaxTransactID();

if (maxid == null)

maxid = 0;

Page 177: Code Listing

else

{

maxid += 1;

}

IssuesReturnsBll obj_temp = new IssuesReturnsBll();

ans=obj_temp.IssueBook(bookno,accno,validissueDate,validreturnDate,0);

string comtxt = "Update Members set BooksLeft=" + (i - 1).ToString() + " where AccNo=" + accno.ToString();

SqlCommand comm = new SqlCommand(comtxt, con);

comm.ExecuteNonQuery();

comm.Dispose();

ans = true;

}

}

con.Close();

con.Dispose();

////@TransactID, @BookNo, @AccNo, @IssueDate, @DueDate, @Fine)

//ans=obj.IssueBook(bookno, accno, validissueDate, validreturnDate, fine);

return ans;

}

[WebMethod]

public bool ReturnBook(decimal transactid,decimal accno,decimal bookno,string returndate)

{

IssuesReturnsBll obj_temp = new IssuesReturnsBll();

IssueReturn.IssuesReturnsDataTable dt = obj_temp.GetDataByTransactionID(transactid);

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

DateTime validdate = Convert.ToDateTime(returndate, dateInfo);

Page 178: Code Listing

DateTime validissuedate = Convert.ToDateTime(dt[0]["IssueDate"].ToString(), dateInfo);

DateTime validduedate = Convert.ToDateTime(dt[0]["DueDate"].ToString(), dateInfo);

LibMemberBLL libobj = new LibMemberBLL();

bool answer = false;

if (obj_temp.ReturnQuery(validissuedate, validduedate, validdate, accno, bookno)) { }

int booksleft=(int)libobj.GetDataByBooksLeft(accno);

booksleft+=1;

answer = libobj.UpdateBooksLeft(accno, booksleft);

//answer = obj_temp.ReturnQuery(validissuedate, validduedate, validdate, accno, bookno);

return answer;

//return validduedate.ToString();

}

[WebMethod]

public string getDataForMember(decimal accno)

{

IssuesReturnsBll objbll = new IssuesReturnsBll();

DataTable dt = objbll.GetDataForMember(accno);

string answer = "";

if (dt.Rows.Count > 0)

{

foreach (DataRow dr in dt.Rows)

{

for (int i = 0; i < dt.Columns.Count; i++)

{

if (dr[i].ToString() != "")

answer += dr[i].ToString() + "=";

Page 179: Code Listing

}

answer = answer.Substring(0, answer.Length - 1);

answer += "^";

}

answer = answer.Substring(0, answer.Length - 1);

}

else

answer = "";

return answer;

}

}

Page 180: Code Listing

K:\SpringDale\App_Code\ManageUsersRoles.cs

using System;

using System.Collections.Generic;

using System.Collections;

using System.Web.Security;

using System.Web;

using System.Web.Services;

using ManageUsersTableAdapters;

using System.Text.RegularExpressions;

using Microsoft.VisualBasic;

/// <summary>

/// Summary description for ManageUsersRoles

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.

[System.Web.Script.Services.ScriptService]

public class ManageUsersRoles : System.Web.Services.WebService {

public ManageUsersRoles () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

[WebMethod()]

public bool DeleteUser(string username) {

return Membership.DeleteUser(username, true);

}

Page 181: Code Listing

[WebMethod()]

public string[] GetAllUsers()

{

MembershipUserCollection objarr= Membership.GetAllUsers();

string[] arr=new string[objarr.Count -1];

int i = 0;

foreach (MembershipUser us1 in objarr)

{

arr[i++] = us1.UserName.ToString();

}

return arr;

}

[WebMethod()]

public string[] GetAllUsersEx(string username) {

//Regex regex = new Regex(username + "*");

MembershipUserCollection objarr = Membership.GetAllUsers();

ArrayList arrlst = new ArrayList();

//string[] arr = new string[objarr.Count - 1];

ManageUsersTableAdapters.tableUsersTableAdapter obj = new ManageUsersTableAdapters.tableUsersTableAdapter();

username += "%";

ManageUsers.tableUsersDataTable dt = obj.GetDataByUserName(username);

int j=0;

foreach (ManageUsers.tableUsersRow tr in dt.Rows)

{

arrlst.Add(tr.UserName);

j++;

Page 182: Code Listing

}

string[] arr = new string[j];

arrlst.CopyTo(arr);

obj.Dispose();

return arr;

}

[WebMethod()]

public string CreateNewUser(string username, string password, string email)

{

string answer = "User Creation Successfull";

MembershipCreateStatus status;

try {

MembershipUser user1 = Membership.CreateUser(username, password, email, "fgf", "fggf", true,out status);

if (user1 == null)

{

answer = status.ToString();

}

else {

user1.IsApproved = true;

}

}

catch(Exception ex) {

answer = "Something Went Wrong " +ex.Message ;

}

return answer;

}

Page 183: Code Listing

/// <summary>

/// Overloaded method which creates a new user with email and security question

/// </summary>

/// <param name="username">users login name</param>

/// <param name="password">users login password</param>

/// <param name="email">email to be used for retreiving password etc</param>

/// <param name="securityQ">the question user must reply before password retrieval is allowed</param>

/// <param name="securityanswer">the answer to the user given question</param>

/// <returns>message to indicate success or failure</returns>

[WebMethod()]

public string CreateNewUser(string username, string password, string email,string securityQ,string securityanswer)

{

string answer = "User Creation Successfull";

MembershipCreateStatus status;

try

{

MembershipUser user1 = Membership.CreateUser(username, password, email, securityQ,securityanswer, true, out status);

if (user1 == null)

{

answer = status.ToString();

}

else

{

user1.IsApproved = true;

}

}

catch (Exception ex)

{

Page 184: Code Listing

answer = "Something Went Wrong " + ex.Message;

}

return answer;

}

[WebMethod()]

public string[] GetAllRoles() {

return Roles.GetAllRoles();

}

[WebMethod()]

public string[] GetUserRoles(string username)

{

return Roles.GetRolesForUser(username);

}

[WebMethod()]

public string GetUserRolesTable(string username)

{

int i, j;

string strclass="";

string answer = "<Table id='mainUsersRoles'><thead><tr class='trHead'><th class='thEnroll'>Del</th><th class='thEnroll'>UserName</th>";

string[] roles1 = GetAllRoles();

for (i = 0; i < roles1.Length; i++)

{

answer += "<th class='thRadio'><a href='#' class='headLink' onclick='chooseAll(" + i.ToString() + ");'>" + roles1[i] + "</a></th>";

}

Page 185: Code Listing

answer += "</tr></thead><tbody>";

string[] users=GetAllUsersEx(username);

for (i = 0; i < users.Length; i++)

{

if ((i+1) % 2 == 0)

strclass = "trEven";

else

strclass = "trOdd";

answer += "<tr class='" + strclass + "'><td class='tdAText' align='center'><a href='#' Name='Del";

answer += users[i] + "' onclick='delUser(\"" + users[i] + "\");'><img border='0' alt='Del' src='http://learnasp.in/css/remove.png' /></a></td>";

answer += "<td class='EnrollNo'>" + users[i] + "</td>";

//<input id="Checkbox1" type="checkbox" />

for (j = 0; j < roles1.Length; j++)

{

answer += "<td class='tdRadio' align='center'><input type='checkbox' onclick='updateUser(this);'" + "Name='" + users[i] + "' value='" + roles1[j] + "'";

if(Roles.IsUserInRole(users[i],roles1[j]))

answer += "checked='yes'/>" + "</td>";

else

answer += "/>" + "</td>";

}

answer += "</tr>";

}

Page 186: Code Listing

answer += "</tbody></table>";

return answer;

}

[WebMethod()]

public bool putUserInRole(string username, string rolename)

{

bool answer = false;

if (Roles.IsUserInRole(username, rolename) == false)

{

Roles.AddUserToRole(username, rolename);

answer = true;

}

return answer;

}

[WebMethod()]

public bool removeUserFromRole(string username, string rolename)

{

bool answer = false;

if (Roles.IsUserInRole(username, rolename) == true)

{

Roles.RemoveUserFromRole(username, rolename);

answer = true;

}

return answer;

}

[WebMethod()]

public bool addRole(string rolename) {

bool answer = false;

if (Roles.RoleExists(rolename) == false)

Page 187: Code Listing

{

Roles.CreateRole(rolename);

answer = true;

}

return answer;

}

[WebMethod()]

public bool removeRole(string rolename)

{

bool answer = false;

if (Roles.RoleExists(rolename) )

{

Roles.DeleteRole(rolename);

answer = true;

}

return answer;

}

}

Page 188: Code Listing

K:\SpringDale\App_Code\MarksWeb.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Data;

using System.Data.SqlClient;

using System.Configuration;

using System.Text.RegularExpressions;

/// <summary>

/// Summary description for MarksWeb

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.Web.Script.Services.ScriptService]

public class MarksWeb : System.Web.Services.WebService {

public MarksWeb () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

[WebMethod]

public string getClasses(string userid)

{

// ;

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(userid);

Page 189: Code Listing

var alpha = match.Groups["Alpha"].Value;

var teacherid = match.Groups["Numeric"].Value;

string ans = "";

string constr = ConfigurationManager.ConnectionStrings["springdaleConnectionString2"].ToString();

SqlConnection con = new SqlConnection(constr);

con.Open();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter("SELECT ClassRec.ClassName + '-' + ClassRec.ClassSection AS ClassName, SubjectRec.SubjectID," +

" SubjectRec.SubjectName, SubjectRec.TeacherID, ClassRec.ClassID FROM " +

"SubjectRec INNER JOIN ClassRec ON SubjectRec.ClassID = ClassRec.ClassID " +

"WHERE (SubjectRec.TeacherID =" + teacherid.ToString() + ")",con);

da.Fill(dt);

ans = "<select id='cmbclasses' onchange='classes_change();'>";

foreach (DataRow dr in dt.Rows)

{

ans += "<option value='" + dr["ClassID"] + "'>" + dr["ClassName"] + "</option>";

}

ans += "</select>";

return ans;

}

[WebMethod]

public string getSubjects(string userid,decimal classid)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(userid);

var alpha = match.Groups["Alpha"].Value;

var teacherid = match.Groups["Numeric"].Value;

string ans = "";

string constr = ConfigurationManager.ConnectionStrings["springdaleConnectionString2"].ToString();

SqlConnection con = new SqlConnection(constr);

Page 190: Code Listing

con.Open();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter("SELECT SubjectName, SubjectID, ClassID, TeacherID FROM" +

" SubjectRec WHERE (ClassID = " + classid.ToString() + ") AND (TeacherID = " +teacherid.ToString() + ")", con);

da.Fill(dt);

ans = "<select id='cmbSubjects'>";

foreach (DataRow dr in dt.Rows)

{

ans += "<option value='" + dr["SubjectID"] + "'>" + dr["SubjectName"] + "</option>";

}

ans += "</select>";

return ans;

}

[WebMethod]

public string getTerms(string classname)

{

// ;

string ans = "";

string constr = ConfigurationManager.ConnectionStrings["springdaleConnectionString2"].ToString();

SqlConnection con = new SqlConnection(constr);

con.Open();

DataTable dt = new DataTable();

string[] classarr=classname.Split('-');

SqlDataAdapter da = new SqlDataAdapter("SELECT TermID, TermName, MaxMarks, PassMarks, Weightage, " +

"Classes FROM ExamSetting WHERE (Classes = '" + classarr[0] + "')", con);

da.Fill(dt);

ans = "<select id='cmbTerms' >";

foreach (DataRow dr in dt.Rows)

{

Page 191: Code Listing

ans += "<option value='" + dr["TermID"] + "'>" + dr["TermName"] + "</option>";

}

ans += "</select>";

return ans;

}

[WebMethod]

public string getMarksTable(string subject, decimal termid, decimal classid)

{

string ans = "";

StudentRecBLL obj = new StudentRecBLL();

StudentRecord.StudentRecDataTable dt = obj.GetDataByClassID((int)classid);

int i = 1;

ans = "<table id='mainmarkstable'><thead><th>EnrollNo</th><th>Name</th><th>Marks</th></thead><tbody>";

foreach (DataRow dr in dt.Rows)

{

ans+="<tr><td id='enroll" + i.ToString() + "'>" + dr["EnrollNo"].ToString() + "</td>";

ans+= "<td>" + dr["FirstName"].ToString() + " " + dr["LastName"].ToString() + "</td>";

ans += "<td>" + "<input id='txt" + i.ToString() + "' type='text' />" + "</td></tr>";

i = i + 1;

}

ans += "</tbody></table>";

return ans;

}

[WebMethod]

public string updateMarks(decimal enroll,decimal marks,decimal termid,string classes,decimal subjectid)

Page 192: Code Listing

{

string ans="false";

MarksBLL obj = new MarksBLL();

string[] classarr = classes.Split('-');

decimal marksid = getMaxMarksID();

int j=(obj.InsertData(marksid,enroll, marks, termid, classarr[0],subjectid));

if (j > 0)

ans = "true";

return ans;

}

[WebMethod]

public decimal getMaxMarksID()

{

MarksBLL obj=new MarksBLL();

return obj.GetMaxID();

}

}

Page 193: Code Listing

K:\SpringDale\App_Code\TimeTableManager.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Data;

using System.Data.SqlClient;

/// <summary>

/// Summary description for TimeTableManager

/// </summary>

[WebService(Namespace = "http://learnasp.in/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.

[System.Web.Script.Services.ScriptService]

public class TimeTableManager : System.Web.Services.WebService {

public TimeTableManager () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

[WebMethod]

public string GetClassListBox() {

string answer="<select id='allclasses'>";

ClassRecBLL class_obj = new ClassRecBLL();

DataTable dt = class_obj.GetClassSectAdd();

foreach (DataRow dr in dt.Rows)

Page 194: Code Listing

{

answer += "<option value='" + dr["ClassID"].ToString() + "'>" + dr["Class"].ToString() + "</option>";

}

answer += "</select>";

return answer;

}

[WebMethod]

public string GetAllSubjects(decimal classid)

{

string answer = "";

string[] colors = { "#f5565d", "#5674f5", "#f071cb", "#f1eb4d", "#73eb6a", "#6aebe9", "#ecae42","#da7148", "#5242ec", "#42ec9e",

"#d68f42"};

SubjectsBLL sub_obj = new SubjectsBLL();

SubjectRec.SubjectRecDataTable dt = sub_obj.GetData(classid);

int i = 0;

foreach (DataRow dr in dt.Rows)

{

string subname=dr["SubjectName"].ToString();

subname=subname.Replace(" ","");

if (i >= colors.Length)

i = 0;

for (int j = 0; j < int.Parse(dr["NumPeriodsPerWeek"].ToString()); j++)

{

answer += "<div class='subjects draggable' id='" + subname + "' style='background-color:" + colors[i] + ";'>" +

dr["SubjectID"].ToString() + "/" + dr["SubjectName"].ToString() + "/" + dr["TeacherID"].ToString() + "/[";

Page 195: Code Listing

answer += (j+1).ToString() + "]</div>";

}

i++;

}

return answer;

}

[WebMethod]

public string GetTimeTableGrid(decimal classid)

{

TimeTableMasterBLL tt_obj = new TimeTableMasterBLL();

TimeTableRealBLL ttr_obj = new TimeTableRealBLL();

string answer = "";

string[] days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };

string[] colors = { "#f5565d", "#5674f5", "#f071cb", "#f1eb4d", "#73eb6a", "#6aebe9", "#ecae42","#da7148", "#5242ec", "#42ec9e",

"#d68f42"};

answer = "<table width='100%' border='1' id='mytimetable'><tbody>";

var m = 0;

for (int j = 0; j < days.Length - 1; j++)

{

TimeTableMaster.TimeTableMasterDataTable dt = tt_obj.GetData(classid, days[j]);

if (dt.Rows.Count > 0)

{

answer += "<tr style='border:1px solid;'><td style='width:100px;height:85px;'><b>" + dt[0]["DayName"].ToString() + "</b></td>";

for (int i = 1; i <= int.Parse(dt[0]["NumPeriods"].ToString()); i++)

{

TimeTableReal.TimeTableDataTable dt_real = ttr_obj.getData(classid, days[j],i);

if (dt_real.Rows.Count > 0)

{

Page 196: Code Listing

SubjectsBLL sub_obj = new SubjectsBLL();

SubjectRec.SubjectRecDataTable dt_sub = sub_obj.GetDataBySubjectID((decimal)dt_real[0]["SubjectID"]);

if (dt_sub.Rows.Count > 0)

{

answer += "<td style='width:100px;height:85px;background-color:" + colors[int.Parse(dt_real[0]["SubjectID"].ToString())-1]

+ ";'>" + dt_real[0]["SubjectID"] + "/" + dt_sub[0]["SubjectName"]

+ "/" + dt_real[0]["TeacherID"] + "</td>";

}

else

{

answer += "<td style='width:100px;height:85px;background-color:" + colors[int.Parse(dt_real[0]["SubjectID"].ToString())-1]

+ ";'>" + dt_real[0]["SubjectID"] + "/UNKNOWN"

+ "/" + dt_real[0]["TeacherID"] + "</td>";

}

}

else

{

answer += "<td>&nbsp;</td>";

}

ttr_obj.deleteQuery(classid, days[j], i);

}

answer += "</tr>";

m = int.Parse(dt[0]["NumPeriods"].ToString());

}

else

{

answer += "<tr style='border:1px solid;'><td style='width:100px;height:85px;'><b>" + days[j] + "</b></td>";

for (int i = 1; i <= m; i++)

Page 197: Code Listing

{

TimeTableReal.TimeTableDataTable dt_real2 = ttr_obj.getData(classid, days[j], i);

if (dt_real2.Rows.Count > 0)

{

SubjectsBLL sub_obj2 = new SubjectsBLL();

SubjectRec.SubjectRecDataTable dt_sub2 = sub_obj2.GetDataBySubjectID((decimal)dt_real2[0]["SubjectID"]);

if (dt_sub2.Rows.Count > 0)

{

answer += "<td style='width:100px;height:85px;;background-color:" + colors[int.Parse(dt_real2[0]["SubjectID"].ToString()) - 1]

+";'>" + dt_real2[0]["SubjectID"] + "/" + dt_sub2[0]["SubjectName"]

+ "/" + dt_real2[0]["TeacherID"] + "</td>";

}

else

{

answer += "<td style='width:100px;height:85px;background-color:" + colors[int.Parse(dt_real2[0]["SubjectID"].ToString()) - 1]

+";'>" + dt_real2[0]["SubjectID"] + "/UNKNOWN"

+ "/" + dt_real2[0]["TeacherID"] + "</td>";

}

}

else

{

answer += "<td style='width:100px;height:85px;'>&nbsp;</td>";

}

ttr_obj.deleteQuery(classid, days[j], i);

}

answer += "</tr>";

}

dt.Dispose();

Page 198: Code Listing

}

answer+="</tbody></table>";

return answer;

}

[WebMethod]

public bool insertInTimeTable(decimal ClassID, string DayName, int PeriodNum, decimal SubjectID, decimal TeacherID)

{

TimeTableRealBLL tt_obj = new TimeTableRealBLL();

return (tt_obj.insertQuery(ClassID, DayName, PeriodNum, SubjectID, TeacherID) > 0);

}

}

Page 199: Code Listing

K:\SpringDale\App_Code\BLL\AttendanceRecBLL.cs

using System;

using System.Data.SqlClient;

using System.Collections.Generic;

using System.Xml;

using System.Xml.Serialization;

using System.Web;

using System.Data;

using AttendanceRecTableAdapters;

/// <summary>

/// Summary description for AttendanceRecBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class AttendanceRecBLL:IDisposable

{

private AttendanceRecTableAdapter _attendanceAdapter = null;

public AttendanceRecBLL()

{

//

// TODO: Add constructor logic here

//

_attendanceAdapter = new AttendanceRecTableAdapter();

}

public AttendanceRecTableAdapter Adapter

{

get

Page 200: Code Listing

{

if (_attendanceAdapter == null)

_attendanceAdapter = new AttendanceRecTableAdapter ();

return _attendanceAdapter;

}

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public AttendanceRec.AttendanceRecDataTable GetData()

{

return _attendanceAdapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, false)]

public bool AddAttendance(int EnrollNo,DateTime AttDate,string AttType)

{

int ans = 0;

decimal? sno = null; ;

decimal? enroll = null;

DateTime validDate = DateTime.Now;

try

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

validDate = Convert.ToDateTime(AttDate, dateInfo);

Page 201: Code Listing

}

catch (Exception ex)

{

throw new Exception("GetDataByDateEnroll in IsRecordExist has thrown an exception : " + ex.Message);

}

try

{

sno = _attendanceAdapter.GetMaxSNo() + 1;

if (sno == null)

sno = 1;

enroll = EnrollNo;

//ans = _attendanceAdapter.InsertQuery((decimal)sno.Value , (decimal)enroll.Value , AttDate.ToShortDateString(), AttType);

ans = _attendanceAdapter.InsertQuery((decimal)sno.Value, (decimal)enroll.Value, validDate.ToShortDateString(), AttType);

}

catch (Exception ex)

{

throw new Exception("BLL sno="+sno.Value+" enrol " + enroll.Value + " " + ex.Message);

}

return (ans == 1);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, false)]

public bool UpdateAttendance(decimal? EnrollNo, DateTime AttDate,string AttType) {

int ans = 0;

DateTime validDate=DateTime.Now;

try

Page 202: Code Listing

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

validDate= Convert.ToDateTime(AttDate, dateInfo);

}

catch (Exception ex)

{

throw new Exception("GetDataByDateEnroll in IsRecordExist has thrown an exception : " + ex.Message);

}

try {

ans=_attendanceAdapter.UpdateQuery(AttType, EnrollNo, validDate.ToShortDateString());

}

catch (Exception ex) {

throw new Exception("UpdateAttendance has thrown an exception : " + ex.Message);

}

return (ans > 0);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public bool IsRecordExist(decimal? EnrollNo, DateTime AttDate)

{

bool ans=false;

AttendanceRec.AttendanceRecDataTable dt=null;

try

{

Page 203: Code Listing

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

DateTime validDate = Convert.ToDateTime(AttDate, dateInfo);

dt = _attendanceAdapter.GetDataByDateEnroll(validDate.ToShortDateString(), EnrollNo);

if (dt.Rows.Count > 0)

ans = true;

}

catch (Exception ex)

{

throw new Exception("GetDataByDateEnroll in IsRecordExist has thrown an exception : " + ex.Message);

}

return ans;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public AttendanceRec.AttendanceRecDataTable GetRecordByDateEnroll(decimal? EnrollNo, DateTime AttDate)

{

AttendanceRec.AttendanceRecDataTable dt = null;

try

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

Page 204: Code Listing

dateInfo.ShortDatePattern = "dd/MM/yyyy";

DateTime validDate = Convert.ToDateTime(AttDate, dateInfo);

dt = _attendanceAdapter.GetDataByDateEnroll(validDate.ToShortDateString(), EnrollNo);

}

catch (Exception ex)

{

throw new Exception("GetRecordByDateEnroll has thrown an exception : " + ex.Message);

}

return dt;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public float PercentageAttendance(decimal? EnrollNo, DateTime AttDate, string AttType)

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

DateTime validDate = Convert.ToDateTime(AttDate, dateInfo);

int present=(int)_attendanceAdapter.AttTypeTotal(EnrollNo.Value, "P",validDate.ToShortDateString());

int absent = (int)_attendanceAdapter.AttTypeTotal(EnrollNo.Value, "A", validDate.ToShortDateString());

int leave = (int)_attendanceAdapter.AttTypeTotal(EnrollNo.Value, "L", validDate.ToShortDateString());

int unknown = (int)_attendanceAdapter.AttTypeTotal(EnrollNo.Value, "U", validDate.ToShortDateString());

Page 205: Code Listing

float total = (present + absent + unknown);

float percentage = 0.0f;

if (AttType == "P")

percentage = (present / total) * 100;

if (AttType == "A")

percentage = (absent / total) * 100;

if (AttType == "L")

percentage = (leave / total) * 100;

if (AttType == "U")

percentage = (unknown / total) * 100;

return (float) Math.Round(percentage,2);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public string PercentageMonthly(decimal? EnrollNo, DateTime AttDate, string AttType)

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

DateTime validDate = Convert.ToDateTime(AttDate, dateInfo);

int finalm = validDate.Month;

int i;

int present, absent, leave, unknown;

float total;

float percentage;

DateTime dt1 = new DateTime(validDate.Year, 1, 1);

string arr = "";// finalm.ToString() + "," + validDate.ToShortDateString() + ":" + EnrollNo.Value.ToString() + "," + AttDate.ToShortDateString() + ":";

Page 206: Code Listing

string constr = System.Configuration.ConfigurationManager.ConnectionStrings["springdaleConnectionString1"].ConnectionString;

string comtext="";

//@EnrollNo) AND (AttendanceType = @AttType) AND (MONTH(AttendanceDate) = @Month) AND (YEAR(AttendanceDate) = @Year)";

SqlConnection con = new SqlConnection(constr);

try {

con.Open();

}

catch (Exception ex) { }

int mnth = 1;

for (i = 0; i < finalm*2; i=i+2)

{

SqlCommand com = new SqlCommand();

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'P') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

present = (int)com.ExecuteScalar();

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'A') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

absent = (int)com.ExecuteScalar();

Page 207: Code Listing

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'L') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

leave = (int)com.ExecuteScalar();

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'U') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

unknown = (int)com.ExecuteScalar();

//(int)_attendanceAdapter.AttCountMonthly(9, "P", (decimal)i + 1, (decimal)validDate.Year);

/*int absent = (int)_attendanceAdapter.AttCountMonthly(9, "A", 1, 2012);

int leave = (int)_attendanceAdapter.AttCountMonthly(EnrollNo.Value, "L", i, validDate.Year);

int unknown = (int)_attendanceAdapter.AttCountMonthly(EnrollNo.Value, "U", i, validDate.Year);*/

total = (present + absent + unknown);

percentage = 0.0f;

if (AttType == "P")

{

if (present > 0)

percentage = (present / total) * 100;

else

percentage = 0;

Page 208: Code Listing

}

if (AttType == "A")

percentage = (absent / total) * 100;

if (AttType == "L")

percentage = (leave / total) * 100;

if (AttType == "U")

percentage = (unknown / total) * 100;

if (percentage == float.PositiveInfinity || percentage== float.NegativeInfinity || percentage == float.NaN)

percentage = 0.0f;

arr += dt1.ToString("MMM");

dt1=dt1.AddMonths(1);

arr += "," + percentage.ToString() + ":";

com.Dispose();

mnth += 1;

}

arr = arr.Substring(0, arr.Length - 1);

con.Dispose();

return arr;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, false)]

public string PercentageAttAllMonthly(decimal? EnrollNo, DateTime AttDate)

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "MM/dd/yyyy";

DateTime validDate = Convert.ToDateTime(AttDate, dateInfo);

int finalm = validDate.Month;

int i;

Page 209: Code Listing

int present, absent, leave, unknown;

float total;

float percentageP,percentageA,percentageL,percentageU;

DateTime dt1 = new DateTime(validDate.Year, 1, 1);

string arr = "";// finalm.ToString() + "," + validDate.ToShortDateString() + ":" + EnrollNo.Value.ToString() + "," + AttDate.ToShortDateString() + ":";

string constr = System.Configuration.ConfigurationManager.ConnectionStrings["springdaleConnectionString1"].ConnectionString;

string comtext = "";

//@EnrollNo) AND (AttendanceType = @AttType) AND (MONTH(AttendanceDate) = @Month) AND (YEAR(AttendanceDate) = @Year)";

SqlConnection con = new SqlConnection(constr);

try

{

con.Open();

}

catch (Exception ex) { }

int mnth = 1;

for (i = 0; i < finalm * 2; i = i + 2)

{

SqlCommand com = new SqlCommand();

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'P') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

present = (int)com.ExecuteScalar();

Page 210: Code Listing

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'A') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

absent = (int)com.ExecuteScalar();

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'L') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

leave = (int)com.ExecuteScalar();

comtext = "SELECT COUNT(*) AS Expr1 FROM AttendanceRec WHERE (EnrollNo = " + EnrollNo.Value.ToString();

comtext += ") AND (AttendanceType = 'U') AND (MONTH(AttendanceDate) = " + (mnth).ToString();

comtext += ") AND (YEAR(AttendanceDate) = " + validDate.Year + ")";

com.CommandText = comtext;

com.Connection = con;

unknown = (int)com.ExecuteScalar();

//(int)_attendanceAdapter.AttCountMonthly(9, "P", (decimal)i + 1, (decimal)validDate.Year);

/*int absent = (int)_attendanceAdapter.AttCountMonthly(9, "A", 1, 2012);

int leave = (int)_attendanceAdapter.AttCountMonthly(EnrollNo.Value, "L", i, validDate.Year);

int unknown = (int)_attendanceAdapter.AttCountMonthly(EnrollNo.Value, "U", i, validDate.Year);*/

total = (present + absent + unknown);

Page 211: Code Listing

percentageP = 0.0f;

if (present > 0)

percentageP = (present / total) * 100;

else

percentageP = 0;

if (absent > 0)

percentageA = (absent / total) * 100;

else

percentageA = 0;

if (leave > 0)

percentageL = (leave / total) * 100;

else

percentageL = 0;

if (unknown > 0)

percentageU = (unknown / total) * 100;

else

percentageU = 0;

arr += dt1.ToString("MMM");

dt1 = dt1.AddMonths(1);

arr += "," + percentageP.ToString() + "," + percentageA.ToString() + "," + percentageL.ToString() + "," +percentageU.ToString() + ":";

com.Dispose();

mnth += 1;

}

arr = arr.Substring(0, arr.Length - 1);

con.Dispose();

return arr;

}

Page 212: Code Listing

public DataTable DefaultingStudents(string ClassName, string ClassSection, float percentagelimit)

{

String answer="Hello";

ClassRecBLL crb = new ClassRecBLL();

int classid = (int)crb.GetClassID(ClassName, ClassSection);

string constr = System.Configuration.ConfigurationManager.ConnectionStrings["springdaleConnectionString1"].ConnectionString;

crb.Dispose();

SqlConnection con = new SqlConnection(constr);

con.Open();

SqlDataAdapter da = new SqlDataAdapter("Select * from StudentRec where ClassID=" + classid.ToString(), con);

System.Data.DataTable dt = new System.Data.DataTable();

da.Fill(dt);

DataTable newdt = new DataTable("mytable");

DateTime tdate = DateTime.Now;

newdt.Columns.Add(new DataColumn("EnrollNo",Type.GetType("System.Decimal")));

newdt.Columns.Add(new DataColumn("FirstName", Type.GetType("System.String")));

newdt.Columns.Add(new DataColumn("LastName", Type.GetType("System.String")));

newdt.Columns.Add(new DataColumn("FathersName", Type.GetType("System.String")));

newdt.Columns.Add(new DataColumn("Attendance", Type.GetType("System.Decimal")));

newdt.Columns.Add(new DataColumn("Email", Type.GetType("System.String")));

int j = 0;

foreach (DataRow dr in dt.Rows)

{

string result = PercentageAttAllMonthly((decimal)dr["EnrollNo"], tdate);

string[] first = result.Split(':');

float sum = 0;

int i;

for (i = 0; i < first.Length; i++)

Page 213: Code Listing

{

string[] second = first[i].Split(',');

float perP = float.Parse(second[1]);

sum += perP;

}

sum=sum/i;

if (sum < percentagelimit)

{

//this wil be replaced by Dataset method once the table structure is finalized

SqlDataAdapter da2 = new SqlDataAdapter("Select * from StudentPersonal where EnrollNo=" + dr["EnrollNo"].ToString(), con);

DataTable dt2 = new DataTable();

da2.Fill(dt2);

DataRow newdr = newdt.NewRow();

newdr["EnrollNo"] = dr["EnrollNo"];

newdr["FirstName"] = dr["FirstName"];

newdr["LastName"] = dr["LastName"];

newdr["FathersName"] = dt2.Rows[0]["FathersName"];

newdr["Email"] = dt2.Rows[0]["FathersEmail"];

newdr["Attendance"] = sum;

j = j + 1;

newdt.Rows.Add(newdr);

newdt.AcceptChanges();

dt2.Dispose();

da2.Dispose();

}

}

return newdt;

Page 214: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public DataTable GetMonthlyAttendance(decimal enrollno)

{

DataTable dt;

dt=new DataTable("myattendance");

dt.Columns.Add(new DataColumn("Month", Type.GetType("System.String")));

dt.Columns.Add(new DataColumn("Present", Type.GetType("System.Decimal")));

dt.Columns.Add(new DataColumn("Absent", Type.GetType("System.Decimal")));

dt.Columns.Add(new DataColumn("Leave", Type.GetType("System.Decimal")));

dt.AcceptChanges();

string[] mnths = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };

DateTime dttime=DateTime.Now;

for (int i = 0; i < 12; i++)

{

DataRow dr = dt.NewRow();

dr[0] = mnths[i];

dr[1] = _attendanceAdapter.AttCountMonthly(enrollno, "P", (i + 1), (decimal)dttime.Year);

dr[2] = _attendanceAdapter.AttCountMonthly(enrollno, "A", (i + 1), (decimal)dttime.Year);

dr[3] = _attendanceAdapter.AttCountMonthly(enrollno, "L", (i + 1), (decimal)dttime.Year);

dt.Rows.Add(dr);

dt.AcceptChanges();

}

return dt;

}

public void Dispose()

{

Dispose(true);

Page 215: Code Listing

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

if (disposing) {

_attendanceAdapter.Dispose();

}

else { }

}

~AttendanceRecBLL()

{

Dispose(false);

}

}

Page 216: Code Listing

K:\SpringDale\App_Code\BLL\BooksBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Data;

using System.Data.SqlClient;

using BooksRecTableAdapters;

using System.Configuration;

using AuthorsRecTableAdapters;

using IssueReturnTableAdapters;

/// <summary>

/// Summary description for BooksBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class BooksBLL

{

private BooksTableAdapter _adapter = new BooksTableAdapter();

public BooksTableAdapter Adapter {

get

{

if (_adapter == null)

_adapter = new BooksTableAdapter();

return _adapter;

}

Page 217: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public System.Data.DataTable GetData()

{

BooksRec.BooksDataTable bt = Adapter.GetData();

DataTable dt = new DataTable();

dt = bt.Clone();

dt.Columns.Add(new DataColumn("Authors", Type.GetType("System.String")));

AuthorsRecTableAdapters.AuthorsTableAdapter authors = new AuthorsTableAdapter();

AuthorsRecTableAdapters.BookAuthorTableAdapter bookrel = new BookAuthorTableAdapter();

foreach(BooksRec.BooksRow r1 in dt.Rows)

{

string authorname="";

DataTable relationdt = bookrel.GetDataByBookID(r1.BookNo);

foreach (DataRow dr in relationdt.Rows)

{

DataTable authdt = authors.GetDataByAuthorID((decimal)dr["AuthorID"]);

foreach (DataRow dr2 in authdt.Rows)

{

authorname += dr2["AuthorName"] + ",";

}

}

if (authorname.Length > 1)

{

r1["Authors"] = authorname.Substring(0, authorname.Length - 1);

}

dt.AcceptChanges();

}

return dt;

Page 218: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert , false)]

public bool insertNewBook(decimal ISBN,string subject,string BookName,

string PublisherName,decimal copies,decimal cost,decimal edition,string authors,byte[] image)

{

bool ans = false;

decimal bno = (decimal)_adapter.MaxBookNo();

bno+=1;

if (Adapter.InsertQuery(bno, ISBN, subject.ToUpper(), BookName.ToUpper(), PublisherName.ToUpper(), copies, cost, edition) >= 1)

{

string constring = ConfigurationManager.ConnectionStrings["springdaleConnectionString1"].ConnectionString;

SqlConnection con = new SqlConnection(constring);

con.Open();

string commtext = "Update Books Set Image= @Image where BookNo=" + bno.ToString();

SqlCommand com = new SqlCommand(commtext, con);

com.Parameters.Add(new SqlParameter("@Image", SqlDbType.Image, image.Length)).Value = image;

com.ExecuteNonQuery();

con.Close();

con.Dispose();

AuthorsTableAdapter auth = new AuthorsRecTableAdapters.AuthorsTableAdapter();

BookAuthorTableAdapter bookauth = new AuthorsRecTableAdapters.BookAuthorTableAdapter();

string[] arr = authors.Split(',');

for (int i = 0; i < arr.Length; i++)

{

decimal auid = 0;

AuthorsRec.AuthorsDataTable dt = auth.GetDataByAuthorName(arr[i].ToUpper());

Page 219: Code Listing

if (dt.Rows.Count < 1)

{

auid = (decimal)auth.MaxAuthID();

auid += 1;

auth.InsertQuery(auid, arr[i].ToUpper());

}

else

{

auid = decimal.Parse(dt.Rows[0]["AuthorID"].ToString());

}

if (bookauth.GetDataByBookID(bno).Rows.Count > 0 && bookauth.GetDataByAuthorID(auid).Rows.Count > 0)

{ }

else

{

bookauth.InsertQuery(bookauth.GetMaxSNo() + 1, bno,auid);

}

}

ans = true;

}

return ans;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

Page 220: Code Listing

public BooksRec.BooksExtraTableDataTable GetDataByAuthor(string authorname)

{

AuthorsRec.BookAuthRelDataTable dt = new AuthorsRec.BookAuthRelDataTable();

BookAuthRelTableAdapter _temp=new BookAuthRelTableAdapter();

BooksRec.BooksExtraTableDataTable newdt = new BooksRec.BooksExtraTableDataTable();

IssuesReturnsBll issret = new IssuesReturnsBll();

newdt.Columns.Add(new DataColumn("Available",System.Type.GetType("System.Int32")));

newdt.AcceptChanges();

try

{

authorname = "%" + authorname + "%";

dt = _temp.GetDataByAuthorName(authorname);

foreach (AuthorsRec.BookAuthRelRow rw in dt.Rows)

{

BooksRec.BooksDataTable bookdt = new BooksRec.BooksDataTable();

bookdt = _adapter.GetDataByBookNo(rw.BookID);

foreach (BooksRec.BooksRow rw2 in bookdt.Rows)

{

int? bookavail = issret.GetDataByBookavailable(rw2.BookNo).Rows.Count;

BooksRec.BooksExtraTableRow newr = (BooksRec.BooksExtraTableRow)newdt.NewRow();

newr.BookNo = rw2.BookNo;

newr.ISBN = rw2.ISBN;

newr.BookName = rw2.BookName;

newr.AuthorName = getAllAuthors(rw2.BookNo);

if(rw2.IsEditionNull()==false )

newr.Edition = rw2.Edition;

else

newr.Edition = 1;// rw2.Edition;

if(rw2.IsSubjectNull()==false)

Page 221: Code Listing

newr.Subject = rw2.Subject;

else

newr.Subject = "UNKNOWN";// rw2.Subject;

if(rw2.IsPublisherNameNull()==false)

newr.PublisherName = rw2.PublisherName;

else

newr.PublisherName = "UNKNOWN";// rw2.PublisherName;

if (rw2.IsCopiesNull() == false)

newr.Copies = rw2.Copies;

else

newr.Copies = 0;

if (bookavail.HasValue && rw2.IsCopiesNull() == false)

{

if (bookavail == 0)

{

newr["Available"] = 1;

}

else

{

newr["Available"] = 0;

}

}

else

newr["Available"] = 0;

newdt.Rows.Add(newr);

}

newdt.AcceptChanges();

}

}

catch (Exception ex)

{ }

return newdt;

Page 222: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public BooksRec.BooksExtraTableDataTable GetDataByTitle(string booktitle)

{

BooksRec.BooksExtraTableDataTable newdt = new BooksRec.BooksExtraTableDataTable();

try

{

booktitle = "%" + booktitle + "%";

BooksRec.BooksDataTable bookdt=Adapter.GetDataByBookName(booktitle);

IssuesReturnsBll issret = new IssuesReturnsBll();

newdt.Columns.Add(new DataColumn("Available", System.Type.GetType("System.Int32")));

newdt.AcceptChanges();

foreach (BooksRec.BooksRow rw2 in bookdt.Rows)

{

BooksRec.BooksExtraTableRow newr = (BooksRec.BooksExtraTableRow)newdt.NewRow();

int? bookavail = issret.GetDataByBookavailable(rw2.BookNo).Rows.Count;

newr.BookNo = rw2.BookNo;

newr.ISBN = rw2.ISBN;

newr.BookName = rw2.BookName;

newr.AuthorName = getAllAuthors(rw2.BookNo);

if (rw2.IsEditionNull() == false)

newr.Edition = rw2.Edition;

else

Page 223: Code Listing

newr.Edition = 1;// rw2.Edition;

if (rw2.IsSubjectNull() == false)

newr.Subject = rw2.Subject;

else

newr.Subject = "UNKNOWN";// rw2.Subject;

if (rw2.IsPublisherNameNull() == false)

newr.PublisherName = rw2.PublisherName;

else

newr.PublisherName = "UNKNOWN";// rw2.PublisherName;

if (rw2.IsCopiesNull() == false)

newr.Copies = rw2.Copies;

else

newr.Copies = 0;

if (bookavail.HasValue && rw2.IsCopiesNull() == false)

newr["Available"] = (int)bookavail;

else

newr["Available"] = 0;

newdt.Rows.Add(newr);

newdt.AcceptChanges();

}

}

catch (Exception ex)

{ }

return newdt;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public BooksRec.BooksExtraTableDataTable GetDataBySubject(string booksubject)

Page 224: Code Listing

{

BooksRec.BooksExtraTableDataTable newdt = new BooksRec.BooksExtraTableDataTable();

try

{

booksubject = "%" + booksubject + "%";

BooksRec.BooksDataTable bookdt = Adapter.GetDataBySubjectName(booksubject);

IssuesReturnsBll issret = new IssuesReturnsBll();

newdt.Columns.Add(new DataColumn("Available", System.Type.GetType("System.Int32")));

newdt.AcceptChanges();

foreach (BooksRec.BooksRow rw2 in bookdt.Rows)

{

BooksRec.BooksExtraTableRow newr = (BooksRec.BooksExtraTableRow)newdt.NewRow();

int? bookavail = issret.GetDataByBookavailable(rw2.BookNo).Rows.Count;

newr.BookNo = rw2.BookNo;

newr.ISBN = rw2.ISBN;

newr.BookName = rw2.BookName;

newr.AuthorName = getAllAuthors(rw2.BookNo);

if (rw2.IsEditionNull() == false)

newr.Edition = rw2.Edition;

else

newr.Edition = 1;// rw2.Edition;

if (rw2.IsSubjectNull() == false)

newr.Subject = rw2.Subject;

else

newr.Subject = "UNKNOWN";// rw2.Subject;

if (rw2.IsPublisherNameNull() == false)

newr.PublisherName = rw2.PublisherName;

else

newr.PublisherName = "UNKNOWN";// rw2.PublisherName;

Page 225: Code Listing

if (rw2.IsCopiesNull() == false)

newr.Copies = rw2.Copies;

else

newr.Copies = 0;

if (bookavail.HasValue && rw2.IsCopiesNull() == false)

newr["Available"] = (int)bookavail;

else

newr["Available"] = 0;

newdt.Rows.Add(newr);

newdt.AcceptChanges();

}

}

catch (Exception ex)

{ }

return newdt;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public BooksRec.BooksExtraTableDataTable GetDataByBookNo(decimal bookno)

{

BooksRec.BooksExtraTableDataTable newdt = new BooksRec.BooksExtraTableDataTable();

try

{

BooksRec.BooksDataTable bookdt = Adapter.GetDataByBookNo(bookno);

Page 226: Code Listing

IssuesReturnsBll issret = new IssuesReturnsBll();

newdt.Columns.Add(new DataColumn("Available", System.Type.GetType("System.Int32")));

newdt.AcceptChanges();

foreach (BooksRec.BooksRow rw2 in bookdt.Rows)

{

BooksRec.BooksExtraTableRow newr = (BooksRec.BooksExtraTableRow)newdt.NewRow();

int? bookavail = issret.GetDataByBookavailable(rw2.BookNo).Rows.Count;

newr.BookNo = rw2.BookNo;

newr.ISBN = rw2.ISBN;

newr.BookName = rw2.BookName;

newr.AuthorName = getAllAuthors(rw2.BookNo);

if (rw2.IsEditionNull() == false)

newr.Edition = rw2.Edition;

else

newr.Edition = 1;// rw2.Edition;

if (rw2.IsSubjectNull() == false)

newr.Subject = rw2.Subject;

else

newr.Subject = "UNKNOWN";// rw2.Subject;

if (rw2.IsPublisherNameNull() == false)

newr.PublisherName = rw2.PublisherName;

else

newr.PublisherName = "UNKNOWN";// rw2.PublisherName;

if (rw2.IsCopiesNull() == false)

newr.Copies = rw2.Copies;

else

newr.Copies = 0;

if (bookavail.HasValue && rw2.IsCopiesNull() == false)

newr["Available"] = (int)bookavail;

else

newr["Available"] = 0;

Page 227: Code Listing

newdt.Rows.Add(newr);

newdt.AcceptChanges();

}

}

catch (Exception ex)

{ }

return newdt;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public BooksRec.BooksExtraTableDataTable GetDataByISBN(decimal isbn)

{

BooksRec.BooksExtraTableDataTable newdt = new BooksRec.BooksExtraTableDataTable();

try

{

BooksRec.BooksDataTable bookdt = Adapter.GetDataByISBN(isbn);

IssuesReturnsBll issret = new IssuesReturnsBll();

newdt.Columns.Add(new DataColumn("Available", System.Type.GetType("System.Int32")));

newdt.AcceptChanges();

foreach (BooksRec.BooksRow rw2 in bookdt.Rows)

{

BooksRec.BooksExtraTableRow newr = (BooksRec.BooksExtraTableRow)newdt.NewRow();

int? bookavail = issret.GetDataByBookavailable(rw2.BookNo).Rows.Count;

Page 228: Code Listing

newr.BookNo = rw2.BookNo;

newr.ISBN = rw2.ISBN;

newr.BookName = rw2.BookName;

newr.AuthorName = getAllAuthors(rw2.BookNo);

if (rw2.IsEditionNull() == false)

newr.Edition = rw2.Edition;

else

newr.Edition = 1;// rw2.Edition;

if (rw2.IsSubjectNull() == false)

newr.Subject = rw2.Subject;

else

newr.Subject = "UNKNOWN";// rw2.Subject;

if (rw2.IsPublisherNameNull() == false)

newr.PublisherName = rw2.PublisherName;

else

newr.PublisherName = "UNKNOWN";// rw2.PublisherName;

if (rw2.IsCopiesNull() == false)

newr.Copies = rw2.Copies;

else

newr.Copies = 0;

if (bookavail.HasValue && rw2.IsCopiesNull() == false)

newr["Available"] = (int)bookavail;

else

newr["Available"] = 0;

newdt.Rows.Add(newr);

newdt.AcceptChanges();

}

}

catch (Exception ex)

{ }

return newdt;

Page 229: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public BooksRec.BooksExtraTableDataTable GetDataByPublisher(string publisher)

{

BooksRec.BooksExtraTableDataTable newdt = new BooksRec.BooksExtraTableDataTable();

try

{

publisher = "%" + publisher + "%";

BooksRec.BooksDataTable bookdt = Adapter.GetDataByPublisher(publisher);

IssuesReturnsBll issret = new IssuesReturnsBll();

newdt.Columns.Add(new DataColumn("Available", System.Type.GetType("System.Int32")));

newdt.AcceptChanges();

foreach (BooksRec.BooksRow rw2 in bookdt.Rows)

{

BooksRec.BooksExtraTableRow newr = (BooksRec.BooksExtraTableRow)newdt.NewRow();

int? bookavail = issret.GetDataByBookavailable(rw2.BookNo).Rows.Count;

newr.BookNo = rw2.BookNo;

newr.ISBN = rw2.ISBN;

newr.BookName = rw2.BookName;

newr.AuthorName = getAllAuthors(rw2.BookNo);

if (rw2.IsEditionNull() == false)

newr.Edition = rw2.Edition;

else

newr.Edition = 1;// rw2.Edition;

Page 230: Code Listing

if (rw2.IsSubjectNull() == false)

newr.Subject = rw2.Subject;

else

newr.Subject = "UNKNOWN";// rw2.Subject;

if (rw2.IsPublisherNameNull() == false)

newr.PublisherName = rw2.PublisherName;

else

newr.PublisherName = "UNKNOWN";// rw2.PublisherName;

if (rw2.IsCopiesNull() == false)

newr.Copies = rw2.Copies;

else

newr.Copies = 0;

if (bookavail.HasValue && rw2.IsCopiesNull() == false)

newr["Available"] = (int)bookavail;

else

newr["Available"] = 0;

newdt.Rows.Add(newr);

newdt.AcceptChanges();

}

}

catch (Exception ex)

{ }

return newdt;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public BooksRec.BooksDataTable GetDataByBookID(decimal bookid)

{

Page 231: Code Listing

BooksRec.BooksDataTable dt = new BooksRec.BooksDataTable();

dt = _adapter.GetDataByBookNo(bookid);

return dt;

}

private string getAllAuthors(decimal bookid)

{

string ans = "";

AuthorsRec.BookAuthRelDataTable dt = new AuthorsRec.BookAuthRelDataTable();

BookAuthRelTableAdapter _temp = new BookAuthRelTableAdapter();

dt = _temp.GetDataByBookID(bookid);

foreach (AuthorsRec.BookAuthRelRow rw in dt.Rows)

{

ans += rw.AuthorName + ",";

}

ans = ans.Substring(0, ans.Length - 1);

return ans;

}

public BooksBLL()

{

_adapter = new BooksTableAdapter();

}

}

Page 232: Code Listing

K:\SpringDale\App_Code\BLL\ClassAttendanceReport.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using StudentRecordTableAdapters;

using ClassRecTableAdapters;

using AttendanceRecTableAdapters;

using System.Data.SqlClient;

using System.Data;

/// <summary>

/// This will be used to show report for a particular class.

/// It will have functions for a single month

/// for a range of months

/// for a whole year

/// for few days

/// for a single day

/// </summary>

///

[System.ComponentModel.DataObject]

public class ClassAttendanceReport

{

public ClassAttendanceReport()

{

//

// TODO: Add constructor logic here

//

}

Page 233: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public DataTable GetDataForASingleDay(DateTime dateValue,string className,string classSection)

{

ClassRecBLL classes = new ClassRecBLL();

decimal classid= (decimal)classes.GetClassID(className, classSection);

SqlConnection con = new SqlConnection("Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep");

SqlDataAdapter da = null;

DataSet ds = new DataSet();

//try

//{

string strText = "SELECT StudentRec.EnrollNo, StudentRec.FirstName + ' ' + StudentRec.LastName AS Name,";

strText += " AttendanceRec.AttendanceType FROM AttendanceRec INNER JOIN";

strText += " StudentRec ON AttendanceRec.EnrollNo = StudentRec.EnrollNo";

strText += " WHERE ( StudentRec.ClassID = " + classid.ToString() + " and AttendanceRec.AttendanceDate=@Param1)";

con.Open();

da = new SqlDataAdapter(strText, con);

SqlParameter myParam = new SqlParameter();

myParam.ParameterName = "@Param1";

myParam.SqlDbType = SqlDbType.DateTime;

myParam.Value = dateValue;

da.SelectCommand.Parameters.Add(myParam);

da.Fill(ds);

Page 234: Code Listing

//}

//catch (Exception ex)

//{

// return null;

//}

//finally

//{

// //da.Dispose();

//con.Close();

//}

return ds.Tables[0];

//return _studentAdapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public DataTable GetDataForASingleDayEx(DateTime dateValue, string className, string classSection)

{

ClassRecBLL classes = new ClassRecBLL();

decimal classid = (decimal)classes.GetClassID(className, classSection);

SqlConnection con = new SqlConnection("Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep");

SqlDataAdapter da = null;

DataSet ds = new DataSet();

//try

//{

string strText = "SELECT StudentRec.EnrollNo, StudentRec.FirstName , StudentRec.LastName,";

strText += " AttendanceRec.AttendanceType FROM AttendanceRec INNER JOIN";

strText += " StudentRec ON AttendanceRec.EnrollNo = StudentRec.EnrollNo";

Page 235: Code Listing

strText += " WHERE ( StudentRec.ClassID = " + classid.ToString() + " and AttendanceRec.AttendanceDate=@Param1)";

con.Open();

da = new SqlDataAdapter(strText, con);

SqlParameter myParam = new SqlParameter();

myParam.ParameterName = "@Param1";

myParam.SqlDbType = SqlDbType.DateTime;

myParam.Value = dateValue;

da.SelectCommand.Parameters.Add(myParam);

da.Fill(ds);

//}

//catch (Exception ex)

//{

// return null;

//}

//finally

//{

// //da.Dispose();

//con.Close();

//}

return ds.Tables[0];

//return _studentAdapter.GetData();

}

Page 236: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public DataTable GetDataForAMonth(int month,int year,string className,string classSection)

{

SqlConnection con = new SqlConnection("Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep");

SqlDataAdapter da = null;

DataSet ds = new DataSet();

DataTable newDT = new DataTable("repMonthly");

//try

//{

string strText ="SELECT sr.EnrollNo, sr.FirstName, sr.LastName, ar.Total, cr.ClassName, cr.ClassSection";

strText+=" FROM (SELECT EnrollNo, COUNT(AttendanceType) AS Total FROM AttendanceRec";

strText+=" WHERE (AttendanceType = 'P') AND (MONTH(AttendanceDate) = @month) AND (YEAR(AttendanceDate) = @year)";

strText+=" GROUP BY EnrollNo) AS ar INNER JOIN StudentRec AS sr ON sr.EnrollNo = ar.EnrollNo INNER JOIN";

strText += " ClassRec AS cr ON sr.ClassID = cr.ClassID ";

con.Open();

da = new SqlDataAdapter(strText, con);

SqlParameter mymonth = new SqlParameter();

mymonth.ParameterName = "@month";

SqlParameter myyear = new SqlParameter();

myyear.ParameterName = "@year";

mymonth.SqlDbType = SqlDbType.Int;

myyear.SqlDbType = SqlDbType.Int;

Page 237: Code Listing

mymonth.Value = month;

myyear.Value = year;

da.SelectCommand.Parameters.Add(mymonth);

da.SelectCommand.Parameters.Add(myyear);

da.Fill(ds);

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[0].ColumnName,ds.Tables[0].Columns[0].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[1].ColumnName, ds.Tables[0].Columns[1].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[2].ColumnName, ds.Tables[0].Columns[2].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[3].ColumnName, ds.Tables[0].Columns[3].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[4].ColumnName, ds.Tables[0].Columns[4].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[5].ColumnName, ds.Tables[0].Columns[5].DataType));

foreach (DataRow dr in ds.Tables[0].Rows)

{

if (dr["ClassName"].ToString() == className && dr["ClassSection"].ToString()==classSection)

{

DataRow dr1 = newDT.NewRow();

dr1[0]=dr[0];

dr1[1]=dr[1];

dr1[2]=dr[2];

dr1[3]=dr[3];

dr1[4]=dr[4];

dr1[5]=dr[5];

Page 238: Code Listing

newDT.Rows.Add(dr1);

}

}

newDT.AcceptChanges();

//}

//catch (Exception ex)

//{

//return null;

// }

return newDT;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public DataTable GetDataForARange(string startDate, string endDate, string className, string classSection)

{

SqlConnection con = new SqlConnection("Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep");

SqlDataAdapter da = null;

DataSet ds = new DataSet();

DataTable newDT = new DataTable("repMonthly");

//try

//{

string strText = "SELECT sr.EnrollNo, sr.FirstName, sr.LastName, ar.Total, cr.ClassName, cr.ClassSection";

strText += " FROM (SELECT EnrollNo, COUNT(AttendanceType) AS Total FROM AttendanceRec";

Page 239: Code Listing

strText += " WHERE (AttendanceType = 'P') AND (AttendanceDate >= @startdate) AND (AttendanceDate <= @enddate)";

strText += " GROUP BY EnrollNo) AS ar INNER JOIN StudentRec AS sr ON sr.EnrollNo = ar.EnrollNo INNER JOIN";

strText += " ClassRec AS cr ON sr.ClassID = cr.ClassID ";

con.Open();

da = new SqlDataAdapter(strText, con);

SqlParameter dtStart = new SqlParameter();

dtStart.ParameterName = "@startdate";

SqlParameter dtEnd = new SqlParameter();

dtEnd.ParameterName = "@enddate";

dtStart.SqlDbType = SqlDbType.DateTime;

dtEnd.SqlDbType = SqlDbType.DateTime;

//CultureInfo culture = new CultureInfo("en-US");

DateTime d1 = DateTime.Parse(startDate);//, "mm/dd/yyyy", null);

dtStart.Value = d1;

DateTime d2 = DateTime.Parse(endDate);//, "mm/dd/yyyy", null);

dtEnd.Value = d2;// Convert.ToDateTime(endDate);

//dtStart.Value = "01/01/2012";

//dtEnd.Value = "01/30/2012";

da.SelectCommand.Parameters.Add(dtStart);

da.SelectCommand.Parameters.Add(dtEnd);

da.Fill(ds);

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[0].ColumnName, ds.Tables[0].Columns[0].DataType));

Page 240: Code Listing

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[1].ColumnName, ds.Tables[0].Columns[1].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[2].ColumnName, ds.Tables[0].Columns[2].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[3].ColumnName, ds.Tables[0].Columns[3].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[4].ColumnName, ds.Tables[0].Columns[4].DataType));

newDT.Columns.Add(new DataColumn(ds.Tables[0].Columns[5].ColumnName, ds.Tables[0].Columns[5].DataType));

foreach (DataRow dr in ds.Tables[0].Rows)

{

if (dr["ClassName"].ToString() == className && dr["ClassSection"].ToString() == classSection)

{

DataRow dr1 = newDT.NewRow();

dr1[0] = dr[0];

dr1[1] = dr[1];

dr1[2] = dr[2];

dr1[3] = dr[3];

dr1[4] = dr[4];

dr1[5] = dr[5];

newDT.Rows.Add(dr1);

}

}

newDT.AcceptChanges();

//}

//catch (Exception ex)

//{

//return null;

// }

Page 241: Code Listing

return newDT;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public DataTable GetDataForStudentForAYear(int EnrollNo, int searchYear,string className, string classSection)

{

SqlConnection con = new SqlConnection("Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep");

SqlDataAdapter da = null;

DataSet ds = new DataSet();

DataTable newDT = new DataTable("repStudentYearWise");

int i=0;

//try

//{

con.Open();

string strText = "SELECT Count(AttendanceType) AS Attendance from AttendanceRec where AttendanceType='P' and EnrollNo=@enrollno and (MONTH(AttendanceDate)=@month) and (YEAR(AttendanceDate)=@year)";

newDT.Columns.Add(new DataColumn("Month", System.Type.GetType("System.String") ));

newDT.Columns.Add(new DataColumn("Attendance", System.Type.GetType("System.Int32")));

DataRow dr,dr1=null ;

DataTable olddt = new DataTable();

SqlCommand com = null;

Page 242: Code Listing

string[] months = { "Jan", "Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" };

for (i = 0; i < 12; i++) {

strText = "SELECT Count(*) AS Attendance from AttendanceRec where AttendanceType='P' and EnrollNo=";

strText += EnrollNo.ToString() + " and MONTH(AttendanceDate)=" + (i + 1).ToString() + " and YEAR(AttendanceDate)=" + searchYear.ToString();

com = new SqlCommand(strText, con);

dr1 = newDT.NewRow();

dr1[0] = months[i];

dr1[1] = com.ExecuteScalar();

newDT.Rows.Add(dr1);

newDT.AcceptChanges();

}

//}

//catch (Exception ex)

//{

//return null;

// }

return newDT;

}

}

Page 243: Code Listing

K:\SpringDale\App_Code\BLL\ClassRecBLL.cs

using System;

using System.Collections.Generic;

using System.Web;

using ClassRecTableAdapters;

/// <summary>

/// Summary description for ClassRecBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class ClassRecBLL:IDisposable

{

public ClassRecBLL()

{

//

// TODO: Add constructor logic here

//

}

private ClassRecTableAdapter _classrecadapter = new ClassRecTableAdapter();

public ClassRecTableAdapter Adapter

{

get

{

if (_classrecadapter == null)

_classrecadapter = new ClassRecTableAdapter();

return _classrecadapter;

}

}

Page 244: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public ClassRec.ClassRecDataTable GetData()

{

return _classrecadapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public System.Data.DataTable GetClassSectAdd()

{

return _classrecadapter.GetDataByClassSectAdd();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public decimal? GetClassID(string classname,string classsection)

{

System.Data.DataTable dt =_classrecadapter.GetClassID(classname, classsection);

decimal? ans = null;

if (dt.Rows.Count > 0)

{

System.Data.DataRow r1 = dt.Rows[0];

ans=(decimal)r1["ClassID"];

}

return ans;

}

Page 245: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public decimal? GetMaxClassID()

{

return _classrecadapter.GetMaxClassID();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public ClassRec.ClassRecDataTable GetUniqueName()

{

return _classrecadapter.GetUniqueName();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public ClassRec.ClassRecDataTable GetUniqueSection()

{

return _classrecadapter.GetUniqueSection();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public bool AddNewClass(string ClassName,string SectionName,decimal ClassID)

Page 246: Code Listing

{

return (_classrecadapter.InsertQuery(ClassID, ClassName, SectionName) == 1);

}

public void Dispose()

{

Dispose(true);

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

if (disposing) {

_classrecadapter.Dispose();

}

else { }

}

~ClassRecBLL() {

Dispose(false);

}

}

Page 247: Code Listing

K:\SpringDale\App_Code\BLL\ExamSettingBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using ExamSettingRecTableAdapters;

/// <summary>

/// Summary description for ExamSettingBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class ExamSettingBLL:IDisposable

{

// static const Object obj = new Object();

ExamSettingTableAdapter _adapter;

public ExamSettingBLL()

{

_adapter = new ExamSettingTableAdapter();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public ExamSettingRec.ExamSettingDataTable GetData()

{

return _adapter.GetData();

}

Page 248: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public ExamSettingRec.ExamSettingDataTable GetData(decimal TermID)

{

return _adapter.GetDataByTermID(TermID);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public ExamSettingRec.ExamSettingDataTable GetData(decimal TermID,string classes)

{

return _adapter.GetDataByTermClass(TermID, classes);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]

public int InsertData(string TermName,decimal maxmarks,decimal pass,decimal weightage,string classes)

{

//lock(obj){

decimal? termid=_adapter.MaxTermID();

if(termid.HasValue==false)

termid=0;

else

termid=termid+1;

return _adapter.Insert((decimal)termid, TermName, maxmarks, pass, weightage, classes);

Page 249: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]

public int UpdateData(decimal TermID,string TermName, decimal maxmarks, decimal pass, decimal weightage, string classes)

{

return _adapter.UpdateQuery(TermName, maxmarks, pass, weightage, classes, (decimal)TermID);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]

public int RemoveData(decimal TermID)

{

return _adapter.DeleteQuery((decimal)TermID);

}

public decimal ClassExists(string classname)

{

decimal ans = -1;

ExamSettingRec.ExamSettingDataTable dt = _adapter.GetDataByClassName(classname);

if (dt.Rows.Count > 0)

ans = (decimal)dt.Rows[0][0];

return ans;

}

public void Dispose()

{

Page 250: Code Listing

Dispose(true);

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

if (disposing) {

_adapter.Dispose();

}

else { }

}

~ExamSettingBLL()

{

Dispose(false);

}

}

Page 251: Code Listing

K:\SpringDale\App_Code\BLL\IssuesReturnsBll.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using IssueReturnTableAdapters;

using System.Configuration;

using System.Data.SqlClient;

using LibMemberTableAdapters;

/// <summary>

/// Summary description for IssuesReturnsBll

/// </summary>

///

[System.ComponentModel.DataObject]

public class IssuesReturnsBll

{

private IssueReturnTableAdapters.IssuesReturnsTableAdapter _adapter;

public IssuesReturnsBll()

{

_adapter = new IssuesReturnsTableAdapter();

}

public IssuesReturnsTableAdapter Adapter {

get {

if(_adapter==null)

_adapter = new IssuesReturnsTableAdapter();

return _adapter;

}

}

Page 252: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public IssueReturn.IssuesReturnsDataTable GetData()

{

return Adapter.GetData();

}

public int NumCopiesIssued(decimal bookno)

{

return (int)Adapter.NumIssued((decimal)bookno);

}

/// <summary>

/// This function is causing serious problems due to some error called invalid cast

/// Thus I am moving the logic to the web service will bring it back later

/// </summary>

/// <param name="bookno"></param>

/// <param name="accno"></param>

/// <param name="issudate"></param>

/// <param name="duedate"></param>

/// <param name="fine"></param>

/// <returns></returns>

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]

public bool IssueBook(decimal bookno,decimal accno,DateTime issudate,DateTime duedate,decimal fine)

{

Page 253: Code Listing

bool ans = false;

string constring = ConfigurationManager.ConnectionStrings["springdaleConnectionString2"].ConnectionString;

SqlConnection con = new SqlConnection(constring);

con.Open();

string commtext = "Select * from Members where AccNo=" + accno.ToString();

SqlDataAdapter da = new SqlDataAdapter(commtext, con);

System.Data.DataTable dt = new System.Data.DataTable();

da.Fill(dt);

if (dt.Rows.Count > 0)

{

int i=int.Parse(dt.Rows[0]["BooksLeft"].ToString());

if (i > 0)

{

decimal? maxid=Adapter.GetMaxTransactID();

if(maxid==null)

maxid=0;

else

{

maxid+=1;

}

Adapter.IssueQuery((decimal)maxid,(decimal?)bookno, (decimal?)accno, issudate.ToString(), duedate.ToString(), (decimal)0);

commtext = "Update Members set BooksLeft=" + (i - 1).ToString() + " where AccNo=" + accno.ToString();

SqlCommand comm = new SqlCommand(commtext, con);

comm.ExecuteNonQuery();

comm.Dispose();

ans = true;

}

else

ans = false;

}

Page 254: Code Listing

con.Close();

con.Dispose();

return ans;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]

public bool ReturnQuery(DateTime issuedate, DateTime duedate,DateTime returndate,decimal accno,decimal bookno)

{

float fine = CalcFine(duedate, returndate);

return (Adapter.ReturnQuery(returndate.ToString(), (decimal)fine, bookno, accno, issuedate.ToString())>0);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public IssueReturn.IssuesReturnsDataTable GetDataByTransactionID(decimal transactid)

{

return Adapter.GetDataByTransactionID(transactid);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public IssueReturn.IssuesReturnsDataTable GetDataByBookavailable(decimal bookno)

{

Page 255: Code Listing

return Adapter.GetDataByBookAvailable(bookno);

}

public float CalcFine( DateTime duedate,DateTime returndate)

{

float ans = 0;

TimeSpan ts = returndate - duedate;

int num=ts.Days;

ans = (float)num * 1.5f;

if (ans <= 0)

ans = 0;

return ans;

}

public decimal getMaxTranID()

{

return (decimal)Adapter.GetMaxTransactID();

}

public System.Data.DataTable GetDataForMember(decimal AccNo)

{

System.Data.DataTable dt = Adapter.GetDataByMember(AccNo);

return dt;

}

Page 256: Code Listing

}

Page 257: Code Listing

K:\SpringDale\App_Code\BLL\LibMemberBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Data.SqlClient;

using System.Web;

using System.Configuration;

using LibMemberTableAdapters;

/// <summary>

/// Summary description for LibMemberBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class LibMemberBLL

{

private LibMemberTableAdapters.MembersTableAdapter _adapter;

public LibMemberBLL()

{

_adapter = new MembersTableAdapter();

}

public MembersTableAdapter Adapter {

get {

if (_adapter == null)

_adapter = new MembersTableAdapter();

return _adapter;

}

}

Page 258: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public LibMember.MembersDataTable GetData()

{

return _adapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public int GetDataByAccNo(decimal accno)

{

int answer = (int)_adapter.FillByAccNo(accno);

return answer;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public int GetDataByBooksLeft(decimal accno)

{

int answer = 0;

LibMember.MembersDataTable dt= _adapter.GetDataByBooksLeft(accno);

if (dt != null && dt.Rows.Count > 0)

{

if (dt[0].IsBooksLeftNull())

answer = 0;

else

answer = (int)dt[0].BooksLeft;

}

return answer;

Page 259: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert , true)]

public bool InsertData(decimal enrollno,decimal booklimit,decimal status,byte[] img)

{

decimal accno = 0;

if (_adapter.GetMaxAccNo() == null || _adapter.GetMaxAccNo() == 0)

accno = 0;

else

accno=(decimal)_adapter.GetMaxAccNo();

accno += 1;

if (_adapter.InsertQuery((decimal)accno, enrollno, booklimit, booklimit, status) >= 1)

{

string constring = ConfigurationManager.ConnectionStrings["springdaleConnectionString1"].ConnectionString;

SqlConnection con = new SqlConnection(constring);

con.Open();

string commtext = "Update Members Set MemberImage= @Image where AccNo=" + accno.ToString();

SqlCommand com = new SqlCommand(commtext, con);

com.Parameters.Add(new SqlParameter("@Image", System.Data.SqlDbType.Image, img.Length)).Value = img;

com.ExecuteNonQuery();

con.Close();

con.Dispose();

}

else

return false;

return true;

Page 260: Code Listing

//return _usersAdapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, false)]

public bool UpdateLimit(decimal accno, decimal booklimit)

{

return(_adapter.UpdateTotalLimit(booklimit, accno)>0);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, false)]

public bool UpdateBooksLeft(decimal accno, decimal booksleft)

{

return (_adapter.UpdateBooksLeft(booksleft, accno) > 0);

}

}

Page 261: Code Listing

K:\SpringDale\App_Code\BLL\ManageUsersBLL.cs

using System;

using System.Collections.Generic;

using System.Web.Security;

using System.Web;

using ManageUsersTableAdapters;

/// <summary>

/// Summary description for ManageUsersBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class ManageUsersBLL:IDisposable

{

private ManageUsersTableAdapters.tableUsersTableAdapter _usersAdapter=null ;

public ManageUsersBLL()

{

_usersAdapter = new tableUsersTableAdapter();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public ManageUsers.tableUsersDataTable GetData()

{

return _usersAdapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public ManageUsers.tableUsersDataTable GetDataByUserName(string username)

Page 262: Code Listing

{

return _usersAdapter.GetDataByUserName(username);

}

public void Dispose()

{

Dispose(true);

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

if (disposing) {

_usersAdapter.Dispose();

}

else { }

}

~ManageUsersBLL(){

Dispose(false);

}

}

Page 263: Code Listing

K:\SpringDale\App_Code\BLL\MarksBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using MarksDLLTableAdapters;

/// <summary>

/// Summary description for MarksBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class MarksBLL:IDisposable

{

MarksDLLTableAdapters.MarksRecTableAdapter _adapter;

public MarksBLL()

{

_adapter = new MarksRecTableAdapter();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public MarksDLL.MarksRecDataTable GetData()

{

return _adapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

Page 264: Code Listing

public MarksDLL.MarksRecDataTable GetData(decimal EnrollNo,decimal TermID)

{

return _adapter.GetDataByEnrollTerm(EnrollNo,TermID);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]

public int InsertData(decimal enroll,decimal marks,decimal termid,string classes,decimal SubjectID)

{

decimal? marksid = _adapter.MaxMarksID();

if (marksid.HasValue == false)

marksid = 0;

else

marksid = marksid + 1;

ExamSettingBLL obj2 = new ExamSettingBLL();

ExamSettingRec.ExamSettingDataTable dt= obj2.GetData(termid,classes);

decimal weight = ((decimal.Parse(dt[0]["Weightage"].ToString()) /100) * marks);

return _adapter.Insert((decimal)marksid, (decimal)enroll, (decimal)termid, (decimal)marks, (decimal)weight,(decimal)SubjectID);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]

public int InsertData(decimal MarksID,decimal enroll, decimal marks, decimal termid, string classes,decimal SubjectID)

{

decimal? marksid = _adapter.MaxMarksID();

if (marksid.HasValue == false)

Page 265: Code Listing

marksid = 0;

else

marksid = marksid + 1;

ExamSettingBLL obj2 = new ExamSettingBLL();

ExamSettingRec.ExamSettingDataTable dt = obj2.GetData(termid, classes);

decimal weight = ((decimal.Parse(dt[0]["Weightage"].ToString()) / 100)*marks);

return _adapter.Insert((decimal)MarksID, (decimal)enroll, (decimal)termid, (decimal)marks, (decimal)weight,(decimal)SubjectID);

}

public decimal GetMaxID()

{

decimal? marksid = _adapter.MaxMarksID();

if (marksid.HasValue == false)

marksid = 0;

else

marksid = marksid + 1;

return (decimal)marksid;

}

/*[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]

public int UpdateData(decimal TermID, string TermName, decimal maxmarks, decimal pass, decimal weightage, string classes)

{

return _adapter.UpdateQuery(TermName, maxmarks, pass, weightage, classes, (decimal)TermID);

}

Page 266: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]

public int RemoveData(decimal TermID)

{

return _adapter.DeleteQuery((decimal)TermID);

}

public decimal ClassExists(string classname)

{

decimal ans = -1;

ExamSettingRec.ExamSettingDataTable dt = _adapter.GetDataByClassName(classname);

if (dt.Rows.Count > 0)

ans = (decimal)dt.Rows[0][0];

return ans;

}*/

public void Dispose()

{

Dispose(true);

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

if (disposing) {

_adapter.Dispose();

}

else { }

Page 267: Code Listing

}

~MarksBLL()

{

Dispose(false);

}

}

Page 268: Code Listing

K:\SpringDale\App_Code\BLL\StudentRecBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using StudentRecordTableAdapters;

using ClassRecTableAdapters;

/// <summary>

/// Summary description for StudentRecBLL

/// </summary>

[System.ComponentModel.DataObject]

public class StudentRecBLL:IDisposable

{

private StudentRecAdapter _studentAdapter=null;

public StudentRecAdapter Adapter {

get {

if(_studentAdapter==null)

_studentAdapter= new StudentRecAdapter();

return _studentAdapter;

}

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select,true )]

public StudentRecord.StudentRecDataTable GetData()

{

return _studentAdapter.GetData();

Page 269: Code Listing

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public StudentRecord.StudentRecDataTable GetDataByEnrollNo(int EnrollNo)

{

return _studentAdapter.GetDataByEnrollNo(EnrollNo);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public StudentRecord.StudentRecDataTable GetLatestStudent()

{

return _studentAdapter.GetDataByEnrollNo((decimal)_studentAdapter.GetMaxEnrollNo());

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public StudentRecord.StudentRecDataTable GetDataByRollNo(int RollNo)

{

return _studentAdapter.GetDataByRollNo(RollNo);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public StudentRecord.StudentRecDataTable GetDataByFirstName(string FirstName)

{

Page 270: Code Listing

return _studentAdapter.GetDataByFirstName(FirstName);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public StudentRecord.StudentRecDataTable GetDataByClassID(int ClassID)

{

return _studentAdapter.GetDataByClassID(ClassID);

}

/// <summary>

/// This function brings the data from ClassRec table and StudentRec table

/// which matches the enrollno

/// </summary>

/// <param name="EnrollNo">an integer value for searching record</param>

/// <returns></returns>

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public StudentRecord.StudentRecDataTable GetDataByEnrollNoEx(int EnrollNo)

{

return _studentAdapter.GetDataByEnrollNoEx(EnrollNo);

}

/// <summary>

/// This function creates the EnrollmentNo and RollNo based on the next available number. You dont have to

/// give any input.

/// </summary>

/// <param name="FirstName"></param>

/// <param name="LastName"></param>

/// <returns>true for success and false for failure</returns>

Page 271: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, false)]

public bool AddStudent( string FirstName, string LastName, string ClassName,string ClassSection,string Email)

{

StudentRecord.StudentRecDataTable _studentTable = new StudentRecord.StudentRecDataTable();

StudentRecord.StudentRecRow newrow = _studentTable.NewStudentRecRow();

decimal? ans=1;

decimal? _enroll = _studentAdapter.GetMaxEnrollNo();

if (_enroll == null)

{

newrow.EnrollNo = 1;

_enroll = 1;

}

else

{

newrow.EnrollNo = _enroll.Value + 1;

_enroll += 1;

}

decimal? _roll = _studentAdapter.GetMaxRollNo();

if (_roll == null)

{

newrow.RollNo = 1;

_roll = 1;

}

else

{

newrow.RollNo = _roll.Value + 1;

_roll += 1;

}

if (FirstName == null)

Page 272: Code Listing

newrow.SetFirstNameNull();

else

newrow.FirstName = FirstName ;

if (LastName == null)

newrow.SetLastNameNull();

else

newrow.LastName = LastName ;

/*if (ClassID == null)

newrow.SetClassIDNull();

else

newrow.ClassID = ClassID.Value;*/

if (ClassName != null && ClassSection != null)

{

ClassRecBLL obj = new ClassRecBLL();

ans= obj.GetClassID(ClassName, ClassSection);

if (ans == null)

{

ans = obj.GetMaxClassID() + 1;

obj.AddNewClass(ClassName, ClassSection, (decimal)ans);

}

newrow.ClassID = ans.Value;

}

int rowsaffected = _studentAdapter.InsertQuery((decimal)_enroll, _roll, LastName, (decimal)ans, FirstName);

bool answer=false;

if (rowsaffected == 1)

{

ManageUsersRoles mem1 = new ManageUsersRoles();

mem1.CreateNewUser(FirstName+ _enroll.ToString(), "1234567", Email);

Page 273: Code Listing

mem1.putUserInRole(FirstName + _enroll.ToString(), "Students");

LibMemberBLL obj2 = new LibMemberBLL();

int val = 0;

//System.IO.Stream inputStream = imgUpload.PostedFile.InputStream;

//int imageLength = imgUpload.PostedFile.ContentLength;

//imageBinary = new byte[imageLength];

//int inputRead = inputStream.Read(imageBinary, 0, imageLength);

//imageData = imageBinary;

//imgSave.Enabled = true;

answer=obj2.InsertData(decimal.Parse(_enroll.ToString()), 2, 1, null);

}

//_studentTable.AddStudentRecRow(newrow);

//int rowsaffected = _studentAdapter.Update(_studentTable);

return answer; //rowsaffected == 1;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, false)]

public bool AddStudent(string FirstName, string LastName, string ClassName, string ClassSection, string Email,string FathersName,

string MothersName,string Address,string City,string State,string HomePhone,string CompanyName,string CompanyAddress,

string CompanyPhone,string Designation,string LastCollege,decimal LastResult,Byte[] img)

{

StudentRecord.StudentRecDataTable _studentTable = new StudentRecord.StudentRecDataTable();

StudentRecord.StudentRecRow newrow = _studentTable.NewStudentRecRow();

Page 274: Code Listing

decimal? ans = 1;

decimal? _enroll = _studentAdapter.GetMaxEnrollNo();

if (_enroll == null)

{

newrow.EnrollNo = 1;

_enroll = 1;

}

else

{

newrow.EnrollNo = _enroll.Value + 1;

_enroll += 1;

}

decimal? _roll = _studentAdapter.GetMaxRollNo();

if (_roll == null)

{

newrow.RollNo = 1;

_roll = 1;

}

else

{

newrow.RollNo = _roll.Value + 1;

_roll += 1;

}

if (FirstName == null)

newrow.SetFirstNameNull();

else

newrow.FirstName = FirstName;

if (LastName == null)

newrow.SetLastNameNull();

else

newrow.LastName = LastName;

Page 275: Code Listing

/*if (ClassID == null)

newrow.SetClassIDNull();

else

newrow.ClassID = ClassID.Value;*/

if (ClassName != null && ClassSection != null)

{

ClassRecBLL obj = new ClassRecBLL();

ans = obj.GetClassID(ClassName, ClassSection);

if (ans == null)

{

ans = obj.GetMaxClassID() + 1;

obj.AddNewClass(ClassName, ClassSection, (decimal)ans);

}

newrow.ClassID = ans.Value;

}

int rowsaffected = _studentAdapter.InsertQueryEx((decimal)_enroll, (decimal)_roll, FirstName, LastName, (decimal)ans, FathersName, MothersName, Address

, City, State, HomePhone, CompanyName, CompanyAddress, CompanyPhone, Designation, LastCollege, (decimal)LastResult, img);

bool answer = false;

if (rowsaffected == 1)

{

ManageUsersRoles mem1 = new ManageUsersRoles();

mem1.CreateNewUser(FirstName + _enroll.ToString(), "1234567", Email);

mem1.putUserInRole(FirstName + _enroll.ToString(), "Students");

LibMemberBLL obj2 = new LibMemberBLL();

int val = 0;

//System.IO.Stream inputStream = imgUpload.PostedFile.InputStream;

//int imageLength = imgUpload.PostedFile.ContentLength;

//imageBinary = new byte[imageLength];

Page 276: Code Listing

//int inputRead = inputStream.Read(imageBinary, 0, imageLength);

//imageData = imageBinary;

//imgSave.Enabled = true;

answer = obj2.InsertData(decimal.Parse(_enroll.ToString()), 2, 1, img);

}

//_studentTable.AddStudentRecRow(newrow);

//int rowsaffected = _studentAdapter.Update(_studentTable);

return answer; //rowsaffected == 1;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, false)]

public bool UpdateStudent(int? EnrollNo,int? RollNo,string FirstName, string LastName, int? ClassID)

{

StudentRecord.StudentRecDataTable _studentTable = _studentAdapter.GetDataByEnrollNo(EnrollNo.Value);

StudentRecord.StudentRecRow newrow;

if (_studentTable.Count < 1)

{

return false;

}

else {

newrow = _studentTable[0];

}

Page 277: Code Listing

if (EnrollNo != null)

newrow.EnrollNo = EnrollNo.Value;

else

return false;

if (RollNo != null)

newrow.EnrollNo = RollNo.Value;

else

newrow.SetRollNoNull();

if (FirstName == null)

newrow.SetFirstNameNull();

else

newrow.FirstName = FirstName;

if (LastName == null)

newrow.SetLastNameNull();

else

newrow.LastName = LastName;

if (ClassID == null)

newrow.SetClassIDNull();

else

newrow.ClassID = ClassID.Value;

int rowsaffected = _studentAdapter.Update(newrow );

return rowsaffected == 1;

Page 278: Code Listing

}

/// <summary>

/// Overloaded Update function which searches the ClassID for you by using the ClassRecBLL

/// </summary>

/// <param name="EnrollNo"></param>

/// <param name="RollNo"></param>

/// <param name="FirstName"></param>

/// <param name="LastName"></param>

/// <param name="ClassName"></param>

/// <param name="ClassSection"></param>

/// <returns>true for success and false for failure</returns>

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, false)]

public bool UpdateStudent(int? EnrollNo, int? RollNo, string FirstName, string LastName, string ClassName,string ClassSection)

{

StudentRecord.StudentRecDataTable _studentTable = _studentAdapter.GetDataByEnrollNo(EnrollNo.Value);

StudentRecord.StudentRecRow newrow;

if (_studentTable.Count < 1)

{

return false;

}

else

{

newrow = _studentTable[0];

}

Page 279: Code Listing

if (EnrollNo != null)

newrow.EnrollNo = EnrollNo.Value;

else

return false;

if (RollNo != null)

newrow.EnrollNo = RollNo.Value;

else

newrow.SetRollNoNull();

if (FirstName == null)

newrow.SetFirstNameNull();

else

newrow.FirstName = FirstName;

if (LastName == null)

newrow.SetLastNameNull();

else

newrow.LastName = LastName;

ClassRecBLL obj1 = new ClassRecBLL();

decimal? ClassID=obj1.GetClassID(ClassName, ClassSection);

if (ClassID == null)

newrow.SetClassIDNull();

else

newrow.ClassID = ClassID.Value;

obj1.Dispose();

int rowsaffected = _studentAdapter.Update(newrow);

return rowsaffected == 1;

}

Page 280: Code Listing

public StudentRecBLL()

{

//

// TODO: Add constructor logic here

//

_studentAdapter = new StudentRecAdapter();

}

public void Dispose()

{

Dispose(true);

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

if (disposing) {

_studentAdapter.Dispose();

}

else { }

}

~StudentRecBLL() {

Dispose(false);

}

}

Page 281: Code Listing

K:\SpringDale\App_Code\BLL\SubjectsBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using SubjectRecTableAdapters;

using System.Data;

using System.Data.SqlClient;

/// <summary>

/// Summary description for SubjectsBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class SubjectsBLL

{

private SubjectRecTableAdapter _adapter;

public SubjectsBLL()

{

//

// TODO: Add constructor logic here

//

_adapter = new SubjectRecTableAdapter();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public SubjectRec.SubjectRecDataTable GetData()

{

Page 282: Code Listing

return _adapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public DataTable GetDataEx()

{

SubjectRec.SubjectRecDataTable sdt=_adapter.GetData();

DataTable newdt=new DataTable();

DataTable dt;

SqlConnection con;

SqlDataAdapter da;

string connString = System.Configuration.ConfigurationManager.ConnectionStrings["springdaleConnectionString2"].ConnectionString;

newdt.Columns.Add(new DataColumn(sdt.Columns[0].ColumnName, Type.GetType("System.Decimal")));

newdt.Columns.Add(new DataColumn(sdt.Columns[1].ColumnName, Type.GetType("System.String")));

newdt.Columns.Add(new DataColumn(sdt.Columns[2].ColumnName, Type.GetType("System.Decimal")));

newdt.Columns.Add(new DataColumn(sdt.Columns[3].ColumnName, Type.GetType("System.Decimal")));

newdt.Columns.Add(new DataColumn("TeacherName",Type.GetType("System.String")));

newdt.AcceptChanges();

con = new SqlConnection(connString.ToString());

// try

//{

con.Open();

string commtxt = "Select TeacherID,TeacherName from TeacherDummy";

foreach (DataRow dr in sdt.Rows)

Page 283: Code Listing

{

string comtxt2= commtxt +" where TeacherID =" + dr["TeacherID"].ToString();

da = new SqlDataAdapter(comtxt2, con);

dt = new System.Data.DataTable("TeacherDummy2");

da.Fill(dt);

DataRow drnew=newdt.NewRow();

drnew[0]=dr[0];

drnew[1]=dr[1];

drnew[2]=dr[2];

drnew[3] = dr[3];

drnew[4]=dt.Rows[0][1];

newdt.Rows.Add(drnew);

newdt.AcceptChanges();

dt.Dispose();

da.Dispose();

}

con.Close();

con.Dispose();

//}

//catch (Exception ex)

//{

// throw ex;

//}

return newdt;

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

Page 284: Code Listing

public SubjectRec.SubjectRecDataTable GetData(decimal classid)

{

return _adapter.GetDataByClassID(classid);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public SubjectRec.SubjectRecDataTable GetData(string subjectname)

{

return _adapter.GetDataBySubjectName(subjectname);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public SubjectRec.SubjectRecDataTable GetDataBySubjectID(decimal subjectid)

{

return _adapter.GetDataBySubjectID(subjectid);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert,true)]

public int InsertData(string subjectname,decimal classid,decimal teacherid,decimal numperiods)

{

decimal? subid = _adapter.GetMaxSubjectID();

if (subid.HasValue)

{

Page 285: Code Listing

subid += 1;

}

else

subid = 1;

return _adapter.InsertQuery(subid.Value, subjectname, classid, teacherid, numperiods);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]

public int UpdateData(string subjectname, decimal classid, decimal teacherid, decimal numperiods)

{

decimal subjectid = 0;

SubjectRec.SubjectRecDataTable dt = _adapter.GetDataBySubjectName(subjectname);

if (dt.Rows.Count > 0)

subjectid = (decimal)dt.Rows[0]["SubjectID"];

return _adapter.UpdateQuery(subjectname, classid, teacherid, numperiods,subjectid);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]

public int DeleteData(string subjectname,decimal classid)

{

decimal subjectid = 0;

SubjectRec.SubjectRecDataTable dt = _adapter.GetDataByClassAndSubject(subjectname, classid);

if (dt.Rows.Count > 0)

subjectid = (decimal)dt.Rows[0]["SubjectID"];

return _adapter.DeleteQuery(subjectid);

Page 286: Code Listing

}

public bool IsRecordExist(string subject, decimal classid)

{

return(_adapter.GetDataByClassAndSubject(subject,classid).Rows.Count>0);

}

}

Page 287: Code Listing

K:\SpringDale\App_Code\BLL\TimeTableMasterBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using TimeTableMasterTableAdapters;

/// <summary>

/// Summary description for TimeTableMasterBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class TimeTableMasterBLL

{

private TimeTableMasterTableAdapter _adapter;

public TimeTableMasterBLL()

{

_adapter = new TimeTableMasterTableAdapter();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public TimeTableMaster.TimeTableMasterDataTable GetData()

{

return _adapter.GetData();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

Page 288: Code Listing

public TimeTableMaster.TimeTableMasterDataTable GetData(decimal classid,string dayname)

{

return _adapter.GetDataByDayAndClass(dayname, classid);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public TimeTableMaster.TimeTableMasterDataTable GetDataByClassID(decimal classid)

{

return _adapter.GetDataByClassID(classid);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]

public int InsertData(decimal classid,string dayname,int numperiods )

{

return _adapter.InsertQuery(classid, dayname, numperiods);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]

public int UpdateData(decimal classid, string dayname, int numperiods)

{

return _adapter.UpdateQuery(numperiods, classid, dayname);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]

public int DeleteData(decimal classid, string dayname, int numperiods)

{

Page 289: Code Listing

return _adapter.DeleteQuery(classid, dayname);

}

public bool RecordExists(decimal classid, string dayname)

{

bool answer = false;

answer = (_adapter.GetDataByDayAndClass(dayname, classid).Rows.Count > 0);

return answer;

}

}

Page 290: Code Listing

K:\SpringDale\App_Code\BLL\TimeTableRealBLL.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using TimeTableRealTableAdapters;

/// <summary>

/// Summary description for TimeTableRealBLL

/// </summary>

///

[System.ComponentModel.DataObject]

public class TimeTableRealBLL

{

private TimeTableRealTableAdapters.TimeTableTableAdapter _adapter;

public TimeTableRealBLL()

{

//

// TODO: Add constructor logic here

//

_adapter = new TimeTableTableAdapter();

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]

public TimeTableReal.TimeTableDataTable getData()

{

return _adapter.GetData();

}

Page 291: Code Listing

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public TimeTableReal.TimeTableDataTable getData(decimal classid,string dayname)

{

return _adapter.GetDataByClassIDDay(classid, dayname);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public TimeTableReal.TimeTableDataTable getData(decimal classid, string dayname,int periodnum)

{

return _adapter.GetDataByPeriodNum(classid, dayname,(decimal)periodnum);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]

public int insertQuery(decimal ClassID, string DayName, int PeriodNum, decimal SubjectID, decimal TeacherID)

{

return _adapter.InsertQuery(ClassID, DayName, PeriodNum, SubjectID, TeacherID);

}

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]

public int deleteQuery(decimal ClassID, string DayName, int PeriodNum)

{

return _adapter.DeleteQuery(ClassID, DayName, PeriodNum);

Page 292: Code Listing

}

}

Page 293: Code Listing

K:\SpringDale\ChartReports\RoughPage2.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="RoughPage2.aspx.cs" Inherits="RoughPage2" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<style type="text/css">

table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption {

text-align: center;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

Page 294: Code Listing

}

thead th, tfoot th {

padding:5px;

}

table a {

color: #333333;

text-decoration:none;

}

table a:hover {

text-decoration:underline;

}

tr.odd {

background: #f1f1f1;

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

Page 295: Code Listing

background-color: #8AA9B7;

border-radius: 8px;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

</style>

<script type="text/javascript">

var myObject = null;

$(document).ready(function () {

$("#IssueBook").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 800,

height: 450

});

$("#dateissuepicker").datepicker({ dateFormat: 'dd-mm-yy',

onSelect: function (dateText, inst) {

var cooldate = dateText.split('-');

var now = new Date();

var msg = "";

if (cooldate[0] != now.getDate())

msg+="Incorrect Date ";

if (cooldate[1] != (now.getMonth() + 1))

msg+=" Incorrect Month Value";

if (cooldate[2] != (now.getYear() + 1900))

msg += " Incorrect Year";

if(msg!="")

Page 296: Code Listing

Notifier.error(msg, 'Issue Date May be Incorrect');

}

});

$("#datereturnpicker").datepicker({ dateFormat: 'dd-mm-yy', onSelect: function (dateText, inst) {

var cooldate = dateText.split('-');

var now = new Date();

var msg = "";

if (cooldate[2] != (now.getYear() + 1900))

msg += " Are you sure about this date.Specially the year";

if (msg != "")

Notifier.error(msg, 'Issue Date May be Incorrect');

}

});

$('#txtBookSearchString').focus();

});

function parseJsonString() {

$.fx.speeds._default = 1000;

$("#ajaxloader").show();

$("#showjson").hide();

var radiogrp = document.getElementsByName('searchChoice');

var txtsearch = document.getElementById('txtBookSearchString');

var i=0;

for (i = 0; i < radiogrp.length; i++) {

if (radiogrp[i].value == 1 && radiogrp[i].checked) {

Page 297: Code Listing

LibraryManagement.getDataByAuthor(txtsearch.value,jsonFeedRecieved);

}

else if (radiogrp[i].value == 2 && radiogrp[i].checked) {

LibraryManagement.getDataByTitle(txtsearch.value, jsonFeedRecieved);

}

else if (radiogrp[i].value == 3 && radiogrp[i].checked) {

LibraryManagement.getDataBySubject(txtsearch.value, jsonFeedRecieved);

}

else if (radiogrp[i].value == 4 && radiogrp[i].checked) {

LibraryManagement.getDataByPublisher(txtsearch.value, jsonFeedRecieved);

}

else if (radiogrp[i].value == 5 && radiogrp[i].checked) {

LibraryManagement.getDataByISBN( parseInt(txtsearch.value), jsonFeedRecieved);

}

else if (radiogrp[i].value == 6 && radiogrp[i].checked) {

LibraryManagement.getDataByBookNo(parseInt(txtsearch.value), jsonFeedRecieved);

}

}

}

function jsonFeedRecieved(result) {

var i=0;

myObject = JSON.parse(result);

var txt = "<table style='margin:0 auto;width:100%;border:none;'>";

txt += "<thead><tr><th>BookNo</th><th>Title</th><th>Authors</th><th>Edition</th><th>Subject</th><th>Publisher</th><th>Avail</th></tr></thead><tbody>";

for (i = 0; i < myObject.length; i++) {

Page 298: Code Listing

txt += "<tr onclick='openIssue("+ i.toString() +");' class='hovereffect'><td>" + myObject[i].BookNo + "</td>";

txt += "<td>" + myObject[i].BookName + "</td>";

txt += "<td>" + myObject[i].AuthorName + "</td>";

txt += "<td>" + myObject[i].Edition + "</td>";

txt += "<td>" + myObject[i].Subject + "</td>";

txt += "<td>" + myObject[i].PublisherName + "</td>";

if (myObject[i].Available > 0)

txt += "<td>" + "<a href='#' ><img alt='Yes' src='http://learnasp.in/css/tick_02.png'/></a>" + "</td></tr>";

else

txt += "<td>" + "<img alt='No' src='http://learnasp.in/css/remove.png'/>" + "</td></tr>";

}

txt += "</tbody></table>";

$("#ajaxloader").hide();

$("#showjson").show("fast");

$("#showjson").html(txt);

//divid.innerHTML = txt;

}

function openIssue(i) {

$("#bookname").html(myObject[i].BookName);

$("#IssueBook").dialog("open");

$("#IssueBook").dialog("option", "height", 450);

$("#IssueBook").dialog("option", "width", 800);

}

function validateAccNo() {

var valtxt = document.getElementById("txtAccno").value;

Page 299: Code Listing

if (valtxt == undefined || valtxt == '') {

Notifier.warning('Oooops Acc No Not Given!', 'Alert!Alert!Alert');

}

else {

LibraryManagement.checkAccNo(parseInt(valtxt), function (result) {

if (result == false) {

Notifier.error('Please check the account no.Or the book limit', 'Acc No Not Found Or Book Limit Exceded');

}

});

}

}

</script>

<style type="text/css">

#Text1

{

width: 293px;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/LibraryManagement.asmx" />

</Services>

</asp:ScriptManager>

Page 300: Code Listing

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<div id="IssueBook" title="Book Issue Dialog" >

<table style="width: 100%;">

<tr>

<td>

Book Name :

</td>

<td>

<div id="bookname"></div>

</td>

<td></td>

</tr>

<tr>

<td>Acc No</td>

<td> <input type="text" id="txtAccno" onblur="validateAccNo();" ></td>

<td><div id="accNoCallOut"></div></td>

</tr>

<tr>

<td>

Date Of Issue :

</td>

<td>

<input type="text" id="dateissuepicker">

</td>

<td></td>

</tr>

<tr>

<td>

Date Of Return

</td>

Page 301: Code Listing

<td>

<input type="text" id="datereturnpicker">

</td>

<td>

&nbsp;

</td>

</tr>

</table>

</div>

<div style="width:90%;">

<table style="margin:0 auto">

<tr>

<td><b style="font-family: Arial, Helvetica, sans-serif; font-size: medium; font-weight: bold">Enter Text</b></td>

<td><b><input id="txtBookSearchString" onkeyup="parseJsonString();" type="text" style="font-family: Arial, Helvetica, sans-serif; font-size: medium" /></b></td>

<td>

<input name="searchChoice" id="Radio1" type="radio" value="1" checked="checked" />Author

<input name="searchChoice" id="Radio2" type="radio" value="2" />Title

<input name="searchChoice" id="Radio3" type="radio" value="3" />Subject

<input name="searchChoice" id="Radio4" type="radio" value="4" />Publisher

<input name="searchChoice" id="Radio5" type="radio" value="5" />ISBN

<input name="searchChoice" id="Radio6" type="radio" value="6" />BookNo

</td>

<td><input id="Button1" type="button" value="Search.." onclick="parseJsonString();" /></td>

<td>

<div style="float:left; display:none;" id="ajaxloader">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

</table>

Page 302: Code Listing

<div id="showjson" style="width:800px;margin:0 auto;">

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 303: Code Listing

K:\SpringDale\ChartReports\RoughPage2.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class RoughPage2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

Page 304: Code Listing

K:\SpringDale\ChartReports\web.config

<?xml version="1.0"?>

<!--

For more information on how to configure your ASP.NET application, please visit

http://go.microsoft.com/fwlink/?LinkId=169433

-->

<configuration>

<appSettings>

<add key="ChartImageHandler" value="storage=memory;timeout=20;" />

</appSettings>

<connectionStrings>

<add name="springdaleConnectionString1" connectionString="Data Source=69.16.252.20;Initial Catalog=springdale;Persist Security Info=True;User ID=dbadmin;Password=sudeep" providerName="System.Data.SqlClient"/>

</connectionStrings>

<location path="UnauthorizedAccess.aspx">

<system.web>

<authorization>

<allow users="*"/>

</authorization>

</system.web>

</location>

<location path="Login.aspx">

<system.web>

<authorization>

<allow users="*"/>

</authorization>

</system.web>

</location>

<location path="Default.aspx">

<system.web>

Page 305: Code Listing

<authorization>

<deny users="?"/>

<allow users="*"/>

</authorization>

</system.web>

</location>

<system.web>

<authorization>

<deny users="?" />

<allow roles="Administrators" />

</authorization>

<authentication mode="Forms">

<forms

loginUrl="login.aspx"

cookieless="AutoDetect"

defaultUrl="Default.aspx">

</forms>

</authentication>

<customErrors mode="Off"/>

<httpHandlers>

<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

validate="false" />

<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

validate="false" />

</httpHandlers>

<pages enableViewStateMac="false" enableEventValidation="false" clientIDMode="AutoID" controlRenderingCompatibilityVersion="4.0"

validateRequest="false" viewStateEncryptionMode="Never">

<controls>

Page 306: Code Listing

<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting"

assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

</controls>

</pages>

<compilation debug="false" targetFramework="4.0">

<assemblies>

<add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

</assemblies>

<buildProviders>

<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

</buildProviders>

</compilation>

<membership defaultProvider="SecurityTutorialsSqlMembershipProvider">

<providers>

<!--Add a customized SqlMembershipProvider -->

<add name="SecurityTutorialsSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="springdaleConnectionString1" enablePasswordRetrieval="false"

Page 307: Code Listing

enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="SpringDale" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>

</providers>

</membership>

<roleManager enabled="true" defaultProvider="SecurityTutorialsSqlRoleProvider" cacheRolesInCookie="true" createPersistentCookie="false" cookieProtection="All">

<providers>

<add name="SecurityTutorialsSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" applicationName="SecurityTutorials" connectionStringName="springdaleConnectionString1"/>

</providers>

</roleManager>

</system.web>

<system.webServer>

<validation validateIntegratedModeConfiguration="false" />

<handlers>

<remove name="ChartImageHandler" />

<add name="ReportViewerWebControlHandler" preCondition="integratedMode"

verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST"

path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

</handlers>

</system.webServer>

</configuration>

Page 308: Code Listing

K:\SpringDale\css\GreyTableStyle.css

table, .table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption, .caption {

text-align: left;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot, .theader {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

}

thead th, tfoot th, .theader th {

padding:5px;

text-align:left

}

table a {

color: #333333;

text-decoration:none;

}

Page 309: Code Listing

table a:hover {

}

tr.odd, .odd {

background: #f1f1f1;

text-align:left;

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

background-color: #8AA9B7;

border-radius: 8px;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

Page 310: Code Listing

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

Page 311: Code Listing

K:\SpringDale\css\MyMenu.css

body {

font: normal .8em/1.5em Arial, Helvetica, sans-serif;

background: #ebebeb;

width: 100%;

color: #666;

}

#mainContent

{

width:87%;

margin:0 auto;

}

a {

color: #333;

}

#nav {

margin: 0 auto;

padding: 7px 6px 03px 3px;

background: #7d7d7d url(http://learnasp.in/css/gradient.png) repeat-x 0 -110px;

line-height: 100%;

border-radius: 2em;

-webkit-border-radius: 2em;

-moz-border-radius: 2em;

-webkit-box-shadow: 0 1px 3px rgba(0,0,0, .4);

-moz-box-shadow: 0 1px 3px rgba(0,0,0, .4);

}

Page 312: Code Listing

#nav li {

margin: 0 5px;

padding: 0 0 8px;

float: left;

position: relative;

list-style: none;

}

/* main level link */

#nav a {

font-weight: bold;

color:#ffffff; /*#e7e5e5;*/

text-decoration: none;

display: block;

padding: 8px 20px;

margin: 0;

vertical-align:middle;

font-size:medium;

-webkit-border-radius: 1.6em;

-moz-border-radius: 1.6em;

text-shadow: 0 1px 1px rgba(0,0,0, .3);

}

#nav a:hover {

background: #000;

color: #fff;

}

/* main level link hover */

Page 313: Code Listing

#nav .current a, #nav li:hover > a {

background: #666 url(http://learnasp.in/css/gradient.png) repeat-x 0 -40px;

color: #444;

border-top: solid 1px #f8f8f8;

-webkit-box-shadow: 0 1px 1px rgba(0,0,0, .2);

-moz-box-shadow: 0 1px 1px rgba(0,0,0, .2);

box-shadow: 0 1px 1px rgba(0,0,0, .2);

text-shadow: 0 1px 0 rgba(255,255,255, 1);

}

/* sub levels link hover */

#nav ul li:hover a, #nav li:hover li a {

background: none;

border: none;

color: #666;

-webkit-box-shadow: none;

-moz-box-shadow: none;

}

#nav ul a:hover {

background: #0078ff url(http://learnasp.in/css/gradient.png) repeat-x 0 -100px !important;

color: #fff !important;

-webkit-border-radius: 0;

-moz-border-radius: 0;

text-shadow: 0 1px 1px rgba(0,0,0, .1);

}

/* dropdown */

#nav li:hover > ul {

Page 314: Code Listing

display: block;

}

/* level 2 list */

#nav ul {

display: none;

margin: 0;

padding: 0;

width: 185px;

position: absolute;

top: 35px;

left: 0;

background: #ddd url(http://learnasp.in/css/gradient.png) repeat-x 0 0;

border: solid 1px #b4b4b4;

-webkit-border-radius: 10px;

-moz-border-radius: 10px;

border-radius: 10px;

-webkit-box-shadow: 0 1px 3px rgba(0,0,0, .3);

-moz-box-shadow: 0 1px 3px rgba(0,0,0, .3);

box-shadow: 0 1px 3px rgba(0,0,0, .3);

}

#nav ul li {

float: none;

margin: 0;

padding: 0;

}

#nav ul a {

font-weight: normal;

Page 315: Code Listing

text-shadow: 0 1px 0 #fff;

}

/* level 3+ list */

#nav ul ul {

left: 181px;

top: -3px;

}

/* rounded corners of first and last link */

#nav ul li:first-child > a {

-webkit-border-top-left-radius: 9px;

-moz-border-radius-topleft: 9px;

-webkit-border-top-right-radius: 9px;

-moz-border-radius-topright: 9px;

}

#nav ul li:last-child > a {

-webkit-border-bottom-left-radius: 9px;

-moz-border-radius-bottomleft: 9px;

-webkit-border-bottom-right-radius: 9px;

-moz-border-radius-bottomright: 9px;

}

/* clearfix */

#nav:after {

content: ".";

display: block;

clear: both;

visibility: hidden;

line-height: 0;

Page 316: Code Listing

height: 0;

}

#nav {

display: inline-block;

}

html[xmlns] #nav {

display: block;

height: 38px;

}

* html #nav {

height: 1%;

}

Page 317: Code Listing

K:\SpringDale\css\MyTableStyle.css

body {

}

#AttendanceGrid

{

border:1px solid grey;

margin-top:10px;

margin-bottom:10px;

}

#mainAttendance

{

width:100%;

}

#mainUsersRoles

{

width:100%;

}

.defaultPageHeader

{

font-family:Arial;font-size:x-large; font-weight:bold; text-decoration:underline;

color:#6B696B;

}

.defaultText

{

font-family:Times New Roman ;

Page 318: Code Listing

font-size:x-large;

font-style:italic oblique;

line-height:40px;

}

.rowWithBorder

{

border-color:#6B696B;

border-width:thin;

border-style:outset;

border-collapse:collapse;

}

.shadedHeader

{

background-color:#6B696B;

width:100%;

text-align:center;

color:White;

font-family:Arial;

font-size:medium;

font-weight:bold;

-moz-border-radius: 10px;

-webkit-border-radius: 10px;

border-radius: 10px;

border: 1px solid;

}

#headerRow {

font-family: Arial, Helvetica, sans-serif;

font-size: xx-large;

font-style: normal;

Page 319: Code Listing

line-height: 25px;

font-weight: bolder;

font-variant: normal;

color: #FFF;

text-decoration: underline;

background-color: #6B696B;

vertical-align: middle;

word-spacing: normal;

text-align: center;

display: block;

border: thin solid #333;

}

.label {

font-family: Arial, Helvetica, sans-serif;

font-size: medium;

font-style: normal;

font-weight: bold;

color: #353133;

letter-spacing: normal;

width: 45%;

}

.textbox1 {

font-family: Arial, Helvetica, sans-serif;

font-size: medium;

width: 50%;

}

Page 320: Code Listing

K:\SpringDale\css\niftyCorners.css

/*Nifty Corners Cube CSS by Alessandro Fulciniti

The following classes are added dinamically by javascript,

and their use should be avoided in the markup */

b.niftycorners,b.niftyfill{display:block}

b.niftycorners *{display:block;height: 1px;line-height:1px;font-size: 1px;

overflow:hidden;border-style:solid;border-width: 0 1px}

/*normal*/

b.r1{margin: 0 3px;border-width: 0 2px}

b.r2{margin: 0 2px}

b.r3{margin: 0 1px}

b.r4{height: 2px}

b.rb1{margin: 0 8px;border-width:0 2px}

b.rb2{margin: 0 6px;border-width:0 2px}

b.rb3{margin: 0 5px}

b.rb4{margin: 0 4px}

b.rb5{margin: 0 3px}

b.rb6{margin: 0 2px}

b.rb7{margin: 0 1px;height:2px}

b.rb8{margin: 0;height:2px}

b.rs1{margin: 0 1px}

/*transparent inside*/

b.t1{border-width: 0 5px}

b.t2{border-width: 0 3px}

b.t3{border-width: 0 2px}

b.t4{height: 2px}

b.tb1{border-width: 0 10px}

b.tb2{border-width: 0 8px}

b.tb3{border-width: 0 6px}

b.tb4{border-width: 0 5px}

Page 321: Code Listing

b.tb5{border-width: 0 4px}

b.tb6{border-width: 0 3px}

b.tb7{border-width: 0 2px;height:2px}

b.tb8{border-width: 0 1px;height:2px}

b.ts1{border-width: 0 2px}

Page 322: Code Listing

K:\SpringDale\css\NiftyLayout.css

html,body{margin:0;padding:0}

body{font: 85%/1.3 Verdana,Arial,sans-serif;

text-align: center;background: #757D88;padding-bottom:20px}

p{margin-top:0}

h1,h2,h3{font: normal normal 200% "Trebuchet MS",Arial,sans-serif}

h2{font-size:160%}

h3{font-size:120%}

div#header{width:100%;overflow:hidden;background: #595D66}

div#header h1,div#menu{width:770px;margin:0 auto;text-align:left}

div#header h1{padding: 30px 0 10px;color: #FFF}

ul#nav,ul#nav li{list-style-type:none;margin:0;padding:0}

ul#nav{float:right;font-size: 80%}

ul#nav li{float:left;margin-left: 3px;text-align: center}

ul#nav a{float:left;width: 95px;padding: 5px 0;background: #369A3D;text-decoration:none;color: #FFC}

ul#nav a:hover{background: #CDFFA1;color: #006A35}

ul#nav li.activelink a,ul#nav li.activelink a:hover{background: #FFF;color: #003}

div#container{width:770px;margin:0 auto 10px;padding:20px 0 10px;text-align:left;background:#FFF}

div#content{float:left;display:inline;width:560px;margin:0 0 10px 10px}

ul#intro,ul#intro li{list-style-type:none;margin:0;padding:0}

ul#intro{width:100%;overflow:hidden;margin-bottom:20px}

ul#intro li{float:left;width:180px;margin-right:10px;padding: 10px 0}

li#mission{background: #E65714}

li#services{background: #42B4AC}

ul#intro li#more{margin-right:0;background: #7D63A9}

Page 323: Code Listing

ul#intro p,ul#intro h3{margin:0;padding: 0 10px}

ul#intro h3{text-transform:uppercase;padding-bottom:3px;color: #FFF}

div#content h2{margin: 10px 0;color: #007BC4}

div.date{float:left;width: 4em;padding: 5px 0;background: #F1DDC4;color:#B0001E;

text-align:center;margin: 0 4px 4px 0;font-size: 80%;line-height:0.9}

div.date span{display:block;font-size: 150%;font-weight:bold}

div.comments div{background: #EEE;margin-bottom:10px}

div.comments p{padding: 10px;margin:0}

div.comments div.odd{background:#DAE6FE}

div#side{float:right;display:inline;width: 180px;background:#F3CF00; margin:0 10px 10px 0}

div#side p{margin:5px 0 10px;padding: 0 10px}

div#side div{margin: 0 0 10px;padding: 10px 0}

div#footer{clear:both;width:750px;margin:0 10px 0;padding: 10px 0;

background: #586695;color: #FFF;text-align:center}

div#footer p{margin:0}

Page 324: Code Listing

K:\SpringDale\Library\AddBooks.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AddBooks.aspx.cs" Inherits="Library_AddBooks" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<style type="text/css">

table

{

border:0 none;

}

.LabelTD

{

background-color:#7d7d7d;

font-family:Arial ;

font-size:medium;

font-weight:bold;

color:White;

}

.DataTD

{

font-family:Times New Roman;

font-size:medium;

}

.member_header

Page 325: Code Listing

{

background:#7d7d7d;width:80%; color:White; font-size:large; font-family:Arial; font-weight:bold; text-align:center; margin:0 auto;

}

.asp_table

{

margin:0 auto;

}

</style>

<script type="text/javascript">

function myPageLoad() {

// findRoles();

//$("#rptTabs").tabs();

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#chartDiv").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

Page 326: Code Listing

$("#opener").button();

$("#opener").click(SearchClicked);

return false;

}

function SearchClicked() {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

Page 327: Code Listing

</script>

<script runat="server">

protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)

{

ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message;

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError">

<Services>

<asp:ServiceReference Path="http://localhost:85/SpringDale/GetAttendanceTable.asmx" />

</Services>

</asp:ScriptManager>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Detailed Student Information" style="width:200px;height:300px;">

<p>This will show the record for the student you have selected</p>

</div>

<div style="width:100%;">

<div style="float:left;width:10%;">

Page 328: Code Listing

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:12px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:12px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

<div style="margin-top:12px; text-align:center;" id="chart-div">

</div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<asp:Panel runat="server" CssClass="member_header" ID="Panel1">

New Books

</asp:Panel>

<asp:RoundedCornersExtender ID="RoundedCornersExtender1" runat="server" TargetControlID="Panel1" Corners="All" Radius="9">

</asp:RoundedCornersExtender>

<asp:Table ID="Table1" runat="server" Width="75%" CssClass="asp_table">

<asp:TableRow CssClass="OddRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label1" runat="server" Text="ISBN"></asp:Label>

</asp:TableCell>

Page 329: Code Listing

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtISBN" runat="server" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="EvenRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label2" runat="server" Text="BookName"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtBookName" runat="server" Width="100%" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="OddRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label3" runat="server" Text="PublisherName"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtPublisherName" runat="server" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="EvenRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label4" runat="server" Text="Authors"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtAuthors" runat="server" Width="90%" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="OddRow">

Page 330: Code Listing

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label5" runat="server" Text="Edition"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtEdition" runat="server" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="EvenRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label6" runat="server" Text="Subject"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtSubject" runat="server" Width="100%" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="OddRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label7" runat="server" Text="Copies"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtCopies" runat="server" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow CssClass="EvenRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label8" runat="server" Text="Cost"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:TextBox ID="txtCost" runat="server" CssClass="DataTD"></asp:TextBox>

</asp:TableCell>

Page 331: Code Listing

</asp:TableRow>

<asp:TableRow CssClass="OddRow">

<asp:TableCell CssClass="LabelTD">

<asp:Label ID="Label10" runat="server" Text="Image"></asp:Label>

</asp:TableCell>

<asp:TableCell CssClass="DataTD">

<asp:FileUpload ID="imgUpload" runat="server" Width="90%" CssClass="DataTD" />

</asp:TableCell>

</asp:TableRow>

</asp:Table>

<table width="35%" class="asp_table">

<tr>

<td></td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>

<tr>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>

<asp:ImageButton ID="btnAddNewImg" runat="server" ImageUrl="~/css/list_add.png"

onclick="ImageButton1_Click" />

</td>

<td><asp:ImageButton ID="btnSave" runat="server" ImageUrl="~/css/list_save.png"

onclick="btnSave_Click1" /></td>

<td>

Page 332: Code Listing

&nbsp;

</td>

<td>

<img src="../css/ajax-loadersmall.gif" width="32" height="32" runat="server" alt="Please Wait..." visible="false" id="small_ajax" />

</td>

</tr>

</table>

</div>

</div>

</asp:Content>

Page 333: Code Listing

K:\SpringDale\Library\AddBooks.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Configuration;

using System.Data.SqlClient;

using AuthorsRecTableAdapters;

using BooksRecTableAdapters;

public partial class Library_AddBooks : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myPageLoad);", true);

if (!IsPostBack)

{

}

}

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)

Page 334: Code Listing

{

txtAuthors.Text = "";

txtBookName.Text = "";

txtCopies.Text = "";

txtCost.Text = "";

txtEdition.Text = "";

txtISBN.Text = "";

txtPublisherName.Text = "";

txtSubject.Text = "";

}

protected void btnSave_Click1(object sender, ImageClickEventArgs e)

{

BooksBLL obj = new BooksBLL();

small_ajax.Visible = true;

System.IO.Stream inputStream = imgUpload.PostedFile.InputStream;

int imageLength = imgUpload.PostedFile.ContentLength;

byte[] imageBinary = new byte[imageLength];

int inputRead = inputStream.Read(imageBinary, 0, imageLength);

byte[] imageData = imageBinary;

int i;

for(i=1;i<=int.Parse(txtCopies.Text);i++)

obj.insertNewBook(decimal.Parse(txtISBN.Text), txtSubject.Text, txtBookName.Text, txtPublisherName.Text, decimal.Parse(txtCopies.Text), decimal.Parse(txtCost.Text), decimal.Parse(txtEdition.Text), txtAuthors.Text, imageData);

small_ajax.Visible = false;

txtAuthors.Text = "";

txtBookName.Text = "";

txtCopies.Text = "";

txtCost.Text = "";

txtEdition.Text = "";

txtISBN.Text = "";

txtPublisherName.Text = "";

txtSubject.Text = "";

Page 335: Code Listing

}

}

Page 336: Code Listing

K:\SpringDale\Library\AddMember.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AddMember.aspx.cs" Inherits="Library_AddMember" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<style type="text/css">

.LabelTD

{

background-color:#7d7d7d;

font-family:Arial ;

font-size:medium;

font-weight:bold;

color:White;

}

.DataTD

{

font-family:Times New Roman;

font-size:medium;

}

.member_header

{

background:#7d7d7d;width:30%; color:White; font-size:large; font-family:Arial; font-weight:bold; text-align:center; margin:0 auto;

Page 337: Code Listing

}

</style>

<script type="text/javascript">

function myPageLoad() {

// findRoles();

//$("#rptTabs").tabs();

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#chartDiv").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").button();

$("#opener").click(SearchClicked);

return false;

}

Page 338: Code Listing

function SearchClicked() {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>

Page 339: Code Listing

<div style="width:100%">

<asp:Panel runat="server" CssClass="member_header" ID="Panel1">

New Member

</asp:Panel>

<asp:RoundedCornersExtender ID="RoundedCornersExtender1" runat="server" TargetControlID="Panel1" Radius="9" Corners="All">

</asp:RoundedCornersExtender>

<table width="30%" style="margin:0 auto">

<tr>

<td class="LabelTD">

EnrollNo

</td>

<td class="DataTD">

<asp:TextBox ID="txtEnroll" runat="server"></asp:TextBox>

</td>

</tr>

<tr>

<td class="LabelTD">

Total Limit

</td>

<td class="DataTD">

<asp:TextBox ID="txtLimit" runat="server"></asp:TextBox>

</td>

</tr>

<tr>

<td class="LabelTD">

Status

</td>

<td class="DataTD">

<asp:RadioButton GroupName="Status" ID="RadioButton1" runat="server" Text="Inactive" />

<asp:RadioButton GroupName="Status" ID="RadioButton2" Text ="Active" runat="server" />

</td>

Page 340: Code Listing

</tr>

<tr>

<td class="LabelTD">

Member Pic

</td>

<td class="DataTD">

<asp:FileUpload ID="imgUpload" runat="server" />

</td>

</tr>

<tr>

<td >&nbsp;

</td>

<td class="DataTD">

</td>

</tr>

</table>

<table style="width:6%; margin:0 auto">

<tr>

<td>

&nbsp;

</td>

<td>

<asp:ImageButton ID="imgAddnew" runat="server" ImageUrl="~/css/list_add.png"

onclick="imgAddnew_Click" />

</td>

<td>

&nbsp;

</td>

<td>

<asp:ImageButton ID="imgSave" runat="server" ImageUrl="~/css/list_save.png"

onclick="imgSave_Click" />

Page 341: Code Listing

</td>

</tr>

</table>

<br />

<br />

<asp:Label ID="Label1" runat="server" Text=" "></asp:Label>

</div>

</asp:Content>

Page 342: Code Listing

K:\SpringDale\Library\AddMember.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Library_AddMember : System.Web.UI.Page

{

byte[] imageBinary;

byte[] imageData;

protected void Page_Load(object sender, EventArgs e)

{

}

protected void imgSave_Click(object sender, ImageClickEventArgs e)

{

LibMemberBLL obj = new LibMemberBLL();

int val = 0;

if (RadioButton1.Checked)

val = 1;

System.IO.Stream inputStream = imgUpload.PostedFile.InputStream;

int imageLength = imgUpload.PostedFile.ContentLength;

imageBinary = new byte[imageLength];

int inputRead = inputStream.Read(imageBinary, 0, imageLength);

imageData = imageBinary;

imgSave.Enabled = true;

if (obj.InsertData(decimal.Parse(txtEnroll.Text), decimal.Parse(txtLimit.Text), val, imageData))

Page 343: Code Listing

Label1.Text = "Data Inserted Successfully";

}

protected void imgAddnew_Click(object sender, ImageClickEventArgs e)

{

txtLimit.Text = "";

txtEnroll.Text = "";

Label1.Text = "Enter Data....";

}

}

Page 344: Code Listing

K:\SpringDale\Library\BookReturn.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="BookReturn.aspx.cs" Inherits="Library_BookReturn" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<style type="text/css">

table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption {

text-align: center;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

Page 345: Code Listing

}

thead th, tfoot th {

padding:5px;

}

table a {

color: #333333;

text-decoration:none;

}

table a:hover {

text-decoration:underline;

}

tr.odd {

background: #f1f1f1;

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

Page 346: Code Listing

background-color: #8AA9B7;

border-radius: 8px;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

</style>

<script type="text/javascript">

var myObject = null;

$(document).ready(function () {

$('#issueButton').button();

$("#ReturnBook").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 800,

height: 450

});

$('#txtAccNo').focus();

});

function GetMemberData() {

$.fx.speeds._default = 1000;

$("#ajaxloader").show();

$("#showjson").hide();

var txtAccNo = document.getElementById('txtAccNo');

Page 347: Code Listing

var i = 0;

LibraryManagement.getDataForMember(txtAccNo.value, jsonFeedRecieved);

}

function jsonFeedRecieved(result) {

var i = 0;

var j = 0;

if (result == "") {

Notifier.info('No Pending Returns', 'No Data Found For The User');

$("#ajaxloader").hide();

return false;

}

var temp = result.toString();

var upper = temp.split("^");

var txt = "<table style='margin:0 auto;width:100%;border:none;'>";

txt += "<thead><tr><th>TranID</th><th>BookNo</th><th>AccNo</th><th>Title</th><th>IssueDate</th><th>DueDate</th><th>Fine</th><th>Return</th></tr></thead><tbody>";

for (i = 0; i < upper.length; i++) {

var upper2 = upper[i].split("=");

txt+="<tr class='hovereffect'>";

//for (j = 0; j < upper2.length; j++) {

// alert(upper2[j].toString() + "," + j.toString());

var today = new Date();

var duedate=new Date(upper2[3].toString());

var fine = 0.0;

if (today < duedate) {

var today_mill = today.getTime();

var due_mill = duedate.getTime();

Page 348: Code Listing

var oneday = 1000 * 60 * 60 * 24;

val = ((today_mill - due_mill) / oneday) * 1.50;

fine = Math.floor(val);

}

txt += "<td>" + upper2[5].toString() + "</td>";

txt += "<td>" + upper2[0].toString() + "</td>";

txt += "<td>" + upper2[1].toString() + "</td>";

txt += "<td>" + upper2[6].toString() + "</td>";

txt += "<td>" + upper2[2].toString() + "</td>";

txt += "<td>" + upper2[3].toString() + "</td>";

if (parseFloat(upper2[4].toString()) > 0)

txt += "<td>" + val.toString() + "</td>";

else

txt += "<td>" + upper2[4].toString() + "</td>";

txt += "<td><a href='javascript:void(0);' onclick='returnBook(" + upper2[5].toString() + "," + upper2[1].toString() +

"," + upper2[0].toString() + ");'><img src='http://learnasp.in/css/edit_undo.png' alt='X'/></a>" + "</td>";

txt += "</tr>";

}

txt += "</tbody></table>";

$("#ajaxloader").hide();

$("#showjson").show("fast");

$("#showjson").html(txt);

Page 349: Code Listing

//divid.innerHTML = txt;

}

function returnBook(tranid, accno, bookno) {

returndate = new Date();

var ret_date = (returndate.getMonth() + 1) + "/" + returndate.getDate() + "/" + returndate.getFullYear();

LibraryManagement.ReturnBook(tranid, accno, bookno, ret_date, returncomplete);

}

function returncomplete(result) {

$("#ajaxloader").hide();

if(result==true)

Notifier.info('Book Return Successfull', 'Book Returned Successfully');

else

Notifier.error('This is embarassing. The Book could not be returned','Book Return Crashed');

//alert(result);

}

</script>

<style type="text/css">

#Text1

{

width: 293px;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

Page 350: Code Listing

<Services>

<asp:ServiceReference Path="http://learnasp.in/LibraryManagement.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate><!--

<div id="ReturnBook" title="Book Return Dialog" >

<table style="width: 100%;">

<tr>

<td>

Book Name :

</td>

<td>

<div id="bookname"></div>

</td>

<td>&nbsp;<input id="jsonindex" type="hidden" /></td>

</tr>

<tr>

<td>Acc No</td>

<td> <input type="text" id="txtAccno" onblur="validateAccNo();" ></td>

<td>

<div style="float:left; display:none;" id="ajaxLoader2">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

<tr>

<td>

Date Of Issue :

</td>

Page 351: Code Listing

<td>

<input type="text" id="dateissuepicker">

</td>

<td></td>

</tr>

<tr>

<td>

Date Of Return

</td>

<td>

<input type="text" id="datereturnpicker">

</td>

<td>

&nbsp;

</td>

</tr>

<tr>

<td>

&nbsp;</td>

<td>

&nbsp;</td>

<td>

<input id="issueButton" type="button" value="Issue" onclick="issueBook();" style="display:none;" />

</td>

</tr>

</table>

</div>-->

<div style="width:90%;">

<table style="margin:0 auto">

<tr>

<td><b style="font-family: Arial, Helvetica, sans-serif; font-size: medium; font-weight: bold">Enter AccNo</b></td>

Page 352: Code Listing

<td><b><input id="txtAccNo" onkeyup="GetMemberData();" type="text" style="font-family: Arial, Helvetica, sans-serif; font-size: medium" /></b></td>

<td>

&nbsp;

</td>

<td><input id="Button1" type="button" value="Search.." onclick="parseJsonString();" /></td>

<td>

<div style="float:left; display:none;" id="ajaxloader">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

</table>

<div id="showjson" style="width:800px;margin:0 auto;">

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 353: Code Listing

K:\SpringDale\Library\BookReturn.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Library_BookReturn : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

Page 354: Code Listing

K:\SpringDale\Library\FindBooks.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="FindBooks.aspx.cs" Inherits="Library_FindBooks" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<style type="text/css">

.ajx_cmb_box

{

vertical-align:top;

}

.ajax__combobox_itemlist

{

margin: 0px;

padding: 0px;

cursor: default;

list-style-type: none;

text-align: right;

border: solid 1px ButtonShadow;

background-color: Window;

font-size: xx-large;

font-family: Verdana;

width: 100%;

/*color:Red;*/

}

.ajax__combobox_itemlist li

{

white-space: nowrap;

padding: 0 3px 0 2px;

Page 355: Code Listing

color:Blue;

}

#cmbBookOpts

{

width: 126px;

}

.LabelTD

{

background-color:#7d7d7d;

font-family:Arial ;

font-size:medium;

font-weight:bold;

color:White;

}

.DataTD

{

font-family:Times New Roman;

font-size:medium;

}

.member_header

{

background:#7d7d7d;width:60%; color:White; font-size:large; font-family:Arial; font-weight:bold; text-align:center; margin:0 auto;

}

table

{

border:0 none;

}

</style>

</asp:Content>

Page 356: Code Listing

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<table width="30%" style="margin:0 auto;">

<tr style="vertical-align:top">

<td>

<select runat="server" id="cmbBookOpts"

style="font-family: Arial; font-size: medium; font-weight: normal" >

<option value="0">Book Title</option>

<option value="1">Author</option>

<option value="2">Subject</option>

<option value="3">BookNo</option>

<option value="4">ISBN</option>

</select>

</td>

<td>

<asp:TextBox ID="txtBookSearch" runat="server" Font-Names="Arial"

Font-Size="Medium"></asp:TextBox>

</td>

<td>

<asp:Button ID="btnSearchBooks" runat="server" Text="Search"

onclick="Button1_Click" Font-Names="Arial" Font-Size="Medium" />

</td>

</tr>

</table>

Page 357: Code Listing

<asp:Panel ID="Panel1" runat="server" CssClass="member_header">

Books Detail

</asp:Panel>

<asp:RoundedCornersExtender ID="RoundedCornersExtender1" runat="server" TargetControlID="Panel1" Radius="9" Corners="All">

</asp:RoundedCornersExtender>

<table style="margin:0 auto;width:60%">

<tr>

<td>

<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="100%"

AllowPaging="True" AutoGenerateRows="False" BackColor="White"

BorderColor="#EBEBEB" BorderStyle="None" CellPadding="3"

DataKeyNames="BookNo" Font-Names="Arial"

Font-Size="Medium" GridLines="None"

onitemcreated="DetailsView1_ItemCreated">

<AlternatingRowStyle BackColor="#DCDCDC" Font-Names="Arial"

Font-Size="Medium" />

<EditRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />

<EmptyDataRowStyle BackColor="#EBEBEB" />

<FieldHeaderStyle Font-Bold="True" Font-Names="Arial" Font-Size="Medium"

Width="100px" />

<Fields>

<asp:BoundField DataField="BookNo" HeaderText="BookNo" ReadOnly="True"

SortExpression="BookNo" />

<asp:BoundField DataField="ISBN" HeaderText="ISBN" SortExpression="ISBN" />

<asp:BoundField DataField="BookName" HeaderText="BookName"

SortExpression="BookName" />

<asp:BoundField DataField="Edition" HeaderText="Edition"

SortExpression="Edition" />

<asp:BoundField DataField="Subject" HeaderText="Subject"

Page 358: Code Listing

SortExpression="Subject" />

<asp:BoundField DataField="Copies" HeaderText="Copies"

SortExpression="Copies" />

<asp:BoundField DataField="PublisherName" HeaderText="PublisherName"

SortExpression="PublisherName" />

<asp:BoundField DataField="AuthorName" HeaderText="AuthorName"

SortExpression="AuthorName" />

</Fields>

<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />

<PagerStyle BackColor="#999999" Font-Names="Times New Roman" Font-Size="Small"

ForeColor="Black" HorizontalAlign="Center" />

<RowStyle BackColor="#EEEEEE" Font-Names="Arial" Font-Size="Medium"

ForeColor="Black" />

</asp:DetailsView>

</td>

<td>

</td>

</tr>

</table>

<asp:ObjectDataSource ID="objAuthor" runat="server"

OldValuesParameterFormatString="original_{0}" onselecting="objAuthor_Selecting"

SelectMethod="GetDataByAuthor" TypeName="BooksBLL">

<SelectParameters>

<asp:Parameter Name="authorname" Type="String" />

</SelectParameters>

</asp:ObjectDataSource>

<asp:ObjectDataSource ID="objBookTitle" runat="server"

Page 359: Code Listing

OldValuesParameterFormatString="original_{0}"

onselecting="objBookTitle_Selecting" SelectMethod="GetDataByTitle"

TypeName="BooksBLL">

<SelectParameters>

<asp:Parameter Name="booktitle" Type="String" />

</SelectParameters>

</asp:ObjectDataSource>

<asp:ObjectDataSource ID="objBookSubject" runat="server"

OldValuesParameterFormatString="original_{0}"

onselecting="objBookSubject_Selecting" SelectMethod="GetDataBySubject"

TypeName="BooksBLL">

<SelectParameters>

<asp:Parameter Name="booksubject" Type="String" />

</SelectParameters>

</asp:ObjectDataSource>

<asp:ObjectDataSource ID="objBookNo" runat="server"

OldValuesParameterFormatString="original_{0}" onselecting="objBookNo_Selecting"

SelectMethod="GetDataByBookNo" TypeName="BooksBLL">

<SelectParameters>

<asp:Parameter Name="bookno" Type="Decimal" />

</SelectParameters>

</asp:ObjectDataSource>

<asp:ObjectDataSource ID="objBookISBN" runat="server"

OldValuesParameterFormatString="original_{0}"

onselecting="objBookISBN_Selecting" SelectMethod="GetDataByISBN"

TypeName="BooksBLL">

<SelectParameters>

<asp:Parameter Name="isbn" Type="Decimal" />

</SelectParameters>

</asp:ObjectDataSource>

<asp:UpdateProgress ID="UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel1" runat="server" >

<ProgressTemplate>

Page 360: Code Listing

<asp:Image ID="Image1" runat="server" Width="150px" Height="150px" ImageUrl="http://learnasp.in/css/BigLoader.gif" />

</ProgressTemplate>

</asp:UpdateProgress>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 361: Code Listing

K:\SpringDale\Library\FindBooks.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using BooksRecTableAdapters;

using AuthorsRecTableAdapters;

public partial class Library_FindBooks : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

}

protected void Button1_Click(object sender, EventArgs e)

{

try

{

if (int.Parse(cmbBookOpts.Items[cmbBookOpts.SelectedIndex].Value) == 0)

{

DetailsView1.DataSourceID = "objBookTitle";

Page 362: Code Listing

DetailsView1.AllowPaging = true;

DetailsView1.DataBind();

}

else if (int.Parse(cmbBookOpts.Items[cmbBookOpts.SelectedIndex].Value) == 1)

{

//GridView1.DataSource = obj.GetDataByAuthor(txtBookSearch.Text.ToUpper());

DetailsView1.DataSourceID = "objAuthor";

DetailsView1.AllowPaging = true;

DetailsView1.DataBind();

}

else if (int.Parse(cmbBookOpts.Items[cmbBookOpts.SelectedIndex].Value) == 2)

{

DetailsView1.DataSourceID = "objBookSubject";

DetailsView1.AllowPaging = true;

DetailsView1.DataBind();

}

else if (int.Parse(cmbBookOpts.Items[cmbBookOpts.SelectedIndex].Value) == 3)

{

DetailsView1.DataSourceID = "objBookNo";

DetailsView1.AllowPaging = true;

Page 363: Code Listing

DetailsView1.DataBind();

}

else if (int.Parse(cmbBookOpts.Items[cmbBookOpts.SelectedIndex].Value) == 4)

{

DetailsView1.DataSourceID = "objBookISBN";

DetailsView1.AllowPaging = true;

DetailsView1.DataBind();

}

}

catch (Exception ex) { }

//GridView1.DataBind();

}

protected void objBookTitle_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

e.InputParameters["booktitle"] = txtBookSearch.Text;

}

protected void objBookSubject_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

e.InputParameters["booksubject"] = txtBookSearch.Text;

}

protected void objBookISBN_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

e.InputParameters["isbn"] = txtBookSearch.Text;

}

Page 364: Code Listing

protected void objBookNo_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

e.InputParameters["bookno"] = txtBookSearch.Text;

}

protected void objAuthor_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

e.InputParameters["authorname"] = txtBookSearch.Text;

}

protected void DetailsView1_ItemCreated(object sender, EventArgs e)

{

DataKey dk = DetailsView1.DataKey;

//Label1.Text = dk.Value.ToString();

}

}

Page 365: Code Listing

K:\SpringDale\Library\RoughPage2.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="RoughPage2.aspx.cs" Inherits="RoughPage2" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<style type="text/css">

table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption {

text-align: center;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

Page 366: Code Listing

}

thead th, tfoot th {

padding:5px;

}

table a {

color: #333333;

text-decoration:none;

}

table a:hover {

text-decoration:underline;

}

tr.odd {

background: #f1f1f1;

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

Page 367: Code Listing

background-color: #8AA9B7;

border-radius: 8px;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

</style>

<script type="text/javascript">

var myObject = null;

$(document).ready(function () {

$('#issueButton').button();

$("#IssueBook").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 800,

height: 450

});

$("#dateissuepicker").datepicker({ dateFormat: 'mm/dd/yy',

onSelect: function (dateText, inst) {

/*var cooldate = dateText.split('/');

var now = new Date();

var msg = "";

if (cooldate[0] != now.getDate())

msg += "Incorrect Date ";

if (cooldate[1] != (now.getMonth() + 1))

msg += " Incorrect Month Value";

if (cooldate[2] != (now.getYear() + 1900))

msg += " Incorrect Year";

if (msg != "")

Page 368: Code Listing

Notifier.error(msg, 'Issue Date May be Incorrect');*/

}

});

$("#datereturnpicker").datepicker({ dateFormat: 'mm/dd/yy', onSelect: function (dateText, inst) {

var cooldate = dateText.split('/');

var now = new Date();

var msg = "";

if (cooldate[2] != (now.getYear() + 1900))

msg += " Are you sure about this date.Specially the year";

if (msg != "")

Notifier.error(msg, 'Issue Date May be Incorrect');

}

});

$('#txtBookSearchString').focus();

});

function parseJsonString() {

$.fx.speeds._default = 1000;

$("#ajaxloader").show();

$("#showjson").hide();

var radiogrp = document.getElementsByName('searchChoice');

var txtsearch = document.getElementById('txtBookSearchString');

var i=0;

for (i = 0; i < radiogrp.length; i++) {

if (radiogrp[i].value == 1 && radiogrp[i].checked) {

Page 369: Code Listing

LibraryManagement.getDataByAuthor(txtsearch.value,jsonFeedRecieved);

}

else if (radiogrp[i].value == 2 && radiogrp[i].checked) {

LibraryManagement.getDataByTitle(txtsearch.value, jsonFeedRecieved);

}

else if (radiogrp[i].value == 3 && radiogrp[i].checked) {

LibraryManagement.getDataBySubject(txtsearch.value, jsonFeedRecieved);

}

else if (radiogrp[i].value == 4 && radiogrp[i].checked) {

LibraryManagement.getDataByPublisher(txtsearch.value, jsonFeedRecieved);

}

else if (radiogrp[i].value == 5 && radiogrp[i].checked) {

LibraryManagement.getDataByISBN( parseInt(txtsearch.value), jsonFeedRecieved);

}

else if (radiogrp[i].value == 6 && radiogrp[i].checked) {

LibraryManagement.getDataByBookNo(parseInt(txtsearch.value), jsonFeedRecieved);

}

}

}

function jsonFeedRecieved(result) {

var i=0;

myObject = jQuery.parseJSON(result);

var txt = "<table style='margin:0 auto;width:100%;border:none;'>";

txt += "<thead><tr><th>BookNo</th><th>Title</th><th>Authors</th><th>Edition</th><th>Subject</th><th>Publisher</th><th>Avail</th></tr></thead><tbody>";

for (i = 0; i < myObject.length; i++) {

Page 370: Code Listing

txt += "<tr onclick='openIssue(" + i.toString() + ");' class='hovereffect'><td>" + myObject[i].BookNo + "</td>";

txt += "<td>" + myObject[i].BookName + "</td>";

txt += "<td>" + myObject[i].AuthorName + "</td>";

txt += "<td>" + myObject[i].Edition + "</td>";

txt += "<td>" + myObject[i].Subject + "</td>";

txt += "<td>" + myObject[i].PublisherName + "</td>";

if (myObject[i].Available > 0) {

txt += "<td>" + "<a href='#' ><img alt='Yes' src='http://learnasp.in/css/tick_02.png'/></a>" + "</td></tr>";

}

else {

txt += "<td>" + "<img alt='No' src='http://learnasp.in/css/remove.png'/>" + "</td></tr>";

}

}

txt += "</tbody></table>";

$("#ajaxloader").hide();

$("#showjson").show("fast");

$("#showjson").html(txt);

//divid.innerHTML = txt;

}

function openIssue(i) {

$('#issueButton').hide();

$('#jsonindex').val(i);

$("#bookname").html(myObject[i].BookName);

$("#IssueBook").dialog("open");

Page 371: Code Listing

$("#IssueBook").dialog("option", "height", 450);

$("#IssueBook").dialog("option", "width", 800);

}

function validateAccNo() {

$('#ajaxLoader2').show();

var valtxt = document.getElementById("txtAccno").value;

if (valtxt == undefined || valtxt == '') {

Notifier.warning('Oooops Acc No Not Given!', 'Alert!Alert!Alert');

}

else {

LibraryManagement.checkAccNo(parseInt(valtxt), function (result) {

$('#ajaxLoader2').hide();

if (result == false) {

Notifier.error('Please check the account no.Or the book limit', 'Acc No Not Found Or Book Limit Exceeded');

}

else {

$('#issueButton').show();

}

});

}

}

function issueBook() {

var ind,accno;

ind=$('#jsonindex').val();

accno = $('#txtAccno').val();

Page 372: Code Listing

var issdate = $('#dateissuepicker').val().toString();

var retdate = $('#datereturnpicker').val().toString();

var issuedate = new Date(issdate);

var returndate = new Date(retdate);

issdate = (issuedate.getMonth() + 1) + "/" + issuedate.getDate() + "/" + issuedate.getFullYear();

retdate = (returndate.getMonth() + 1) + "/" + returndate.getDate() + "/" + returndate.getFullYear();

//alert(issuedate);

LibraryManagement.issueBook(accno, myObject[ind].BookNo, issdate,retdate, function (result) {

if (result == true) {

Notifier.info('Book Issued Successfully', 'Book Issue Success');

}

else {

Notifier.error('Sorry This Transaction Failed', 'Book Issue Problem');

}

});

}

</script>

<style type="text/css">

#Text1

{

width: 293px;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/LibraryManagement.asmx" />

Page 373: Code Listing

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<div id="IssueBook" title="Book Issue Dialog" >

<table style="width: 100%;">

<tr>

<td>

Book Name :

</td>

<td>

<div id="bookname"></div>

</td>

<td>&nbsp;<input id="jsonindex" type="hidden" /></td>

</tr>

<tr>

<td>Acc No</td>

<td> <input type="text" id="txtAccno" onblur="validateAccNo();" ></td>

<td>

<div style="float:left; display:none;" id="ajaxLoader2">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

<tr>

<td>

Date Of Issue :

</td>

<td>

<input type="text" id="dateissuepicker">

Page 374: Code Listing

</td>

<td></td>

</tr>

<tr>

<td>

Date Of Return

</td>

<td>

<input type="text" id="datereturnpicker">

</td>

<td>

&nbsp;

</td>

</tr>

<tr>

<td>

&nbsp;</td>

<td>

&nbsp;</td>

<td>

<input id="issueButton" type="button" value="Issue" onclick="issueBook();" style="display:none;" />

</td>

</tr>

</table>

</div>

<div style="width:90%;">

<table style="margin:0 auto">

<tr>

<td><b style="font-family: Arial, Helvetica, sans-serif; font-size: medium; font-weight: bold">Enter Text</b></td>

<td><b><input id="txtBookSearchString" onkeyup="parseJsonString();" type="text" style="font-family: Arial, Helvetica, sans-serif; font-size: medium" /></b></td>

<td>

Page 375: Code Listing

<input name="searchChoice" id="Radio1" type="radio" value="1" checked="checked" />Author

<input name="searchChoice" id="Radio2" type="radio" value="2" />Title

<input name="searchChoice" id="Radio3" type="radio" value="3" />Subject

<input name="searchChoice" id="Radio4" type="radio" value="4" />Publisher

<input name="searchChoice" id="Radio5" type="radio" value="5" />ISBN

<input name="searchChoice" id="Radio6" type="radio" value="6" />BookNo

</td>

<td><input id="Button1" type="button" value="Search.." onclick="parseJsonString();" /></td>

<td>

<div style="float:left; display:none;" id="ajaxloader">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

</table>

<div id="showjson" style="width:800px;margin:0 auto;">

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 376: Code Listing

K:\SpringDale\Library\RoughPage2.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class RoughPage2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Button2_Click(object sender, EventArgs e)

{

bool ans = false;

decimal fine = 0,bookno=6,accno=1;

IssuesReturnsBll obj = new IssuesReturnsBll();

string issuedate="01/04/2012";

string returndate = "08/04/2012";

DateTime issuedt = DateTime.Parse(issuedate);//, System.Globalization.CultureInfo.CreateSpecificCulture("en-UK").DateTimeFormat);

DateTime returndt = DateTime.Parse(returndate);//, System.Globalization.CultureInfo.CreateSpecificCulture("en-UK").DateTimeFormat);

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "dd/MM/yyyy";

DateTime validissueDate = Convert.ToDateTime(issuedt, dateInfo);

DateTime validreturnDate = Convert.ToDateTime(returndt, dateInfo);

//ans = obj.IssueBook(bookno, accno, validissueDate, validreturnDate, fine);

}

Page 377: Code Listing

}

Page 378: Code Listing

K:\SpringDale\Student\StudentProfile.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="StudentProfile.aspx.cs" Inherits="Student_StudentProfile" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<link type="text/css" href="http://learnasp.in/css/MyTableStyle.css" />

<link type="text/css" href="http://learnasp.in/css/GreyTableStyle.css" />

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<style type="text/css">

.HeaderCSS

{

background-image:url('http://learnasp.in/css/bg1.png');

background-repeat:repeat;

font-family:Times New Roman;

font-weight:bold;

font-size:large;

cursor:pointer;

height:1.4em;

padding:5px;

border:1 solid grey;

}

.ContentCss

{

border:0 none;

}

Page 379: Code Listing

.mGrid {

width: 100%;

background-color: #fff;

margin: 5px 0 10px 0;

border: solid 1px #525252;

border-collapse:collapse;

}

.mGrid td {

padding: 2px;

border: solid 1px #c1c1c1;

color: #717171;

}

.mGrid th {

padding: 4px 2px;

color: #fff;

background: #424242 url("http://learnasp.in/css/grd_head.png") repeat-x top;

border-left: solid 1px #525252;

font-size: 0.9em;

}

.mGrid .alt { background: #fcfcfc url("http://learnasp.in/css/grd_alt.png") repeat-x top; }

.mGrid .pgr { background: #424242 url("http://learnasp.in/css/grd_pgr.png") repeat-x top; }

.mGrid .pgr table { margin: 5px 0; }

.mGrid .pgr td {

border-width: 0;

padding: 0 6px;

border-left: solid 1px #666;

font-weight: bold;

color: #fff;

line-height: 12px;

}

.mGrid .pgr a { color: #666; text-decoration: none; }

.mGrid .pgr a:hover { color: #000; text-decoration: none; }

Page 380: Code Listing

</style>

<script type="text/javascript">

function myPageLoad() {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").button();

$("#opener").click(SearchClicked);

//$("#btnAddRole").button();

return false;

}

function SearchClicked() {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

Page 381: Code Listing

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

Page 382: Code Listing

<asp:Accordion ID="studentMain" runat="server" HeaderCssClass="HeaderCSS" Width="98%" FadeTransitions="true"

TransitionDuration="250"

FramesPerSecond="40"

RequireOpenedPane="false"

SuppressHeaderPostbacks="true">

<Panes>

<asp:AccordionPane ID="PersonalPane" runat="server" ContentCssClass="ContentCss">

<Header>

Personal Information

</Header>

<Content>

<table id="studentInfo" width="100%" border="0">

<tbody>

<tr>

<td>

<div style="float:left; width:150px;height:150px;">

<asp:Image ID="Image1" runat="server" Width="100px" Height="100px" />

</div>

<div>

<asp:DetailsView GridLines="None" BorderStyle="None" ID="studentDetails" runat="server"

Height="50px" Width="600px"

RowStyle-VerticalAlign="Middle" RowStyle-Width="100%"

RowStyle-BorderStyle="None" Font-Size="Medium" HeaderStyle-BackColor="#3366CC"

FieldHeaderStyle-BackColor="#CCCCCC" FieldHeaderStyle-Width="400px">

</asp:DetailsView>

</div>

</td>

<td>

Page 383: Code Listing

</td>

<td></td>

</tr>

</tbody>

</table>

</Content>

</asp:AccordionPane>

<asp:AccordionPane ID="AttendancePanel" runat="server">

<Header>

Your Attendance

</Header>

<Content>

<asp:GridView ID="attendanceGrid" runat="server" Width="100%"

GridLines="None"

AllowPaging="false"

CssClass="mGrid"

PagerStyle-CssClass="pgr"

AlternatingRowStyle-CssClass="alt" >

</asp:GridView>

</Content>

</asp:AccordionPane>

</Panes>

</asp:Accordion>

<asp:ObjectDataSource ID="studentAttendance" runat="server"

OldValuesParameterFormatString="original_{0}"

SelectMethod="GetMonthlyAttendance" TypeName="AttendanceRecBLL">

<SelectParameters>

<asp:Parameter Name="enrollno" Type="Decimal" />

</SelectParameters>

</asp:ObjectDataSource>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"

ConnectionString="<%$ ConnectionStrings:springdaleConnectionString2 %>"

SelectCommand="SELECT EnrollNo, RollNo, FirstName, LastName, ClassID,

Page 384: Code Listing

(SELECT ClassName

FROM ClassRec

WHERE (ClassID = StudentRec.ClassID)) AS ClassName,

(SELECT ClassSection

FROM ClassRec AS ClassRec_1

WHERE (ClassID = StudentRec.ClassID)) AS ClassSection, FathersName, MothersName, Address, City, State, HomePhone, CompanyName, CompanyAddress,

CompanyPhone, Designation, LastCollege, LastResult, StudentImage

FROM StudentRec where EnrollNo=@enroll">

<SelectParameters>

<asp:Parameter Name="enroll" />

</SelectParameters>

</asp:SqlDataSource>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 385: Code Listing

K:\SpringDale\Student\StudentProfile.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Text.RegularExpressions;

public partial class Student_StudentProfile : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myPageLoad);", true);

if (!IsPostBack)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

Parameter enroll = SqlDataSource1.SelectParameters[0];

SqlDataSource1.SelectParameters.Remove(enroll);

SqlDataSource1.SelectParameters.Add("enroll", num);

Image1.ImageUrl = "http://learnasp.in/ShowImage.ashx?enroll=" + num.ToString();

SqlDataSource1.DataBind();

studentDetails.DataSource = SqlDataSource1;

studentDetails.DataBind();

Parameter enroll2 = studentAttendance.SelectParameters[0];

Page 386: Code Listing

studentAttendance.SelectParameters.Remove(enroll2);

studentAttendance.SelectParameters.Add("enrollno", num);

//studentAttendance.DataBind();

attendanceGrid.DataSource = studentAttendance;

attendanceGrid.DataBind();

//Response.Write(num);

}

}

}

Page 387: Code Listing

K:\SpringDale\Student\Web.config

<?xml version="1.0"?>

<configuration>

<system.web>

<authorization>

<allow roles="Administrators"/>

<allow roles="Teachers" />

<allow roles="Students" />

<deny users="*"/>

</authorization>

</system.web>

</configuration>

Page 388: Code Listing

K:\SpringDale\Reports\ShowReports.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ShowReports.aspx.cs" Inherits="Reports_ShowReports" %>

<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<style type="text/css">

.fancy .ajax__tab_header

{

font-size:13px;

font-weight:bold;

color:white;

font-family:sans-serif;

background-color:#7D7D7D;

}

.handlerresize

{

color:Blue;

}

Page 389: Code Listing

table

{

border:0 none;}

</style>

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function myPageLoad() {

// findRoles();

//$("#rptTabs").tabs();

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#chartDiv").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").button();

$("#opener").click(SearchClicked);

Page 390: Code Listing

/*to keep the selected tab index*/

//var currTab = $("#<%= fldHidden.ClientID %>").val();

//$("#rptTabs").tabs({ selected: currTab });

//var indexToSelect = parseInt($('#fldHidden').val());

//$('#rptTabs').tabs('select', indexToSelect);

return false;

}

function SearchClicked()

{

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

})

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

}

Page 391: Code Listing

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

</script>

<script runat="server">

protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)

{

ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message;

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" ScriptMode="Release">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

Page 392: Code Listing

</div>

<div id="StudentAttRec" title="Detailed Student Information" style="width:200px;height:300px;">

<p>This will show the record for the student you have selected</p>

</div>

<div id="chartDiv" title="Chart Info" style="width:500px;height:500px;">

<rsweb:ReportViewer ID="rptChartViewer" runat="server" Width="100%">

</rsweb:ReportViewer>

</div>

<div style="width:100%;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:12px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:12px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

<div style="margin-top:12px; text-align:center;" id="chart-div">

</div>

<asp:UpdateProgress ID="UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel1" runat="server" >

<ProgressTemplate>

Page 393: Code Listing

<asp:Image ID="Image1" runat="server" Width="150px" Height="150px" ImageUrl="http://learnasp.in/css/BigLoader.gif" />

</ProgressTemplate>

</asp:UpdateProgress>

</div>

<div style="float:left;width:4%; padding-left:20px;"><asp:HiddenField ID="fldHidden" runat="server" ClientIDMode="Static" />&nbsp;

<asp:ObjectDataSource ID="ClassDS" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetUniqueName" TypeName="ClassRecBLL"></asp:ObjectDataSource>

<asp:ObjectDataSource ID="SectionDS" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetUniqueSection" TypeName="ClassRecBLL"></asp:ObjectDataSource>

</div>

<div id="masterCtrl" style="height:600px;float:left;width:74%; margin-top:5px;">

<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="2" OnActiveTabChanged="onActiveTabChanged"

Width="100%" Font-Size="Medium" Height="1600px" >

<asp:TabPanel ID="TabPanel1" runat="server" HeaderText="DayReport">

<ContentTemplate>

<div id="divrptDay">

<p>

<table style="width:100%">

<tr style="font-size:medium; font-weight:bold;">

Page 394: Code Listing

<td>Class : <asp:DropDownList ID="lstClass" runat="server" DataSourceID="ClassDS"

DataTextField="ClassName" DataValueField="ClassName"></asp:DropDownList></td><td>Section :

<asp:DropDownList ID="lstSection" runat="server" DataSourceID="SectionDS" DataTextField="ClassSection" DataValueField="ClassSection"></asp:DropDownList>

</td>

<td>Date : <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>

<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtDate" Format="dd-MM-yyyy" ></asp:CalendarExtender>

</td>

<td>

<asp:Button ID="Button1" runat="server" Text="Show Report" class="ui-button-text-icon ui-button ui-widget

ui-state-default ui-corner-all ui-button-text-only" onclick="Button1_Click" />

</td>

</tr>

</table>

Page 395: Code Listing

</p>

<p>

<rsweb:ReportViewer ID="rptDay" runat="server" Width="100%"

Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)"

WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt"

Visible="False">

</rsweb:ReportViewer></p></div>

</ContentTemplate>

</asp:TabPanel>

<asp:TabPanel ID="TabPanel2" runat="server" HeaderText="Class Monthly">

<ContentTemplate>

<div id="rptMonth">

<p>

<table style="width:100%">

<tr style="font-size:medium; font-weight:bold;">

<td>

Page 396: Code Listing

Class :

<asp:DropDownList ID="lstClass2" runat="server" DataSourceID="ClassDS"

DataTextField="ClassName" DataValueField="ClassName">

</asp:DropDownList>

</td>

<td>

Section :

<asp:DropDownList ID="lstSection2" runat="server" DataSourceID="SectionDS"

DataTextField="ClassSection" DataValueField="ClassSection">

</asp:DropDownList>

</td>

<td>

Page 397: Code Listing

Month :

<asp:DropDownList ID="lstMonth" runat="server">

<asp:ListItem Value="1">January</asp:ListItem>

<asp:ListItem Value="2">February</asp:ListItem>

<asp:ListItem Value="3">March</asp:ListItem>

<asp:ListItem Value="4">April</asp:ListItem>

<asp:ListItem Value="5">May</asp:ListItem>

<asp:ListItem Value="6">June</asp:ListItem>

<asp:ListItem Value="7">July</asp:ListItem>

<asp:ListItem Value="8">August</asp:ListItem>

<asp:ListItem Value="9">September</asp:ListItem>

<asp:ListItem Value="10">October</asp:ListItem>

Page 398: Code Listing

<asp:ListItem Value="11">November</asp:ListItem>

<asp:ListItem Value="12">December</asp:ListItem>

</asp:DropDownList>

</td>

<td>

Year :

<asp:DropDownList ID="lstYear" runat="server">

</asp:DropDownList>

</td>

<td>

<asp:Button ID="btnMonthly" runat="server" class="ui-button-text-icon ui-button ui-widget

Page 399: Code Listing

ui-state-default ui-corner-all ui-button-text-only" OnClick="btnMonthly_Click" Text="Show Report" />

</td>

</table>

<rsweb:ReportViewer ID="rptMonthly" runat="server" Font-Names="Verdana"

Font-Size="8pt" InteractiveDeviceInfos="(Collection)"

WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="100%"

Visible="False"></rsweb:ReportViewer>

</div>

</ContentTemplate>

</asp:TabPanel>

<asp:TabPanel ID="TabPanel3" runat="server" HeaderText="Date Range">

<ContentTemplate>

<div id="Div1"><p>

<table style="width:100%">

<tr style="font-size:medium; font-weight:bold;">

<td>Class : <asp:DropDownList ID="lstClass3" runat="server" DataSourceID="ClassDS"

Page 400: Code Listing

DataTextField="ClassName" DataValueField="ClassName"></asp:DropDownList>

</td>

<td>Section : <asp:DropDownList ID="lstSection3" runat="server" DataSourceID="SectionDS" DataTextField="ClassSection"

DataValueField="ClassSection"></asp:DropDownList>

</td>

<td>Start Date : <asp:TextBox ID="txtStartDate" runat="server"></asp:TextBox>

<asp:CalendarExtender ID="CalendarExtender2" runat="server"

TargetControlID="txtStartDate" Format="dd-MM-yyyy" Enabled="True"

onprerender="CalendarExtender2_PreRender" ></asp:CalendarExtender>

</td>

<td>End Date : <asp:TextBox ID="txtEndDate" runat="server"></asp:TextBox>

Page 401: Code Listing

<asp:CalendarExtender

ID="CalendarExtender3" runat="server" TargetControlID="txtEndDate"

Format="dd-MM-yyyy" Enabled="True" ></asp:CalendarExtender>

</td>

<td>

<asp:Button ID="btnRange" runat="server" Text="Show Report" OnClick="btnRange_Click"

class="ui-button-text-icon ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />

</td>

</tr>

</table>

Page 402: Code Listing

<rsweb:ReportViewer ID="rptDateRange" runat="server" Width="100%"

Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)"

WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt"

Visible="False"></rsweb:ReportViewer>

</div>

</ContentTemplate>

</asp:TabPanel>

<asp:TabPanel ID="TabPanel4" runat="server" HeaderText="Yearly">

<ContentTemplate>

<div id="Div2"><p>

<table style="width:100%">

<tr style="font-size:medium; font-weight:bold;">

Page 403: Code Listing

<td>Class : <asp:DropDownList ID="lstClass4" runat="server" DataSourceID="ClassDS"

DataTextField="ClassName" DataValueField="ClassName">

</asp:DropDownList>

</td>

<td>Section : <asp:DropDownList ID="lstSection4" runat="server" DataSourceID="SectionDS" DataTextField="ClassSection"

DataValueField="ClassSection">

</asp:DropDownList>

</td>

<td>Year :

<asp:DropDownList ID="lstYear2" runat="server">

</asp:DropDownList>

Page 404: Code Listing

</td>

<td >

Enrollment : <asp:TextBox ID="txtEnrollRpt" runat="server"></asp:TextBox>

</td>

<td>

<asp:Button ID="btnYearly" runat="server" Text="Show Report" OnClick="btnYearly_Click"

class="ui-button-text-icon ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />

</td>

<td>

<asp:Button ID="btnChart" runat="server" Text="Show Chart" OnClick="btnChart_Click"

class="ui-button-text-icon ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />

Page 405: Code Listing

</td>

</tr>

</table>

<rsweb:ReportViewer ID="rptChildReport" runat="server" Width="100%" Height="600px">

</rsweb:ReportViewer>

</div>

</ContentTemplate>

</asp:TabPanel>

</asp:TabContainer>

</div>

<div style="clear:both;"></div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 406: Code Listing

K:\SpringDale\Reports\ShowReports.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Data.SqlClient;

using System.Text;

public partial class Reports_ShowReports : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

//if(!ClientScript.IsStartupScriptRegistered("initpage"))

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(myPageLoad);", true);

if (!IsPostBack)

{

lstYear.Items.Clear();

int i;

for (i = 1990; i <= 2090; i++)

{

lstYear.Items.Add(new ListItem(i.ToString(), i.ToString()));

lstYear2.Items.Add(new ListItem(i.ToString(), i.ToString()));

}

}

else {

Page 407: Code Listing

}

}

protected void Button1_Click(object sender, EventArgs e)

{

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "dd/MM/yyyy";

DateTime validDate = Convert.ToDateTime(txtDate.Text, dateInfo);

ClassAttendanceReport obj = new ClassAttendanceReport();

DataTable dt = obj.GetDataForASingleDayEx(validDate, lstClass.Text, lstSection.Text );

rptDay.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;

rptDay.LocalReport.ReportPath = "Reports\\AttendanceForADay.rdlc";

if (dt == null)

throw new Exception("data table is null");

rptDay.LocalReport.DataSources.Clear();

Microsoft.Reporting.WebForms.ReportDataSource ds =

new Microsoft.Reporting.WebForms.ReportDataSource("RptForADay", (System.Data.DataTable)dt);

rptDay.LocalReport.DataSources.Add(ds);

rptDay.LocalReport.Refresh();

rptDay.Visible = true;

}

protected void btnMonthly_Click(object sender, EventArgs e)

{

Page 408: Code Listing

ClassAttendanceReport obj = new ClassAttendanceReport();

int month = int.Parse(lstMonth.SelectedValue);

int year = int.Parse(lstYear.SelectedValue);

DataTable dt = obj.GetDataForAMonth(month, year, lstClass2.Text, lstSection2.Text);

rptMonthly.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;

rptMonthly.LocalReport.ReportPath = "Reports\\ClassMonthly.rdlc";

if (dt == null)

throw new Exception("dt is null");

rptMonthly.LocalReport.DataSources.Clear();

Microsoft.Reporting.WebForms.ReportDataSource ds =

new Microsoft.Reporting.WebForms.ReportDataSource("rptMonthly", (System.Data.DataTable)dt);

rptMonthly.LocalReport.DataSources.Add(ds);

rptMonthly.LocalReport.Refresh();

rptMonthly.Visible = true;

}

protected void btnRange_Click(object sender, EventArgs e) {

System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "dd/MM/yyyy";

DateTime validEndDate = Convert.ToDateTime(txtEndDate.Text, dateInfo);

dateInfo = new System.Globalization.DateTimeFormatInfo();

dateInfo.ShortDatePattern = "dd/MM/yyyy";

DateTime validStartDate = Convert.ToDateTime(txtStartDate.Text, dateInfo);

Page 409: Code Listing

ClassAttendanceReport obj = new ClassAttendanceReport();

DataTable dt = obj.GetDataForARange(validStartDate.ToString(), validEndDate.ToString(), lstClass3.Text, lstSection3.Text);

//DataTable dt = obj.GetDataForARange(stdate.ToString(), endate.ToString(), lstClass3.Text, lstSection3.Text);

if (dt == null)

throw new Exception("dt is null");

rptDateRange.LocalReport.DataSources.Clear();

rptDateRange.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local; ;

rptDateRange.LocalReport.ReportPath = "Reports\\DateRange.rdlc";

Microsoft.Reporting.WebForms.ReportDataSource ds =

new Microsoft.Reporting.WebForms.ReportDataSource("rptDateRange", (System.Data.DataTable)dt);

rptDateRange.LocalReport.DataSources.Add(ds);

rptDateRange.LocalReport.Refresh();

rptDateRange.Visible = true;

}

protected void btnYearly_Click(object sender, EventArgs e)

{

ClassAttendanceReport obj = new ClassAttendanceReport();

int searchyear = int.Parse(lstYear2.SelectedValue);

DataTable dt = obj.GetDataForStudentForAYear(int.Parse(txtEnrollRpt.Text), searchyear, lstClass4.Text, lstSection4.Text);

rptChildReport.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;

Page 410: Code Listing

rptChildReport.LocalReport.ReportPath = "Reports\\ChildYearly.rdlc";

if (dt == null)

throw new Exception("dt is null");

rptChildReport.LocalReport.DataSources.Clear();

Microsoft.Reporting.WebForms.ReportDataSource ds =

new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", (System.Data.DataTable)dt);

rptChildReport.LocalReport.DataSources.Add(ds);

rptChildReport.LocalReport.Refresh();

rptChildReport.Visible = true;

}

protected void btnChart_Click(object sender, EventArgs e)

{

ClassAttendanceReport obj = new ClassAttendanceReport();

int searchyear = int.Parse(lstYear2.SelectedValue);

DataTable dt = obj.GetDataForStudentForAYear(int.Parse(txtEnrollRpt.Text),searchyear, lstClass4.Text, lstSection4.Text);

rptChildReport.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;

rptChildReport.LocalReport.ReportPath = "ChartReports\\YearlyChart.rdlc";

if (dt == null)

throw new Exception("dt is null");

rptChildReport.LocalReport.DataSources.Clear();

Microsoft.Reporting.WebForms.ReportDataSource ds =

Page 411: Code Listing

new Microsoft.Reporting.WebForms.ReportDataSource("yearlyAttChartDS", (System.Data.DataTable)dt);

rptChildReport.LocalReport.DataSources.Add(ds);

rptChildReport.LocalReport.Refresh();

rptChildReport.Visible = true;

}

protected void onActiveTabChanged(object sender, EventArgs e)

{

fldHidden.Value = TabContainer1.ActiveTabIndex.ToString();

}

protected void CalendarExtender2_PreRender(object sender, EventArgs e)

{

}

}

Page 412: Code Listing

K:\SpringDale\Teacher\AddMarks.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AddMarks.aspx.cs" Inherits="Teacher_AddMarks" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http/learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http/learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

function addload() {

$("#opener").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

Page 413: Code Listing

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

}

</script>

<style type="text/css">

Page 414: Code Listing

.sendback

{

z-index:-9999;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

</p>

</div>

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

Page 415: Code Listing

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 416: Code Listing

K:\SpringDale\Teacher\AddMarks.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Teacher_AddMarks : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

if (!IsPostBack)

{

//Response.Write(Page.User.Identity.Name);

}

}

}

Page 417: Code Listing

K:\SpringDale\Teacher\AttendanceCtrl.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AttendanceCtrl.aspx.cs" Inherits="Teacher_AttendanceCtrl" EnableSessionState="True" %>

<%@ MasterType VirtualPath="~/MasterPage.master"%>

<%@ Register src="../UserControls/AttendanceTable.ascx" tagname="AttendanceTable" tagprefix="uc1" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="../js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

// Load the Visualization API and the piechart package.

google.load('visualization', '1.0', { 'packages': ['corechart'] });

// Set a callback to run when the Google Visualization API is loaded.

//google.setOnLoadCallback(drawChart);

function showChart(enrollno) {

currentenroll = enrollno;

$("#ShowChart").dialog("open");

setTimeout("drawChart();", 2000);

}

Page 418: Code Listing

// Callback that creates and populates a data table,

// instantiates the pie chart, passes in the data and

// draws it.

function drawChart() {

GetAttendanceTable.GetMonthlyAttendanceAll(currentenroll, currentdate, function (result) {

var data = new google.visualization.DataTable();

data.addColumn('string', 'Month');

data.addColumn('number', 'Present');

data.addColumn('number', 'Absent');

data.addColumn('number', 'Leave');

data.addColumn('number', 'Unknown');

var arr = result.split(":");

data.addRows(arr.length);

for (i = 0; i < arr.length; i++) {

var innerdata = arr[i].split(",");

data.setCell(i, 0, innerdata[0]);

data.setCell(i, 1, parseFloat(innerdata[1]));

data.setCell(i, 2, parseFloat(innerdata[2]));

data.setCell(i, 3, parseFloat(innerdata[3]));

data.setCell(i, 4, parseFloat(innerdata[4]));

}

// Set chart options

var options = { 'title': 'Monthly Attendance Of Student' };

// Instantiate and draw our chart, passing in some options.

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

chart.draw(data, options);

Page 419: Code Listing

});

// Create the data table.

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

function jsonFeedRecieved(result) {

var i = 0;

//myObject = JSON.parse(result);

myObject = jQuery.parseJSON(result);

$("#datepicker").datepicker({ beforeShowDay: setHoliDays, onSelect: function (dateText, inst) {

currentdate = dateText;

}

});

}

function addload(){

Page 420: Code Listing

GetAttendanceTable.GetClassListBox(function (result) {

$("#tdClassName").html("<b>Class Name </b> " + result.toString());

}, function (result) {

$("#tdClassName").html(result.toString());

});

GetAttendanceTable.GetSectionListBox(function (result) {

$("#tdSectionName").html("<b>Section </b> " + result.toString());

}, function (result) {

$("#tdSectionName").html(result.toString());

});

HolidayListSvc.GetAllHolidays(jsonFeedRecieved);

$("#gridviewmain").hide();

$("#opener").button();

//$("#btnLoadAttendance").button();

$("#btnLoadAttendance").click(OnLoadAttendanceClick);

//$("#btnUpdateAttendance").button();

$("#btnUpdateAttendance").click(updateButtonClick);

//$("#btnUpdateAttendanceTop").button();

$("#btnUpdateAttendanceTop").click(updateButtonClick);

$("#opener").click(function () { return false; });

Page 421: Code Listing

}

function setHoliDays(date) {

for (i = 0; i < myObject.length; i++) {

if (date.getFullYear() == myObject[i].dt_yyyy

&& date.getMonth() == myObject[i].dt_mm-1

&& date.getDate() == myObject[i].dt_dd) {

return [false, 'holiday', myObject[i].dt_desc];

}

}

return [true, ''];

}

function updateButtonClick() {

var icounter = 0;

var strxml="<?xml version='1.0'?><Items>"

$('#mainAttendance tr').each(function () {

if (icounter > 0) {

var enrollno = this.cells[0].innerHTML;

if (enrollno == null)

alert("no data found");

strxml += "<Item><EnrollNo>" + enrollno + "</EnrollNo>";

var sel = 'input[name=Att' + icounter.toString() + ']:checked';

var atttype = $(sel).val();

strxml += "<AttType>" + atttype + "</AttType></Item>";

Page 422: Code Listing

}

icounter++;

});

if (currentdate == undefined)

currentdate = Date();

strxml += "</Items>";

//GetAttendanceTable.UpdateAttendance(strxml, attdate.toString());

GetAttendanceTable.UpdateAttendance(strxml, currentdate, function (result) { Notifier.info(result, 'User Action Result'); ; return false; },

function (result) {

Notifier.error(result.get_message(), 'Error');

return false;

});

return false;

}

function popupCalendar()

{

var dateField = document.getElementById('dateField');

// toggle the div

if (dateField.style.display == 'none')

dateField.style.display = 'block';

else

dateField.style.display = 'none';

}

function OnLoadAttendanceClick() {

//var txtName = $get("name");

Page 423: Code Listing

$('#ajaxLoader2').show();

var txtName = $("#lstClass option:selected");

var txtSection = $("#lstSection option:selected");

//var attdate = document.getElementById('datepicker');

if($('#datepicker').val()=="")

$('#datepicker').val(currentdate);

if (currentdate == undefined || currentdate == null) {

currentdate = Date().toString();

$('#datepicker').val(currentdate);

}

GetAttendanceTable.GetNewDataTable(txtName.val(), txtSection.val(), currentdate, GotTable, DidNotGetTable);

return false;

}

function GotTable(result) {

$("#AttendanceGrid").html(result.toString());

$('#ajaxLoader2').hide();

return false;

}

function DidNotGetTable(result) {

Notifier.error(result.get_message(), 'Unable To Retrieve Table');

return false;

}

function chooseAll(colno) {

var icounter = 0;

$('#mainAttendance tr').each(function () {

Page 424: Code Listing

if(icounter>0)

{

$radios = $('input:radio[name=Att' + icounter.toString() + ']');

if (colno == 1)

$radios.filter('[value=P]').attr('checked', true);

else if (colno == 2)

$radios.filter('[value=A]').attr('checked', true);

else if (colno == 3)

$radios.filter('[value=L]').attr('checked', true);

else if (colno == 4)

$radios.filter('[value=U]').attr('checked', true);

}

icounter++;

});

return false;

}

function toggleGrid() {

$('#gridviewmain').toggle();

return false;

}

Page 425: Code Listing

// increase the default animation speed to exaggerate the effect

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#ShowChart").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width:700,

height:500

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

Page 426: Code Listing

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

</script>

<style type="text/css">

.holiday a.ui-state-default {

background: green !important;

}

.holiday a.ui-state-hover {

background: red !important;

}

.ui-datepicker-week-end .ui-datepicker-unselectable .ui-state-disabled

{

opacity:1.0;

background-color:Red;

color:White;

}

table, .table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

Page 427: Code Listing

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption, .caption {

text-align: left;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot, .theader {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

}

thead th, tfoot th, .theader th {

padding:5px;

text-align:left

}

table a {

color: #333333;

text-decoration:none;

}

table a:hover {

}

tr.odd, .odd {

background: #f1f1f1;

text-align:left;

Page 428: Code Listing

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

background-color: #8AA9B7;

border-radius: 8px;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

.griddiv

{

height:300px;

Page 429: Code Listing

}

.gridhead

{

height:30px;

background-color:Red;

}

.gridmain

{

height:70%;

background-color:Green;

}

.style2

{

width: 50px;

}

.style7

{

width: 20%;

}

.style8

{

width: 7%;

}

.style9

{

width: 16%;

}

#fixed-div {

Page 430: Code Listing

position:relative;

top: 1em;

left:1em;

margin-top:20px;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

<p>

</p>

<p>

</p>

</p>

</div>

<div id="ShowChart" style="width:700px;height:650px;" title="Student Attendance Chart">

<div id="chart_div" style="z-index:99999;width:100%; height:500px;" ></div>

</div>

Page 431: Code Listing

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div style="width:100%; margin:0 auto; ">

<table style="width:100%;">

<tr>

<td style="width:68%;">

<table style="width:100%">

<tr>

<td id="tdClassName" style="width:30%;">

</td>

<td id="tdSectionName" style="width:30%;">

Page 432: Code Listing

</td>

<td style="width:30%;">

<p>Date: <input type="text" id="datepicker"></p>

</td>

<td style="width:5%;">

<button id="btnLoadAttendance" value="Load Attendance" style="margin-left: 6px">Load Attendance</button>

</td>

<td style="width:5%;">

<button id="btnUpdateAttendanceTop" value="Update Attendance"

style="margin-left: 6px" >Update Attendance</button>

</td>

<td style="width:0%;">

</td>

</tr>

</table>

</td>

</tr>

<tr>

<td>

<div id='AttendanceGrid'></div>

</td>

</tr>

<tr>

Page 433: Code Listing

<td>

<table>

<tr>

<td>

<button id="btnUpdateAttendance" value="Update Attendance"

style="margin-left: 26px" >Update Attendance</button>

</td>

<td>

<asp:Button ID="btnReset" runat="server" Text="Reset Attendance" style="margin-left: 26px; display:none;" />

</td>

<td>

<div style="float:left; display:none;" id="ajaxLoader2">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

</table>

</td>

</tr>

</table>

</div>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

Page 434: Code Listing

<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

</asp:Content>

Page 435: Code Listing

K:\SpringDale\Teacher\AttendanceCtrl.aspx.cs

using System;

using System.Collections.Generic;

using System.IO;

using System.Text;

using System.Xml;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using AttendanceRecTableAdapters;

public partial class Teacher_AttendanceCtrl : System.Web.UI.Page

{

protected void Page_Init(object sender, EventArgs e)

{

// Wire up the event (MoodChanged) to the event handler (MoodChangedFromMasterPage)

//Master.B += new CommandEventHandler(MoodChangedFromMasterPage);

//Master.BrowseData += new CommandEventHandler(Master_BrowseData);

}

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

if (Page.IsPostBack)

{

}

else

Page 436: Code Listing

{

}

}

private void Master_BrowseData(object sender, CommandEventArgs e)

{

}

}

Page 437: Code Listing

K:\SpringDale\Teacher\AttendanceEmailMaster.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AttendanceEmailMaster.aspx.cs" Inherits="Admin_AttendanceEmailMaster" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="../js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

postion:"left"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

Page 438: Code Listing

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

$("#dialog").dialog("option", "position", "left");

return false;

});

});

function addload() {

$("#gridviewmain").hide();

$("#opener").button();

$("#opener").click(function () { return false; });

Page 439: Code Listing

}

</script>

<style>

table, .table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption, .caption {

text-align: left;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot, .theader {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

}

thead th, tfoot th, .theader th {

padding:5px;

text-align:left

}

table a {

Page 440: Code Listing

color: #333333;

text-decoration:none;

}

table a:hover {

}

tr.odd, .odd {

background: #f1f1f1;

text-align:left;

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

background-color: #8AA9B7;

border-radius: 8px;

Page 441: Code Listing

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

</Services>

</asp:ScriptManager>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<h3>This will show the cumulative of the student</h3>

</div>

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

Page 442: Code Listing

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px;text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div>

<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="Medium"></asp:Label></div>

<div style="width:100%; margin:0 auto; ">

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<asp:Table runat="server" Width="100%">

<asp:TableRow>

<asp:TableCell Width="20%">

<b>Class:</b>

<asp:DropDownList ID="lstClass" runat="server"

DataSourceID="ObjectDataSource1" DataTextField="ClassName"

DataValueField="ClassName">

</asp:DropDownList>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"

OldValuesParameterFormatString="original_{0}" SelectMethod="GetUniqueName"

TypeName="ClassRecBLL"></asp:ObjectDataSource>

</asp:TableCell>

<asp:TableCell Width="20%">

Page 443: Code Listing

<b> Section:</b>

<asp:DropDownList ID="lstSection" runat="server"

DataSourceID="ObjectDataSource2" DataTextField="ClassSection"

DataValueField="ClassSection">

</asp:DropDownList>

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server"

OldValuesParameterFormatString="original_{0}" SelectMethod="GetUniqueSection"

TypeName="ClassRecBLL"></asp:ObjectDataSource>

</asp:TableCell>

<asp:TableCell Width="30%">

<b>Cutoff% : </b>

<asp:TextBox ID="txtPercent" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell Width="15%">

<asp:Button ID="btnLoadStudent" runat="server" Text="Load Defaulting Students"

CssClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"

onclick="btnLoadStudent_Click"/>

</asp:TableCell>

<asp:TableCell Width="15%">

<asp:Button ID="btnSendMail" runat="server" Text="Send Mail" onclick="Sendmail_Click" CssClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />

</asp:TableCell>

</asp:TableRow>

</asp:Table>

Page 444: Code Listing

<asp:Table runat="server" Width="100%">

<asp:TableRow>

<asp:TableCell>

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" >

<ProgressTemplate>

<asp:Image ID="Image1" runat="server" ImageUrl="http://learnasp.in/css/ajax-loader.gif" />

</ProgressTemplate>

</asp:UpdateProgress>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow>

<asp:TableCell Width="100%" BorderStyle="None">

<asp:GridView ID="studentGrid" runat="server" Width="100%" BorderStyle="None" OnDataBound="studentGrid_DataBound"

DataKeyNames="EnrollNo" GridLines="None">

<Columns>

<asp:TemplateField>

<ItemTemplate>

<asp:CheckBox ID="StudentSelector" runat="server" />

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

</asp:TableCell>

</asp:TableRow>

</asp:Table>

</ContentTemplate>

<Triggers>

<asp:PostBackTrigger ControlID="btnSendMail" />

</Triggers>

</asp:UpdatePanel>

Page 445: Code Listing

</div>

</div>

</div>

</asp:Content>

Page 446: Code Listing

K:\SpringDale\Teacher\AttendanceEmailMaster.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Net.Mail;

public partial class Admin_AttendanceEmailMaster : System.Web.UI.Page

{

DataTable students;

protected void Page_Load(object sender, EventArgs e)

{

//if (ClientScript.IsStartupScriptRegistered("initpage")==false )

//{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

//}

}

protected void btnLoadStudent_Click(object sender, EventArgs e)

{

GetAttendanceTable ga = new GetAttendanceTable();

students = ga.GetDefaultingStudent(lstClass.Text, lstSection.Text, float.Parse(txtPercent.Text));

studentGrid.DataSource = students;

studentGrid.DataBind();

Page 447: Code Listing

}

protected void studentGrid_DataBound(Object sender, EventArgs e)

{

studentGrid.UseAccessibleHeader = true;

studentGrid.HeaderRow.TableSection = TableRowSection.TableHeader;

studentGrid.BorderStyle = BorderStyle.None;

}

protected void Sendmail_Click(Object sender, EventArgs e)

{

// Iterate through the Products.Rows property

foreach (GridViewRow row in studentGrid.Rows)

{

// Access the CheckBox

CheckBox cb = (CheckBox)row.FindControl("StudentSelector");

if (cb != null && cb.Checked)

{

int enrollno = Convert.ToInt32(studentGrid.DataKeys[row.RowIndex].Value);

sendMail(enrollno);

}

}

Label1.Text = "Messages Sent...!";

}

protected bool sendMail(int enrollno)

{

Page 448: Code Listing

bool answer = false;

GetAttendanceTable ga = new GetAttendanceTable();

students = ga.GetDefaultingStudent(lstClass.Text, lstSection.Text, float.Parse(txtPercent.Text));

foreach (DataRow dr in students.Rows)

{

if (int.Parse(dr["EnrollNo"].ToString()) == enrollno)

{

MailMessage mail=new MailMessage();

//mail.To.Add("Email ID where you wanna send copy of email")

mail.To.Add(dr["Email"].ToString());

mail.From = new MailAddress("[email protected]");

mail.Subject = "Low Attendance Of Your Ward";

GetAttendanceTable gt = new GetAttendanceTable();

string webdata = gt.GetMonthlyAttendanceAll((decimal)enrollno, DateTime.Now);

string[] step1=webdata.Split(':');

string sx = "";

string sy1,sy2,sy3,sy4;

sy1= "";

sy2 = "";

sy3 = "";

sy4 = "";

for (int i = 0; i < step1.Length; i++)

{

string[] step2 = step1[i].Split(',');

sx += step2[0] + "%7c";

sy1 += step2[1] + "%2c";

sy2 += step2[2] + "%2c";

sy3 += step2[3] + "%2c";

sy4+=step2[4] + "%2c";

}

sx = sx.Substring(0, sx.Length - 3);

sy1 = sy1.Substring(0, sy1.Length - 3);

Page 449: Code Listing

sy2 = sy1.Substring(0, sy1.Length - 3);

sy3 = sy1.Substring(0, sy1.Length - 3);

sy4 = sy1.Substring(0, sy1.Length - 3);

string body = "Dear Sir,<br/> This is to inform you that your ward <b><u>" + dr["FirstName"].ToString() + " " + dr["LastName"].ToString() +

"</u></b>, has been missing his classes regularly. <br/>His current attendance percentage is " + dr["Attendance"].ToString() +

". Please be kind enough to come to the school and meet either the Principal or the class teacher immediately.<br/>For your " +

"information please view the attached graphical representation of the mentioned data.<br/>" +

"yours sincerely <br/> Web Admin<br/>" + DateTime.Now.ToString() + "<br/><img src='" +

"https://chart.googleapis.com/chart?chs=500x500&amp;chds=a&amp;cht=bvs&amp;chd=t:" + sy1 +

"&amp;chl=" + sx + "&amp;chxt=x%2cy&amp;chbh=r%2c0.5%2c1.5'/>";

//"%7c" + sy2 + "%7c" + sy3 + "%7c" +sy4 +

mail.Body = body;

mail.IsBodyHtml = true;

SmtpClient smtp=new SmtpClient();

smtp.UseDefaultCredentials = false;

//smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "sudeep0104");

smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "sudeep0104");

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

smtp.Host = "smtp.gmail.com"; // 'Or Your SMTP Server Address

//smtp.Host = "learnasp.in";

smtp.Port = 587;

smtp.EnableSsl = true;

smtp.Send(mail);

Page 450: Code Listing

answer = true;

return answer;

}

}

return answer;

}

}

Page 451: Code Listing

K:\SpringDale\Teacher\BrowseAttendance.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="BrowseAttendance.aspx.cs" Inherits="Teacher_BrowseAttendance" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="../js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function addload(){

GetAttendanceTable.GetClassListBox(function (result) {

$("#tdClassName").html("<b>Class Name </b> " + result.toString());

}, function (result) {

$("#tdClassName").html(result.toString());

});

GetAttendanceTable.GetSectionListBox(function (result) {

$("#tdSectionName").html("<b>Section </b> " + result.toString());

}, function (result) {

$("#tdSectionName").html(result.toString());

});

$("#datepicker").datepicker({ dateFormat: 'dd-mm-yy' });

$("#gridviewmain").hide();

Page 452: Code Listing

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>

</asp:Content>

Page 453: Code Listing

K:\SpringDale\Teacher\BrowseAttendance.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Teacher_BrowseAttendance : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

Page 454: Code Listing

K:\SpringDale\Teacher\EnterMarks.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="EnterMarks.aspx.cs" Inherits="Teacher_EnterMarks" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

var termid = 0;

var classname = "";

var subjectid = 0;

function addload() {

var id = '<%=Page.User.Identity.Name %>';

MarksWeb.getClasses(id,gotclasses);

$("#opener").button();

// $("#btnLoadAttendance").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

Page 455: Code Listing

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

Page 456: Code Listing

});

}

function gotclasses(result) {

$('#divclasses').show();

$('#divclasseslabel').show();

$('#divclasses').html(result);

}

function classes_change() {

var dropdown = document.getElementById("cmbclasses");

var index = dropdown.selectedIndex;

var ddVal = dropdown.options[index].value;

var ddText = dropdown.options[index].text;

var id = '<%=Page.User.Identity.Name %>';

//alert(ddVal + "," + id);

MarksWeb.getSubjects(id, ddVal, gotSubjects);

MarksWeb.getTerms(ddText, gotTerms);

return false;

}

function gotSubjects(result) {

$('#divsubjects').show();

$('#divsubjectslabel').show();

$('#divsubjects').html(result);

$('#divterms').show();

Page 457: Code Listing

$('#divtermslabel').show();

$('#btnUpdate').show();

$('#btnNext').show();

}

function gotTerms(result) {

$('#divterms').show();

$('#divtermslabel').show();

$('#divterms').html(result);

}

function next_click() {

$('#showajax').show();

var dropdown = document.getElementById("cmbclasses");

var index = dropdown.selectedIndex;

var classid = dropdown.options[index].value;

classname= dropdown.options[index].text;

var dropdown2 = document.getElementById("cmbSubjects");

var index2 = dropdown2.selectedIndex;

var subjectname = dropdown2.options[index2].text;

subjectid = dropdown2.options[index2].value;

var dropdown3 = document.getElementById("cmbTerms");

var index3 = dropdown3.selectedIndex;

termid = dropdown3.options[index3].value;

Page 458: Code Listing

MarksWeb.getMarksTable(subjectname, termid, classid, gotMarksTable);

}

function gotMarksTable(result) {

$('#showajax').hide();

$('#divmarks').html(result);

}

function update_click() {

i = 0;

$('#showajax').show();

$('#mainmarkstable tr').each(function () {

$this = $(this);

if (i > 0) {

var enroll = $this.find('#enroll' + i.toString());

var enrollno;

if (enroll != null) {

enrollno = enroll.text();

}

var obj = $this.find('#txt' + i.toString());

var marks;

if (obj != null) {

marks = obj.val();

MarksWeb.updateMarks(enrollno, marks, termid, classname, subjectid,marksUpdated);

}

}

i = i + 1;

});

}

Page 459: Code Listing

function marksUpdated(result)

{

$('#showajax').hide();

if(result=="true")

Notifier.info('Marks Update Success','Success');

else

Notifier.error('oooops! Something has gone wrong','Error');

}

</script>

<style type="text/css">

.sendbehind

{

z-index:-99999;

}

.mypanel

{

padding-top:10px;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/MarksWeb.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

Page 460: Code Listing

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

<p>

</p>

<p>

</p>

</p>

</div>

<div style="width:98%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

Page 461: Code Listing

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search .......</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:78%;">

<div style="margin:0 auto;width:70%;">

<div style="padding-left:10px; padding-right:10px; padding-top:10px; padding-bottom:12px;">

<div id='divclasseslabel' style="float:left;padding:5px;display:none; vertical-align:middle"><b>Choose Class :</b></div>

<div id="divclasses" style="float:left;vertical-align:middle;display:none;"></div>

<div id='divsubjectslabel' style="float:left;padding:5px;display:none; vertical-align:middle;"><b>Choose Subject :</b></div>

<div id="divsubjects" style="float:left;vertical-align:middle;display:none;"></div> &nbsp;

<div id='divtermslabel' style="float:left;padding:5px;display:none; vertical-align:middle;"><b>Choose Term : </b></div>

<div id="divterms" style="float:left; vertical-align:middle;display:none;"></div>

<div id="showajax" style="float:left; vertical-align:middle;display:none;">

<img alt="" src="http://learnasp.in/css/ajax-loadersmall.gif" /></div>

&nbsp;

<input id="btnNext" type="button" value="Next >>" onclick="next_click();" style="display:none;" />

<input id="btnUpdate" type="button" value="Update" onclick="update_click();" style="display:none;"/>

<div style="clear:both;"> &nbsp;</div>

Page 462: Code Listing

<div id="divmarks" style="width:70%; margin:0 auto;"></div>

</div>

</div>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 463: Code Listing

K:\SpringDale\Teacher\EnterMarks.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Text.RegularExpressions;

using System.Web.UI.WebControls;

using System.Data;

public partial class Teacher_EnterMarks : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

if (!IsPostBack)

{

try

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

}

catch (Exception ex) { }

}

Page 464: Code Listing

}

protected void cmbClasses_SelectedIndexChanged2(object sender, EventArgs e)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

}

protected void cmbSubjects_SelectedIndexChanged(object sender, EventArgs e)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

}

}

Page 465: Code Listing

K:\SpringDale\Teacher\Web.config

<?xml version="1.0"?>

<configuration>

<system.web>

<authorization>

<allow roles="Administrators"/>

<allow roles="Teachers" />

<deny roles="Students"/>

<deny users="*"/>

</authorization>

</system.web>

</configuration>

Page 466: Code Listing

K:\SpringDale\Teacher\AddMarks.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AddMarks.aspx.cs" Inherits="Teacher_AddMarks" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http/learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http/learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

function addload() {

$("#opener").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

Page 467: Code Listing

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

}

</script>

<style type="text/css">

Page 468: Code Listing

.sendback

{

z-index:-9999;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

</p>

</div>

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

Page 469: Code Listing

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 470: Code Listing

K:\SpringDale\Teacher\AddMarks.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Teacher_AddMarks : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

if (!IsPostBack)

{

//Response.Write(Page.User.Identity.Name);

}

}

}

Page 471: Code Listing

K:\SpringDale\Teacher\AttendanceCtrl.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AttendanceCtrl.aspx.cs" Inherits="Teacher_AttendanceCtrl" EnableSessionState="True" %>

<%@ MasterType VirtualPath="~/MasterPage.master"%>

<%@ Register src="../UserControls/AttendanceTable.ascx" tagname="AttendanceTable" tagprefix="uc1" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="../js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

// Load the Visualization API and the piechart package.

google.load('visualization', '1.0', { 'packages': ['corechart'] });

// Set a callback to run when the Google Visualization API is loaded.

//google.setOnLoadCallback(drawChart);

function showChart(enrollno) {

currentenroll = enrollno;

$("#ShowChart").dialog("open");

setTimeout("drawChart();", 2000);

}

Page 472: Code Listing

// Callback that creates and populates a data table,

// instantiates the pie chart, passes in the data and

// draws it.

function drawChart() {

GetAttendanceTable.GetMonthlyAttendanceAll(currentenroll, currentdate, function (result) {

var data = new google.visualization.DataTable();

data.addColumn('string', 'Month');

data.addColumn('number', 'Present');

data.addColumn('number', 'Absent');

data.addColumn('number', 'Leave');

data.addColumn('number', 'Unknown');

var arr = result.split(":");

data.addRows(arr.length);

for (i = 0; i < arr.length; i++) {

var innerdata = arr[i].split(",");

data.setCell(i, 0, innerdata[0]);

data.setCell(i, 1, parseFloat(innerdata[1]));

data.setCell(i, 2, parseFloat(innerdata[2]));

data.setCell(i, 3, parseFloat(innerdata[3]));

data.setCell(i, 4, parseFloat(innerdata[4]));

}

// Set chart options

var options = { 'title': 'Monthly Attendance Of Student' };

// Instantiate and draw our chart, passing in some options.

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

chart.draw(data, options);

Page 473: Code Listing

});

// Create the data table.

return false;

}

function openAttendanceRecord(par) {

$("#StudentAttRec").dialog("open");

return false;

}

function jsonFeedRecieved(result) {

var i = 0;

//myObject = JSON.parse(result);

myObject = jQuery.parseJSON(result);

$("#datepicker").datepicker({ beforeShowDay: setHoliDays, onSelect: function (dateText, inst) {

currentdate = dateText;

}

});

}

function addload(){

Page 474: Code Listing

GetAttendanceTable.GetClassListBox(function (result) {

$("#tdClassName").html("<b>Class Name </b> " + result.toString());

}, function (result) {

$("#tdClassName").html(result.toString());

});

GetAttendanceTable.GetSectionListBox(function (result) {

$("#tdSectionName").html("<b>Section </b> " + result.toString());

}, function (result) {

$("#tdSectionName").html(result.toString());

});

HolidayListSvc.GetAllHolidays(jsonFeedRecieved);

$("#gridviewmain").hide();

$("#opener").button();

//$("#btnLoadAttendance").button();

$("#btnLoadAttendance").click(OnLoadAttendanceClick);

//$("#btnUpdateAttendance").button();

$("#btnUpdateAttendance").click(updateButtonClick);

//$("#btnUpdateAttendanceTop").button();

$("#btnUpdateAttendanceTop").click(updateButtonClick);

$("#opener").click(function () { return false; });

Page 475: Code Listing

}

function setHoliDays(date) {

for (i = 0; i < myObject.length; i++) {

if (date.getFullYear() == myObject[i].dt_yyyy

&& date.getMonth() == myObject[i].dt_mm-1

&& date.getDate() == myObject[i].dt_dd) {

return [false, 'holiday', myObject[i].dt_desc];

}

}

return [true, ''];

}

function updateButtonClick() {

var icounter = 0;

var strxml="<?xml version='1.0'?><Items>"

$('#mainAttendance tr').each(function () {

if (icounter > 0) {

var enrollno = this.cells[0].innerHTML;

if (enrollno == null)

alert("no data found");

strxml += "<Item><EnrollNo>" + enrollno + "</EnrollNo>";

var sel = 'input[name=Att' + icounter.toString() + ']:checked';

var atttype = $(sel).val();

strxml += "<AttType>" + atttype + "</AttType></Item>";

Page 476: Code Listing

}

icounter++;

});

if (currentdate == undefined)

currentdate = Date();

strxml += "</Items>";

//GetAttendanceTable.UpdateAttendance(strxml, attdate.toString());

GetAttendanceTable.UpdateAttendance(strxml, currentdate, function (result) { Notifier.info(result, 'User Action Result'); ; return false; },

function (result) {

Notifier.error(result.get_message(), 'Error');

return false;

});

return false;

}

function popupCalendar()

{

var dateField = document.getElementById('dateField');

// toggle the div

if (dateField.style.display == 'none')

dateField.style.display = 'block';

else

dateField.style.display = 'none';

}

function OnLoadAttendanceClick() {

//var txtName = $get("name");

Page 477: Code Listing

$('#ajaxLoader2').show();

var txtName = $("#lstClass option:selected");

var txtSection = $("#lstSection option:selected");

//var attdate = document.getElementById('datepicker');

if($('#datepicker').val()=="")

$('#datepicker').val(currentdate);

if (currentdate == undefined || currentdate == null) {

currentdate = Date().toString();

$('#datepicker').val(currentdate);

}

GetAttendanceTable.GetNewDataTable(txtName.val(), txtSection.val(), currentdate, GotTable, DidNotGetTable);

return false;

}

function GotTable(result) {

$("#AttendanceGrid").html(result.toString());

$('#ajaxLoader2').hide();

return false;

}

function DidNotGetTable(result) {

Notifier.error(result.get_message(), 'Unable To Retrieve Table');

return false;

}

function chooseAll(colno) {

var icounter = 0;

$('#mainAttendance tr').each(function () {

Page 478: Code Listing

if(icounter>0)

{

$radios = $('input:radio[name=Att' + icounter.toString() + ']');

if (colno == 1)

$radios.filter('[value=P]').attr('checked', true);

else if (colno == 2)

$radios.filter('[value=A]').attr('checked', true);

else if (colno == 3)

$radios.filter('[value=L]').attr('checked', true);

else if (colno == 4)

$radios.filter('[value=U]').attr('checked', true);

}

icounter++;

});

return false;

}

function toggleGrid() {

$('#gridviewmain').toggle();

return false;

}

Page 479: Code Listing

// increase the default animation speed to exaggerate the effect

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#ShowChart").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width:700,

height:500

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

Page 480: Code Listing

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

});

</script>

<style type="text/css">

.holiday a.ui-state-default {

background: green !important;

}

.holiday a.ui-state-hover {

background: red !important;

}

.ui-datepicker-week-end .ui-datepicker-unselectable .ui-state-disabled

{

opacity:1.0;

background-color:Red;

color:White;

}

table, .table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

Page 481: Code Listing

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption, .caption {

text-align: left;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot, .theader {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

}

thead th, tfoot th, .theader th {

padding:5px;

text-align:left

}

table a {

color: #333333;

text-decoration:none;

}

table a:hover {

}

tr.odd, .odd {

background: #f1f1f1;

text-align:left;

Page 482: Code Listing

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

background-color: #8AA9B7;

border-radius: 8px;

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

.griddiv

{

height:300px;

Page 483: Code Listing

}

.gridhead

{

height:30px;

background-color:Red;

}

.gridmain

{

height:70%;

background-color:Green;

}

.style2

{

width: 50px;

}

.style7

{

width: 20%;

}

.style8

{

width: 7%;

}

.style9

{

width: 16%;

}

#fixed-div {

Page 484: Code Listing

position:relative;

top: 1em;

left:1em;

margin-top:20px;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

<p>

</p>

<p>

</p>

</p>

</div>

<div id="ShowChart" style="width:700px;height:650px;" title="Student Attendance Chart">

<div id="chart_div" style="z-index:99999;width:100%; height:500px;" ></div>

</div>

Page 485: Code Listing

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div style="width:100%; margin:0 auto; ">

<table style="width:100%;">

<tr>

<td style="width:68%;">

<table style="width:100%">

<tr>

<td id="tdClassName" style="width:30%;">

</td>

<td id="tdSectionName" style="width:30%;">

Page 486: Code Listing

</td>

<td style="width:30%;">

<p>Date: <input type="text" id="datepicker"></p>

</td>

<td style="width:5%;">

<button id="btnLoadAttendance" value="Load Attendance" style="margin-left: 6px">Load Attendance</button>

</td>

<td style="width:5%;">

<button id="btnUpdateAttendanceTop" value="Update Attendance"

style="margin-left: 6px" >Update Attendance</button>

</td>

<td style="width:0%;">

</td>

</tr>

</table>

</td>

</tr>

<tr>

<td>

<div id='AttendanceGrid'></div>

</td>

</tr>

<tr>

Page 487: Code Listing

<td>

<table>

<tr>

<td>

<button id="btnUpdateAttendance" value="Update Attendance"

style="margin-left: 26px" >Update Attendance</button>

</td>

<td>

<asp:Button ID="btnReset" runat="server" Text="Reset Attendance" style="margin-left: 26px; display:none;" />

</td>

<td>

<div style="float:left; display:none;" id="ajaxLoader2">&nbsp;

<img src="http://learnasp.in/css/ajax-loadersmall.gif" alt="Loading..."/>

</div>

</td>

</tr>

</table>

</td>

</tr>

</table>

</div>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

Page 488: Code Listing

<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

</asp:Content>

Page 489: Code Listing

K:\SpringDale\Teacher\AttendanceCtrl.aspx.cs

using System;

using System.Collections.Generic;

using System.IO;

using System.Text;

using System.Xml;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using AttendanceRecTableAdapters;

public partial class Teacher_AttendanceCtrl : System.Web.UI.Page

{

protected void Page_Init(object sender, EventArgs e)

{

// Wire up the event (MoodChanged) to the event handler (MoodChangedFromMasterPage)

//Master.B += new CommandEventHandler(MoodChangedFromMasterPage);

//Master.BrowseData += new CommandEventHandler(Master_BrowseData);

}

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

if (Page.IsPostBack)

{

}

else

Page 490: Code Listing

{

}

}

private void Master_BrowseData(object sender, CommandEventArgs e)

{

}

}

Page 491: Code Listing

K:\SpringDale\Teacher\AttendanceEmailMaster.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AttendanceEmailMaster.aspx.cs" Inherits="Admin_AttendanceEmailMaster" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="../js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<script type="text/javascript">

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

postion:"left"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

Page 492: Code Listing

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

$("#dialog").dialog("option", "position", "left");

return false;

});

});

function addload() {

$("#gridviewmain").hide();

$("#opener").button();

$("#opener").click(function () { return false; });

Page 493: Code Listing

}

</script>

<style>

table, .table {

border-collapse: collapse;

border: 1px solid #666666;

font: normal 11px verdana, arial, helvetica, sans-serif;

color: #363636;

background: #f6f6f6;

text-align:left;

}

caption, .caption {

text-align: left;

font: bold 16px arial, helvetica, sans-serif;

background: transparent;

padding:6px 4px 8px 0px;

color: #CC00FF;

text-transform: uppercase;

}

thead, tfoot, .theader {

background:url(http://learnasp.in/css/bg1.png) repeat-x;

text-align:left;

height:30px;

}

thead th, tfoot th, .theader th {

padding:5px;

text-align:left

}

table a {

Page 494: Code Listing

color: #333333;

text-decoration:none;

}

table a:hover {

}

tr.odd, .odd {

background: #f1f1f1;

text-align:left;

}

tbody th, tbody td {

padding:5px;

}

tr:hover.hovereffect

{

background-color:#C0C0C0;

font-weight:bold;

cursor:pointer;

cursor:hand;

}

td img

{

border-style:none;

}

.callout {

padding: 5px;

border: 1px solid #7992B0;

background-color: #8AA9B7;

border-radius: 8px;

Page 495: Code Listing

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

-webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/HolidayList.asmx" />

</Services>

</asp:ScriptManager>

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<h3>This will show the cumulative of the student</h3>

</div>

<div style="width:100%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

Page 496: Code Listing

<option value="5">Class</option>

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px;text-align:center;" id="fixed-div"><button id="opener">Search...</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:74%;">

<div>

<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="Medium"></asp:Label></div>

<div style="width:100%; margin:0 auto; ">

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<asp:Table runat="server" Width="100%">

<asp:TableRow>

<asp:TableCell Width="20%">

<b>Class:</b>

<asp:DropDownList ID="lstClass" runat="server"

DataSourceID="ObjectDataSource1" DataTextField="ClassName"

DataValueField="ClassName">

</asp:DropDownList>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"

OldValuesParameterFormatString="original_{0}" SelectMethod="GetUniqueName"

TypeName="ClassRecBLL"></asp:ObjectDataSource>

</asp:TableCell>

<asp:TableCell Width="20%">

Page 497: Code Listing

<b> Section:</b>

<asp:DropDownList ID="lstSection" runat="server"

DataSourceID="ObjectDataSource2" DataTextField="ClassSection"

DataValueField="ClassSection">

</asp:DropDownList>

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server"

OldValuesParameterFormatString="original_{0}" SelectMethod="GetUniqueSection"

TypeName="ClassRecBLL"></asp:ObjectDataSource>

</asp:TableCell>

<asp:TableCell Width="30%">

<b>Cutoff% : </b>

<asp:TextBox ID="txtPercent" runat="server"></asp:TextBox>

</asp:TableCell>

<asp:TableCell Width="15%">

<asp:Button ID="btnLoadStudent" runat="server" Text="Load Defaulting Students"

CssClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"

onclick="btnLoadStudent_Click"/>

</asp:TableCell>

<asp:TableCell Width="15%">

<asp:Button ID="btnSendMail" runat="server" Text="Send Mail" onclick="Sendmail_Click" CssClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />

</asp:TableCell>

</asp:TableRow>

</asp:Table>

Page 498: Code Listing

<asp:Table runat="server" Width="100%">

<asp:TableRow>

<asp:TableCell>

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" >

<ProgressTemplate>

<asp:Image ID="Image1" runat="server" ImageUrl="http://learnasp.in/css/ajax-loader.gif" />

</ProgressTemplate>

</asp:UpdateProgress>

</asp:TableCell>

</asp:TableRow>

<asp:TableRow>

<asp:TableCell Width="100%" BorderStyle="None">

<asp:GridView ID="studentGrid" runat="server" Width="100%" BorderStyle="None" OnDataBound="studentGrid_DataBound"

DataKeyNames="EnrollNo" GridLines="None">

<Columns>

<asp:TemplateField>

<ItemTemplate>

<asp:CheckBox ID="StudentSelector" runat="server" />

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

</asp:TableCell>

</asp:TableRow>

</asp:Table>

</ContentTemplate>

<Triggers>

<asp:PostBackTrigger ControlID="btnSendMail" />

</Triggers>

</asp:UpdatePanel>

Page 499: Code Listing

</div>

</div>

</div>

</asp:Content>

Page 500: Code Listing

K:\SpringDale\Teacher\AttendanceEmailMaster.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Net.Mail;

public partial class Admin_AttendanceEmailMaster : System.Web.UI.Page

{

DataTable students;

protected void Page_Load(object sender, EventArgs e)

{

//if (ClientScript.IsStartupScriptRegistered("initpage")==false )

//{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

//}

}

protected void btnLoadStudent_Click(object sender, EventArgs e)

{

GetAttendanceTable ga = new GetAttendanceTable();

students = ga.GetDefaultingStudent(lstClass.Text, lstSection.Text, float.Parse(txtPercent.Text));

studentGrid.DataSource = students;

studentGrid.DataBind();

Page 501: Code Listing

}

protected void studentGrid_DataBound(Object sender, EventArgs e)

{

studentGrid.UseAccessibleHeader = true;

studentGrid.HeaderRow.TableSection = TableRowSection.TableHeader;

studentGrid.BorderStyle = BorderStyle.None;

}

protected void Sendmail_Click(Object sender, EventArgs e)

{

// Iterate through the Products.Rows property

foreach (GridViewRow row in studentGrid.Rows)

{

// Access the CheckBox

CheckBox cb = (CheckBox)row.FindControl("StudentSelector");

if (cb != null && cb.Checked)

{

int enrollno = Convert.ToInt32(studentGrid.DataKeys[row.RowIndex].Value);

sendMail(enrollno);

}

}

Label1.Text = "Messages Sent...!";

}

protected bool sendMail(int enrollno)

{

Page 502: Code Listing

bool answer = false;

GetAttendanceTable ga = new GetAttendanceTable();

students = ga.GetDefaultingStudent(lstClass.Text, lstSection.Text, float.Parse(txtPercent.Text));

foreach (DataRow dr in students.Rows)

{

if (int.Parse(dr["EnrollNo"].ToString()) == enrollno)

{

MailMessage mail=new MailMessage();

//mail.To.Add("Email ID where you wanna send copy of email")

mail.To.Add(dr["Email"].ToString());

mail.From = new MailAddress("[email protected]");

mail.Subject = "Low Attendance Of Your Ward";

GetAttendanceTable gt = new GetAttendanceTable();

string webdata = gt.GetMonthlyAttendanceAll((decimal)enrollno, DateTime.Now);

string[] step1=webdata.Split(':');

string sx = "";

string sy1,sy2,sy3,sy4;

sy1= "";

sy2 = "";

sy3 = "";

sy4 = "";

for (int i = 0; i < step1.Length; i++)

{

string[] step2 = step1[i].Split(',');

sx += step2[0] + "%7c";

sy1 += step2[1] + "%2c";

sy2 += step2[2] + "%2c";

sy3 += step2[3] + "%2c";

sy4+=step2[4] + "%2c";

}

sx = sx.Substring(0, sx.Length - 3);

sy1 = sy1.Substring(0, sy1.Length - 3);

Page 503: Code Listing

sy2 = sy1.Substring(0, sy1.Length - 3);

sy3 = sy1.Substring(0, sy1.Length - 3);

sy4 = sy1.Substring(0, sy1.Length - 3);

string body = "Dear Sir,<br/> This is to inform you that your ward <b><u>" + dr["FirstName"].ToString() + " " + dr["LastName"].ToString() +

"</u></b>, has been missing his classes regularly. <br/>His current attendance percentage is " + dr["Attendance"].ToString() +

". Please be kind enough to come to the school and meet either the Principal or the class teacher immediately.<br/>For your " +

"information please view the attached graphical representation of the mentioned data.<br/>" +

"yours sincerely <br/> Web Admin<br/>" + DateTime.Now.ToString() + "<br/><img src='" +

"https://chart.googleapis.com/chart?chs=500x500&amp;chds=a&amp;cht=bvs&amp;chd=t:" + sy1 +

"&amp;chl=" + sx + "&amp;chxt=x%2cy&amp;chbh=r%2c0.5%2c1.5'/>";

//"%7c" + sy2 + "%7c" + sy3 + "%7c" +sy4 +

mail.Body = body;

mail.IsBodyHtml = true;

SmtpClient smtp=new SmtpClient();

smtp.UseDefaultCredentials = false;

//smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "sudeep0104");

smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "sudeep0104");

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

smtp.Host = "smtp.gmail.com"; // 'Or Your SMTP Server Address

//smtp.Host = "learnasp.in";

smtp.Port = 587;

smtp.EnableSsl = true;

smtp.Send(mail);

Page 504: Code Listing

answer = true;

return answer;

}

}

return answer;

}

}

Page 505: Code Listing

K:\SpringDale\Teacher\BrowseAttendance.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="BrowseAttendance.aspx.cs" Inherits="Teacher_BrowseAttendance" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="../js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript">

function addload(){

GetAttendanceTable.GetClassListBox(function (result) {

$("#tdClassName").html("<b>Class Name </b> " + result.toString());

}, function (result) {

$("#tdClassName").html(result.toString());

});

GetAttendanceTable.GetSectionListBox(function (result) {

$("#tdSectionName").html("<b>Section </b> " + result.toString());

}, function (result) {

$("#tdSectionName").html(result.toString());

});

$("#datepicker").datepicker({ dateFormat: 'dd-mm-yy' });

$("#gridviewmain").hide();

Page 506: Code Listing

}

</script>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>

</asp:Content>

Page 507: Code Listing

K:\SpringDale\Teacher\BrowseAttendance.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class Teacher_BrowseAttendance : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

Page 508: Code Listing

K:\SpringDale\Teacher\EnterMarks.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="EnterMarks.aspx.cs" Inherits="Teacher_EnterMarks" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript" src="http://learnasp.in/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/jquery-ui-1.8.18.custom.min.js"></script>

<script type="text/javascript" src="http://learnasp.in/js/notifier.js"></script>

<script type="text/javascript">

var myObject;

var currentdate = new Date();

var currentenroll = 0;

var termid = 0;

var classname = "";

var subjectid = 0;

function addload() {

var id = '<%=Page.User.Identity.Name %>';

MarksWeb.getClasses(id,gotclasses);

$("#opener").button();

// $("#btnLoadAttendance").button();

$("#opener").click(function () { return false; });

$.fx.speeds._default = 1000;

$(function () {

$("#dialog").dialog({

Page 509: Code Listing

autoOpen: false,

show: "blind",

hide: "explode"

});

$("#StudentAttRec").dialog({

autoOpen: false,

show: "blind",

hide: "explode",

width: 400,

height: 300

});

$("#opener").click(function () {

$("#lstSearchItem option:selected").each(function () {

$("#dialog").html();

GetAttendanceTable.GetDataTableForSearch($(this).val(), $("#txtSearchString").val(), function (result) {

$("#dialog").html(result);

}, function () {

$("#dialog").html("Unable To Retrieve Data...!");

});

});

$("#dialog").dialog("open");

$("#dialog").dialog("option", "height", 250);

$("#dialog").dialog("option", "width", 430);

return false;

});

Page 510: Code Listing

});

}

function gotclasses(result) {

$('#divclasses').show();

$('#divclasseslabel').show();

$('#divclasses').html(result);

}

function classes_change() {

var dropdown = document.getElementById("cmbclasses");

var index = dropdown.selectedIndex;

var ddVal = dropdown.options[index].value;

var ddText = dropdown.options[index].text;

var id = '<%=Page.User.Identity.Name %>';

//alert(ddVal + "," + id);

MarksWeb.getSubjects(id, ddVal, gotSubjects);

MarksWeb.getTerms(ddText, gotTerms);

return false;

}

function gotSubjects(result) {

$('#divsubjects').show();

$('#divsubjectslabel').show();

$('#divsubjects').html(result);

$('#divterms').show();

Page 511: Code Listing

$('#divtermslabel').show();

$('#btnUpdate').show();

$('#btnNext').show();

}

function gotTerms(result) {

$('#divterms').show();

$('#divtermslabel').show();

$('#divterms').html(result);

}

function next_click() {

$('#showajax').show();

var dropdown = document.getElementById("cmbclasses");

var index = dropdown.selectedIndex;

var classid = dropdown.options[index].value;

classname= dropdown.options[index].text;

var dropdown2 = document.getElementById("cmbSubjects");

var index2 = dropdown2.selectedIndex;

var subjectname = dropdown2.options[index2].text;

subjectid = dropdown2.options[index2].value;

var dropdown3 = document.getElementById("cmbTerms");

var index3 = dropdown3.selectedIndex;

termid = dropdown3.options[index3].value;

Page 512: Code Listing

MarksWeb.getMarksTable(subjectname, termid, classid, gotMarksTable);

}

function gotMarksTable(result) {

$('#showajax').hide();

$('#divmarks').html(result);

}

function update_click() {

i = 0;

$('#showajax').show();

$('#mainmarkstable tr').each(function () {

$this = $(this);

if (i > 0) {

var enroll = $this.find('#enroll' + i.toString());

var enrollno;

if (enroll != null) {

enrollno = enroll.text();

}

var obj = $this.find('#txt' + i.toString());

var marks;

if (obj != null) {

marks = obj.val();

MarksWeb.updateMarks(enrollno, marks, termid, classname, subjectid,marksUpdated);

}

}

i = i + 1;

});

}

Page 513: Code Listing

function marksUpdated(result)

{

$('#showajax').hide();

if(result=="true")

Notifier.info('Marks Update Success','Success');

else

Notifier.error('oooops! Something has gone wrong','Error');

}

</script>

<style type="text/css">

.sendbehind

{

z-index:-99999;

}

.mypanel

{

padding-top:10px;

}

</style>

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

<asp:ServiceReference Path="http://learnasp.in/GetAttendanceTable.asmx" />

<asp:ServiceReference Path="http://learnasp.in/MarksWeb.asmx" />

<asp:ServiceReference Path="http://learnasp.in/GetTeachers.asmx" />

</Services>

</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

ViewStateMode="Enabled">

<ContentTemplate>

Page 514: Code Listing

<div id="dialog" title="Student Information" style="width:400px;height:300px;">

</div>

<div id="StudentAttRec" title="Student Attendance Information" style="width:200px;height:300px;">

<p><h3>This will show the cumulative of the student</h3>

<p>

</p>

<p>

</p>

</p>

</div>

<div style="width:98%; margin-left:10px;">

<div style="float:left;width:10%;">

<div class="shadedHeader" style="margin-top:10px;"> Search Student</div>

<div style="margin-top:8px; text-align:center">

<select id="lstSearchItem">

<option value="1">Enrollment No</option>

<option value="2">Roll No</option>

<option value="3">First Name</option>

<option value="4">Class-Section</option>

<option value="5">Class</option>

Page 515: Code Listing

</select>

</div>

<div style="margin-top:8px; text-align:center;">

<input type="text" id="txtSearchString" size="20px" />

</div>

<div style="margin-top:8px; text-align:center;" id="fixed-div"><button id="opener">Search .......</button></div>

</div>

<div style="float:left;width:4%; padding-left:20px;">&nbsp;</div>

<div style="float:left;width:78%;">

<div style="margin:0 auto;width:70%;">

<div style="padding-left:10px; padding-right:10px; padding-top:10px; padding-bottom:12px;">

<div id='divclasseslabel' style="float:left;padding:5px;display:none; vertical-align:middle"><b>Choose Class :</b></div>

<div id="divclasses" style="float:left;vertical-align:middle;display:none;"></div>

<div id='divsubjectslabel' style="float:left;padding:5px;display:none; vertical-align:middle;"><b>Choose Subject :</b></div>

<div id="divsubjects" style="float:left;vertical-align:middle;display:none;"></div> &nbsp;

<div id='divtermslabel' style="float:left;padding:5px;display:none; vertical-align:middle;"><b>Choose Term : </b></div>

<div id="divterms" style="float:left; vertical-align:middle;display:none;"></div>

<div id="showajax" style="float:left; vertical-align:middle;display:none;">

<img alt="" src="http://learnasp.in/css/ajax-loadersmall.gif" /></div>

&nbsp;

<input id="btnNext" type="button" value="Next >>" onclick="next_click();" style="display:none;" />

<input id="btnUpdate" type="button" value="Update" onclick="update_click();" style="display:none;"/>

<div style="clear:both;"> &nbsp;</div>

Page 516: Code Listing

<div id="divmarks" style="width:70%; margin:0 auto;"></div>

</div>

</div>

</div>

</div>

</ContentTemplate>

</asp:UpdatePanel>

</asp:Content>

Page 517: Code Listing

K:\SpringDale\Teacher\EnterMarks.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Text.RegularExpressions;

using System.Web.UI.WebControls;

using System.Data;

public partial class Teacher_EnterMarks : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ClientScript.RegisterStartupScript(this.GetType(), "initpage", "Sys.Application.add_load(addload);", true);

if (!IsPostBack)

{

try

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

}

catch (Exception ex) { }

}

Page 518: Code Listing

}

protected void cmbClasses_SelectedIndexChanged2(object sender, EventArgs e)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

}

protected void cmbSubjects_SelectedIndexChanged(object sender, EventArgs e)

{

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");

var match = numAlpha.Match(Page.User.Identity.Name);

var alpha = match.Groups["Alpha"].Value;

var num = match.Groups["Numeric"].Value;

}

}

Page 519: Code Listing

K:\SpringDale\Teacher\Web.config

<?xml version="1.0"?>

<configuration>

<system.web>

<authorization>

<allow roles="Administrators"/>

<allow roles="Teachers" />

<deny roles="Students"/>

<deny users="*"/>

</authorization>

</system.web>

</configuration>