You are on page 1of 167

Database Theory & Design

APGENCO MAILING SYSTEM

SUBMITTED TO:

Dr. C. J. Hwang

SPRING 2011 CS 5332


SUBMITTED BY

NIDISH REKULAPALLI ID#639212.


Texas State University

INDEX

Chapter 1 Introduction 1.1 1.2 1.3 1.4 Idea of the project Project Description and Scope Project Description & Scope Software Platform used for Implementation

Chapter 2 Study of System functional Requirements 2.1 2.2 2.3 Forms 2.4 2.5 Introduction Summary of Interview / Study Functional Requirement Input and Output Business Output Business Forms

Chapter 3 External Schema 3.1 3.2 3.3 3.4 3.5 3.6 Diagram of System Model of the Project Relations, Attributes and Description Normalized Relations Representing by Keys Functional Dependency of Every Normalized Relation Special Restrictions for Each Relation

Chapter 4 Data Dictionary or System Catalog 4.1 4.2 4.3 4.4 Relations, Attributes, Domains, Contents Attributes, Types, Descriptions, Restrictions Cross Reference Other

Chapter 5 Conceptual Schema and Logical Model of the System 5.1 5.2 5.3 Description of all Required Relationships E/R Diagram of the system with complete tables Physical Constraints

Chapter 6 Queries and System Implementation I 6.1 The Software, RDMS and platform used to implement the relational database 6.2 Database Creation and Required commands of RDBMS tool Used 6.3 Twenty Nontrivial Queries 6.4 SQL program or Other Tools for the implementation of queries and output for each query 6.5 Other Chapter-7 Queries and System Implementation II 7.1 The Software, RDMS and platform used to implement the relational database 7.2 Database Creation and Required commands of RDBMS tool Used 7.3 Twenty Nontrivial Queries 7.4 SQL program or Other Tools for the implementation of queries and output for each query 7.5 Other

CHAPTER 1

INTRODUCTION

1 INTRODUCTION TO PROJECT

This project deals comprehensively about the Mailing system of Apenco. Here well find the communication between Generating Units and Ap-Genco Head Quarters. Means the data is transferred between there two. The ApGenco Department is the primary power generating unit and is dedicated for producing power. The purpose is to maintain all the records of the Apgenco Mailing System. This document is the only one that describes the requirements of the system. Any changes made to the requirements in the future will have to go through the formal changes approval process. The developer is responsible for asking about the clarifications where necessary, and will not make any alternations without permissions of the Client. The Software must affect as a thing of relaxation and convenience of the Client. The Software must affect as a thing of relaxation and convenience for the top most person in the organization and any lower level.

1.1 MOTIVATION
The basic motivation of this project is to change the existing manual system of recording the information in records into computerized so that it is very easy and efficient to maintain the records and facilitates the user for future references and forecasting. However, with the advent of the Internet, it is possible to enable power generating units and Apgenco is to access their data through a Web site. This method of accessing information over the Internet through Web sites has become all the easier with the advent of ASP.NET.

1.2 PROJECT DECREPTION, SCOPE

APGENCO Client Application is developed for smooth process of E-Mail transfer between Generating Units and the Genco Head-Quarters. This

application is developed from clients point of view and by keeping his requirement in mind. Client Application is purely in GUI mode and it is user friendly. This documentation will help the users to work efficiently with this application. This project deals comprehensively about the Mailing system of Apgenco. Here well find the communication between Generating Units and AP-Genco Head Quarters.

The basic purpose of this project is to change the existing manual system of recording the information in records into computerized so that it is very easy and efficient to maintain the records and facilitates the user for future references and forecasting. The project has been planned to be having the view of distributed architecture, with centralized storage of the database. The application for the storage of the data has been planned. Using the constructs of MS-SQL Server and all the user interfaces have been designed using the ASP.Net technologies. The database connectivity is planned using the SQL

Connection methodology. The standards of security and data protective mechanism have been given a big choice for proper usage. The application takes care of different modules and their associated reports, which are produced as per the applicable strategies and standards that are put forwarded by the administrative staff. The entire project has been developed keeping in view of the distributed client server computing technology, in mind. The specifications have been normalized up to 3NF to eliminate all the anomalies that may arise due to the database transaction that are executed by the general users and the organizational administration. The user interfaces are browser specific to give distributed accessibility for the overall system. The internal database has been selected as MS-SQL server. The basic constructs of table spaces, clusters and indexes have been exploited to provide higher consistency and reliability for the data storage. The MS-SQL server was a choice as it provides the constructs of high-level reliability and security. The total front end was dominated using the ASP.Net technologies. At all proper levels high care was taken to check that the system manages the data consistency with proper business rules or validations. The database

connectivity was planned using the latest SQL Connection technology

provided by Microsoft Corporation. The authentication and authorization was crosschecked at all the relevant stages.

1.3 THE SOFTWARE AND PLATFORM USED TO IMPLEMENT THIS APPLICATION.


HARDWARE REQUIREMENTS:

y y y y

Pentium-IV with Dual Processor RAM 1 GB and Above HDD 80 GB Hard Disk Space and Above with SCSI Controller Keyboard, Mouse, Monitor.

SOFTWARE REQUIREMENTS:

y y y y y y

WINDOWS OS (XP Service Pack-2/Windows Server-2000) Visual Studio .Net 2005 Enterprise Edition Internet Information Server 5.0 (IIS) Visual Studio .Net Framework (Minimal for Deployment) SQL Server 2000 Enterprise Edition Internet Explorer as browser software.

CHAPTER-2

2. STUDY OF SYSTEM FUNCTIONAL REQUIRMENTS

2.1. INTRODUCTION
After analyzing the requirements of the task to be performed, the next step is to analyze the problem and understand its context. The first activity in the phase is studying the existing system and other is to understand the requirements and domain of the new system. Both the activities are equally important, but the first activity serves as a basis of giving the functional specifications and then successful design of the proposed system. Understanding the properties and requirements of a new system is more difficult and requires creative thinking and understanding of existing running system is also difficult, improper understanding of present system can lead diversion from solution. ANALYSIS MODEL The model that is basically being followed is the WATER FALL MODEL, which states that the phases are organized in a linear order. First of all the feasibility study is done. Once that part is over the requirement analysis and project planning begins. If system exists one and modification and addition of new module is needed, analysis of present system can be used as basic model. The design starts after the requirement analysis is complete and the coding begins after the design is complete. Once the programming is completed, the testing is done. In this model the sequence of activities performed in a software development project are: y y y y Requirement Analysis Project Planning System design Detail design

y y y

Coding Unit testing System integration & testing

Here the linear ordering of these activities is critical. End of the phase and the output of one phase is the input of other phase. The output of each phase is to be consistent with the overall requirement of the system. Some of the qualities of spiral model are also incorporated like after the people concerned with the project review completion of each of the phase the work done. WATER FALL MODEL was being chosen because all requirements were known beforehand and the objective of our software development is the

computerization/automation of an already existing manual working system.

Changed Requirements Communicated Requirements

Requirements Engineering

Requirements Specification

Design

Design Specification

Programming

Executable Software Modules

Maintenance

Process Integration

Integrated Software Product

Product Input

Product Output

Delivery

Delivered Software Product

Water Fall Model

2.2.SUMMARY OF INTERVIEW AND STUDY. INTERVIEW


Interview Reports:

User: RAJU (Working in APGENCO)

Purpose: The main purpose of this documentation is to procure the user and technical requirements. The first step in building the project is to approach the users, interact with them and find out all the information and specifications from them. NIDISH: Hello RAJU Sir, How are you? RAJU: Fine NIDISH, How are you doing?

NIDISH: Good.

NIDISH: Would you please explain briefly about your Consultancy? RAJU: We provide several operations to the applicants like searching the jobs, inserting their resume, deleting the resume. We also provide several operations for the employers like searching the applicants

according to their required area of interest and experience, inserting the job and deleting the job from the database when the company fulfills the requirements of the job.

NIDISH: Who are the users of your project? RAJU: We have two users for this project. One is the applicant who searches for the job and the other is Employer who posts the jobs.

NIDISH: What type of operations do you perform? RAJU: Our operations include putting resume in the applicants database by a new applicant. Inserting the details of a new job requirement in the jobs database by a company authorized persons. Searching a suitable applicant by company authorized persons. Searching a job by the applicant. Deleting the applicant. Deleting the job form the database.

NIDISH: What are the facilities do you offer for the applicants? RAJU: The applicant can post their resume in the applicant database, searching a job by the applicant according to the skilled area of the applicant and deleting their resume from the database when the applicant doesn't require the job.

NIDISH: What are the facilities do you offer for the employers? RAJU: The employer can insert the details of the new job requirement in the jobs database by a company authorized persons, searching a suitable applicant by company authorized persons, deleting the job by company authorized persons.

NIDISH: How does an applicant insert a resume into the database?

RAJU: When the applicant clicks the "Insert resume of an applicant" hyperlink, the Applicant detail page will be displayed. Now applicants can register their details. After registering, the details will store in Database and they will be given one Unique Id i.e Applicant-id.

NIDISH: How does an employer insert a new job? RAJU: When the user clicks the "Insert a new job" hyperlink, the details of the job requirement page of the Company will be displayed. Only few personals of the company will be authorized to access this job requirement page only by entering specific username and password. Upon entering the correct username and password the company personals can enter the detailed requirements for their company in this page. These requirements are stored in the Database. For each unique job requirement unique job identification is allocated i.e Job-id will be generated automatically.

NIDISH: How does a company authorized person searches an applicant? RAJU: When the user clicks the "search an applicant" hyperlink, the details of the skilled area and experience page of the applicant will be displayed. After entering the details and submitting the details, it prompts for the username and password. After entering correct username and password, the list of the applicants who meet the requirement can be displayed.

NIDISH: How does the applicant searches the job? RAJU: When the user clicks Search a Job ", the details of the skilled area of the Applicant, the list of companies who have requirement will be displayed by searching from the database. This will work as a search engine for jobs. Then the applicants can apply for the available job.

NIDISH: How does the applicant delete their profile?

RAJU: The Applicant can delete their resume from the database by just entering the applicant-id (generated while registering resume in the option1) when the applicant doesn't require the job. This delete option is in the home page.

NIDISH: How does the employer delete the job? RAJU: The Employer can delete the job from the database by just entering the job-id (generated while registering resume in the option1) when the company fulfills requirement of the job. This delete option is in the home page.

GUIS In the flexibility of the uses the interface has been developed a graphics concept in mind, associated through a browses interface. The GUIS at the top level have been categorized as 1. Administrative user interface 2. The operational or generic user interface

The administrative user interface concentrates on the consistent information that is practically, part of the organizational activities and which needs proper

authentication for the data collection. The interfaces help the administrations with all the transactional states like Data insertion, Data deletion and Date updation along with the extensive data search capabilities. The operational or generic user interface helps the users upon the system in transactions through the existing data and required services. The operational user

interface also helps the ordinary users in managing their own information helps the ordinary users in managing their own information in a customized manner as per the assisted flexibilities.

NUMBER OF MODULES

The system after careful analysis has been identified to be presented with the following modules:

y y y y y

Add Units Add Users Address Book Details Send/Receive Mail Details Authentication

Add Units: In this module the administration authority can add new units in the system. generate the power. A unit major functionality is to

All units are in different locations in

Andhra Pradesh. The administration authority fill the complete details of units and press submit button means the data will be saved on database. For every unit a target Email-Id is there.

Add Users: It includes adding new users which are working in Head quarters which is situated in Hyderabad called ApGenco Head Quarters. All users of this system are performed different roles in Centralized Head Quarters in Hyderabad. For every user username, password, address and phone number and Email Id is provided. The administration authority fill the complete details of units and press submit button means the data will be saved on database.

Address Book Details: This module is used to find the Address details of a particular Unit or User. It means that it contains all the Users and Units Email-Ids with unit name and city and phone numbers. If any changes done at the administration level then to

export that address book details and update the information there also.

Send/Receive Mails: This module is mainly used for sending and receiving mails between units and head quarters. When ever a used press on the send button with fill the proper information the mails automatically send from outbox folder of your application and if there are any new messages it will be downloaded and saved in Inbox folder of the application in centralized database system. Once this process is finished well get the message

Sending and Receiving Mails Completed Successfully.

Inbox/Outbox: This module contains all the information about the Send Items and Receive mails. Every Send Item is saved on outbox folder and

Received Items will be saved on Inbox only.

Authentication: This module provides security to the application.

Every

user should enter correct user name and password to proceed. This request will goes to database and check the user existing. If you entered wrong user name and password then it prompts you Incorrect Username or Password

PROJECT INSTRUCTIONS:

Based on the given requirements, conceptualize the Solution Architecture. Choose the domain of your interest otherwise develop the application for ultimatedotnet.com. Depict the various architectural components, show

interactions and connectedness and show internal and external elements. Design the web services, web methods and database infrastructure needed both and client and server. y Provide an environment for upgradation of application for newer versions that are available in the same domain as web service target.

2.3 FUNCTIONAL REQUIRMENTS INPUT SCREENS

2.4 FUNCTIONAL REQUIRMENTS OUTPUT SCREENS

2.5 ADDITIONAL:
PROPOSED SYSTEM

To debug the existing system, remove procedures those cause data redundancy, make navigational sequence proper. To provide information about audits on different level and also to reflect the current work status depending on organization/auditor or date. To build strong password mechanism.

NEED FOR COMPUTERIZATION

We all know the importance of computerization. The world is moving ahead at lightening speed and every one is running short of time. One always wants to get the information and perform a task he/she/they desire(s) within a short period of time and too with amount of efficiency and accuracy. The application areas for the computerization have been selected on the basis of following factors:

y y y

Minimizing the manual records kept at different locations. There will be more data integrity. Facilitating desired information display, very quickly, by retrieving information from users.

y y y

Facilitating various statistical information which helps in decision-making? To reduce manual efforts in activities that involved repetitive work. Updating and deletion of such a huge amount of data will become easier.

FUNCTIONAL FEATURES OF THE MODEL

As far as the project is developed the functionality is simple, the objective of the proposal is to strengthen the functioning of Audit Status Monitoring and make them effective and better. The entire scope has been classified into five streams knows as Coordinator Level, management Level, Auditor Level, User Level and State Web Coordinator Level. The proposed software will cover the information needs with respect to each request of the user group viz. accepting the request, providing vulnerability document report and the current status of the audit.

WORKING OF THE SYSTEM

The entire scope has been classified into five streams known as: Coordinator Level (Addressing the information management needs of coordinator) Management Level (Addressing the information management needs of management) Auditor Level (Addressing the information management needs of auditors) User Level (Addressing the information management needs of the user group) State Web Coordinator level (Addressing the needs of coordinator of the state)

INPUT AND OUTPUT

The main inputs, outputs and major functions of the system are as follows

INPUTS: y y y Administration enters his or her user id and password. Units/Users also enter his or her user id and password. Administration adds the new details of Unit and User in to the system. y y y y Users/Units send Mails to recipients. User/Units search for concerned Email-Ids to send Mails to them. User/Units add new details in address book. Head operator can edits the personal details and so on.

OUTPUTS: y Administrator receives the personal panel. y Users/Units receive the personal panel. y All send and receive mails saved on Inbox and Outbox. y New User and Unit details are saved in the data base. y Displays search result. PROCESS MODELS USED WITH JUSTIFICATION
ACCESS CONTROL FOR DATA WHICH REQUIRE USER AUTHENTICATION

The following commands specify access control identifiers and they are typically used to authorize and authenticate the user (command codes are shown in parentheses)

USER NAME (USER)

The user identification is that which is required by the server for access to its file system. This command will normally be the first command transmitted by the user after the control connections are made (some servers may require this).

PASSWORD (PASS)

This command must be immediately preceded by the user name command, and, for some sites, completes the user's identification for access control. Since password information is quite sensitive, it is desirable in general to "mask" it or suppress type out.

CHAPTER-3

3.EXTERNAL SCHEMA

3.1 DIAGRAMS OF SYSTEM MODEL OF PROJECT.

Registration Diagram:

Login Activity Diagram:

Admin Activity Diagram:

Employee Activity Diagram:

Context Diagram

Search

Units

Search Information

Unit Information Search Report

Admin
Admin Information

Unit Report

Admin

User Information

APGencoU sers
User Report

APGENCO MAILING SYSTEM

Mail information

Authentication

Mail

Sending Mails

Authenticat ion

Authentication Information

Inbox/Out box

User Login DFD Diagram:

Admin Details Data Flow: 1st level DFD:

2nd Level DFD

Users Details Data Flow 1st level DFD

2nd Level DFD For Mails

3.3 NORMALIZED RELATIONS

DESIGINATION MASTER

Desisnationid- primary key

EMAIL DETAILS

Emaildetailsid- primary key Emailed- foreign key Receivermpid- foreign key

EMAIL MASTER

Emailed- primary key Senderempid- foreign key

EMP MASTER

Empid- primary key Desiginationid- foreign key Unitid- foreign key

LOGIN MASTER

User name- primary key Empid- foreign key

UNIT MASTER

Unitid- primary key Unittypeid- foreign key

UNIT TYPE MASTER

Unittypeid- primary key

3.4 REPRESENTING BY KEYS DESIGINATION MASTER

EMAIL DETAILS

EMAIL MASTER

EMP MASTER

LOGIN MASTER

UNIT MASTER

UNIT TYPE MASTER

SYSTEM DIAGRAM

Chapter-4

4.DATA DICTIONARY OR SYSTEM CATALOG


4.1 Descriptions of all the relations and attributes

4.1.1 designation master


designation master represents a list of designations that are available and the customer is allotted one designation out of all the available designation.

Attributes of Room - Room No Description: number that uniquely identifies each Room - Add date Description: Date when new Room was added to inventory. - Status Description: Indicates current disposition of Room. Some possible values are Rented, Open or unknown.

- Rental Count Description: Indicates number of times the Room was rented. - Location Description: Place that uniquely identifies the room location.

4.1.2 EMAIL DETAILS


EMAIL DETAILS represents a customer who has membership of the APENCO. The user adds new members to club when need arises.

Attributes of EMAIL DETAILS

- Member ID - Street - City - State Description: abbreviated state code. Description: city name (for postal mailing purposes). Description: a field used to accommodate that part of a postal mailing address that is before city name. Description: number that uniquely identifies each member. - Member Name (First & last) Description: Member name(First & last).

- ZipCode Description: postal zip code.

- Contact N Description: Home telephone number

- Email ID Description: email address

4.1.3 EMAIL MASTER


EMAIL MASTER represents a customer representative at reception, who assists the club member. Attributes of EMAIL MASTER - Employee ID Description: number that uniquely identifies each employee.

- Employee Name Description: name of employee handling transaction.

Salary Description : The salary the employee gets

4.1.4 UNIT MASTER


UNIT MASTER represents collection of services like Room rental, sales and reservation requested by various members of the club i.e. each occurrence of a transaction represents a broad (first level) description of service requested by a customer. In general, a customer may have several transactions like renting a room and making cancellations. Attributes of UNIT MASTER - Transaction ID Description: number that uniquely identifies each transaction of type reservation and cancellation. - Employee ID Description: number that uniquely identifies each employee.

- Member ID Description: number that uniquely identifies each member. Transaction Type Description : It describes if it is a reservation or cancellation

4.1.5 UNIT TYPE MASTER

UNIT TYPE MASTER represents a collection of room rental transactions i.e. each occurrence of rental represents a further description (second level) of room rental. In general, room may be rented by a customer and returned on or before due date or after due date.

Attributes of UNIT TYPE MASTER - Rental Date Description: date when the room was rented to the customer. - Due Date Description: date when the room has to be returned by the customer. - Return Date Description: date when the room was actually returned by the customer. - Rental Charge Description: Standard fee applicable to each room rental. - Overdue Charge Description: Late fee applicable if room is vacated after due date.

4.1.6 EMP MASTER


EMP MASTER represent a collection of sales transactions i.e. each occurrence of sales represents a further description (second level) of rooms rented to customer.

Attributes of EMP MASTER Sale price Description: price at which the room is reserved to customer. - Sale Date Description: date when the transaction occurred.

4.1.7 LOGIN MASTER


LOGIN MASTER represents a collection of room request transactions i.e. each occurrence of reservation represents a further description (second level) of room requested by customer. Customer makes reservation for room by its number and location. - Number Description: Number of the room to be reserved - Request date Description: date when customer made the reservation. - Notification method Description: method to notify the customer (email or phone) when room is available.

Chapter-5

5. Conceptual schema and logical model of the system

5.1 Relations, Attributes, Domain

5.1.1 Relationship between designation master and EMAIL DETAILS.


Member embodies the set of customers who involved in a Transaction like rent a room, return a room, reserved a room. At any time, however, there may not be any customer that requests a transaction. Also, in general, each customer may be involved in several transactions at any time. Therefore, the relationship between Member and Transaction is one-to-many; the minimal cardinality of Member is zero and that of Transaction is zero.

5.1.2 Relationship between EMAIL MASTER and EMAIL MASTER.


Employee embodies the set of employees who handle a Transaction like rent a room, return a room, reserved a room. At any time, however, there may not be any employee that handles the transaction. Also, in general, each employee may be involved in several transactions at any time. Therefore, the relationship between Employee and Transaction is one-to-many; the minimal cardinality of Employee is zero and that of Transaction is zero.

5.1.3 Relationship between super type designation master and sub types EMAIL MASTER and EMAIL MASTER.
Transaction embodies the set of services offered by the company like rent a room, return a room or reserve a room. Each Transaction is of type Rental or Sales or Reservation. At any time, transaction must be of type rental, sales or reservation. Therefore, the relationship between Transaction and Rental, Sales and Reservation is Mandatory

5.1.4 Relationship between designation master and EMP MASTER.


Rental embodies set of rooms rented by the customer. At any time, however, room may not be rented by any customer. However, each rental must be associated with a specific room.

Therefore, the relationship between Rental and room is many to many; the minimal cardinalities of Rental and room are one and zero, respectively.

5.1.5 Relationship between EMP MASTER and LOGIN MASTER.


Sales embody set of rooms sold by the company to customers. At any time, however, room may not be purchased by any customer. However, each sale must be associated with a specific room and customer can purchase multiple rooms. Therefore, the relationship between Sales and room is one to many; the minimal cardinalities of Sales and room are one and zero, respectively.

5.1.6 Relationship between LOGIN MASTER and UNIT MASTER.


Reservation embodies set of rooms requested by customers. At any time, however, room may not be reserved by any customer. However, each reservation must be associated with a specific room and customer can make multiple reservations. Therefore, the relationship between Reservation and room is many to many; the minimal cardinalities of Reservation and room are one and zero, respectively.

5.1.7 Relationship between UNIT MASTER and UNIT TYPE MASTER.


Reservation embodies set of rooms requested by customers for Rental. At any time, however, there may be a rental that will not fulfill any reservation. However, each reservation is fulfilled by at least one reservation. Therefore, the relationship between Reservation and Rental is one to many; the minimal cardinalities for both Reservation and Rental is zero.

5.2 E/R DIAGRAM

Chapter-6

6.QUERIES AND SYSTEM IMPLEMENTATION 1

Queries and RDBMS System Implementation

6.1 The Software, RDBMS and Platform used to Implement the Relational Database
The platform on which and the software with which the database is implemented are as follows: y y y IBM-compatible personal computer (Intel Core 2 Duo), Microsoft Windows Vista operating system, and SQL Server 2005 RDBMS.

6.2 Database creation and Required Commands


In SQL Server 2005, a new database is created by invoking the File New command (then choosing the Blank Database option and supplying the destination folder and file names), which results in the creation of an initial database file that will house further definitions of the database. It also shows the organizational paradigm of Access, which groups database objects into seven categories: Tables, Queries, Forms, Reports, Pages, Macros and Modules. Once the initial database file is in place, the required database objects can be created, modified or examined graphically through various windows, most of which can be invoked by simply clicking the appropriate buttons.

DESIGINATION MASTER

EMAIL DETAILS

EMAIL MASTER

EMP MASTER

LOGIN MASTER

SYSTEM DIAGRAMS

UNIT MASTER

UNIT TYPE MASTER

CHAPTER-7

7.QUERIES AND SYSTEM IMPLEMENTION 2

7.1 The SQL based Software and Platform used to implement the Relational Database
The platform on which and the software with which the database is implemented are as follows: y y y IBM-compatible personal computer (Intel Core 2 Duo), Microsoft Windows Vista operating system, and MY- SQL

My-SQL Server 2005 is a component of which is one of the main application software used to implement this project.

7.2 Database Creation in SQL based tool Populating the Database: 1. INSERT INTO `privileged` ( `regid` , `timesvisited` ) VALUES ( '12345', '15'), ( '23456', '14'); 2. INSERT INTO `privileged` ( `regid` , `timesvisited` ) VALUES ( '34567', '19'), ( '45678', '13'); 3. INSERT INTO `privileged` ( `regid` , `timesvisited` ) VALUES ( '56789', '16'), ( '67890', '17'); 4. INSERT INTO `privileged` ( `regid` , `timesvisited` ) VALUES ( '78901', '13'), ( '89012', '11'); 5. INSERT INTO `customer` ( `ssn` , `name` , `sex` , `age` , `phonenum` , `regid` ) VALUES ( '1234567890', 'Jim', 'M', '23', '5121235432', '12345'), ( '2345678901', 'Mark', 'M', '43', '5128763453', '23456'); 6. INSERT INTO `customer` ( `ssn` , `name` , `sex` , `age` , `phonenum` , `regid` ) VALUES ( '3456789012', 'Ben', '26', 'M', '5121233215', '34567'), ( '4567890123', 'Ken', '54', 'M', '5127650987', '45678'); 7. INSERT INTO `customer` ( `ssn` , `name` , `sex` , `age` , `phonenum` , `regid` ) VALUES ( '5678901234', 'Ricky', 'M', '34', '4126543267', '56789'), ( '6789012345', 'Matt', 'M', '37', '6541212789', '67890');

8. INSERT INTO `reservation` ( `roomno` , `branchno` , `date` , `ssn` , `status` , `type` , `food` ) VALUES ( '101', '123', '12-4-2008', '1234567890', 'confirm', 'ac', 'y'), ('201', '234', '11-3-2007', '2345678901', 'pending', 'non ac', 'y'); 9. INSERT INTO `reservation` ( `roomno` , `branchno` , `date` , `ssn` , `status` , `type` , `food` ) VALUES ( '301', '345', '09-11-2008', '3456789012', 'confirm', 'ac', 'n'), ( '401', '456', '09-12-2008', '4567890123', 'pending', 'ac', 'y'); 10. INSERT INTO `reservation` ( `roomno` , `branchno` , `date` , `ssn` , `status` , `type` , `food` ) VALUES ( '501', '567', '11-04-2008', '5678901234', 'pending', 'ac', 'y'), ( '601', '678', '10-05-2007', '6789012345', 'confirm', 'nonac', 'n'); 11. INSERT INTO `availability` ( `date` , `branchno` , `noofac` , `noofnonac` ) VALUES ( '12-04-2008', '123', '25', '12'), ( '11-03-2007', '234', '22', '10'); 12. INSERT INTO `availability` ( `date` , `branchno` , `noofac` , `noofnonac` ) VALUES ( '10-03-2008', '345', '12', '13'), ( '11-02-2007', '456', '11', '09'); 13. INSERT INTO `availability` ( `date` , `branchno` , `noofac` , `noofnonac` ) VALUES ( '03-04-2008', '567', '08', '10'), ( '04-05-2008', '678', '10', '11'); 14. INSERT INTO `hotel` ( `hotelcode` , `hotelname` ) VALUES ( '101', 'Tulip Hyderabad'), ( '201', 'Tulip Bangalore'); 15. INSERT INTO `hotel` ( `hotelcode` , `hotelname` ) VALUES ( '301', 'Tulip Madras'), ( '401', 'Tulip Kolkata'); 16. INSERT INTO `hotel` ( `hotelcode` , `hotelname` ) VALUES ( '501', 'Tulip Gudivada'), ( '601', 'Tulip Mysore'); 17. INSERT INTO `branch` ( `branchno` , `city` , `state` , `hotelcode` ) VALUES ( '123', 'hyderabad', 'ap', '101'), ( '234', 'bangalore', 'karnataka', '201'); 18. INSERT INTO `branch` ( `branchno` , `city` , `state` , `hotelcode` ) VALUES ( '345', 'madras', 'tn', '301'), ( '456', 'kolkata', 'wb', '401'); 19. INSERT INTO `branch` ( `branchno` , `city` , `state` , `hotelcode` ) VALUES ( '567', 'gudivada', 'ap', '501'), ( '678', 'mysore', 'karnataka', '601'); 20. INSERT INTO `room` ( `roomno` , `branchno` , `checkintime` , `checkouttime` , `actotal` , `nonactotal` , `acprice` , `nonacprice` ) VALUES ( '101', '123', '10.30', '12.30', '12', '10', '150', '100'), ( '201', '234', '13.30', '14.20', '13', '11', '140', '90'); 21. INSERT INTO `room` ( `roomno` , `branchno` , `checkintime` , `checkouttime` , `actotal` , `nonactotal` , `acprice` , `nonacprice` ) VALUES ( '301', '345', '14.45', '12.23', '12', '11', '140', '120'),

( '401', '456', '15.35', '17.25', '16', '11', '160', '70');

7.3 Screen shots of SQL Based Implementation

8.SOURCE CODE

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class Admin_AdminMasterPage : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class Admin_Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmAddDesignation : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { try { int i = clsDesignation.InserDesgData(txtDesgName.Text, txtShortName.Text, txtDesc.Text); if (i > 0) { btnClear_Click(sender, e); lblmsg.Text = "Designation Data Added To Database."; } else lblmsg.Text = "Error while Transporting Data."; } catch (Exception ex) { lblmsg.Text = ex.Message; } } protected void btnClear_Click(object sender, EventArgs e) { try { lblmsg.Text = ""; txtDesc.Text = ""; txtDesgName.Text = ""; txtShortName.Text = ""; } catch (Exception ex) { lblmsg.Text = ex.Message; } } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

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

{ clsUsers objUsers = null; protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { } } catch (Exception ex) { lblMsg.Visible = true; lblMsg.Text = ex.Message; } txtFName.Focus(); } protected void btnSubmit_Click(object sender, EventArgs e) { try { objUsers = new clsUsers(); objUsers.UserName = txtUserName.Text; DataSet dsUsers = objUsers.CheckUserAvaliability(); if (dsUsers.Tables[0].Rows.Count == 0) { objUsers = new clsUsers(); int EmpId = objUsers.InsertUserDetails(Convert.ToString(txtFName.Text), Convert.ToString(txtLName.Text), Convert.ToInt32(DropDownList1.SelectedValue), Convert.ToInt32(ddlUnits.SelectedValue), Convert.ToDateTime(txtDOJ.Text), Convert.ToDateTime(txtDOB.Text), Convert.ToString(ddlQulification.SelectedItem.Text), txtAddress.Text, Convert.ToString(txtContactNo.Text), txtUserName.Text, txtPassword.Text); if (EmpId != 0) { lblMsg.Text = "Employee Profile successfully Added.."; lblMsg.Visible = true; ClearData(); } else lblMsg.Text = "Employee Registration failed."; } else if (dsUsers.Tables[0].Rows.Count > 0) { Page.RegisterClientScriptBlock("ApGenco", "<script>alert('Username Already Exists choose another')</script>"); txtUserName.Text = ""; txtUserName.Focus(); } } catch (Exception ex)

{ lblMsg.Visible = true; lblMsg.Text = ex.Message; } } protected void btnClear_Click(object sender, EventArgs e) { try { ClearData(); } catch (Exception ex) { lblMsg.Visible = true; lblMsg.Text = ex.Message; } } public void ClearData() { txtUserName.Text = ""; txtPassword.Text = ""; txtFName.Text = ""; txtLName.Text = ""; txtDOB.Text = ""; txtDOJ.Text = ""; txtConform.Text = ""; txtAddress.Text = ""; txtContactNo.Text = ""; if (ddlQulification.Items.Count != 0) ddlQulification.SelectedIndex = 0; if (ddlUnits.Items.Count != 0) ddlUnits.SelectedIndex = 0; if (DropDownList1.Items.Count != 0) DropDownList1.SelectedIndex = 0; txtFName.Focus(); } protected void DropDownList1_DataBound(object sender, EventArgs e) { DropDownList1.Items.Insert(0, "--Select Desg--"); } protected void ddlUnits_DataBound(object sender, EventArgs e) { ddlUnits.Items.Insert(0, "--Select One--"); } }

using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security;

using using using using

System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class Admin_frmAddBranch : System.Web.UI.Page { clsAddUnits objUnits = null; protected void Page_Load(object sender, EventArgs e) { lblMsg.Text = ""; if (!IsPostBack) { } } protected void btnSubmit_Click(object sender, EventArgs e) { try { clsAddUnits objUnits = new clsAddUnits(); int i=clsAddUnits.InsertUnitDetails(txtUnitName.Text, txtShortName.Text, Convert.ToInt32(ddlUnitType.SelectedValue), Convert.ToInt32(ddlEmp.SelectedValue)); if (i == 1) { lblMsg.Visible = true; lblMsg.Text = "Unit Information Inserted into database"; ClearData(); } } catch (Exception ex) { lblMsg.Visible = true; lblMsg.Text = ex.Message; } } protected void btnClear_Click(object sender, EventArgs e) { try { lblMsg.Visible = false ; lblMsg.Text = ""; ClearData(); } catch (Exception ex) { lblMsg.Visible = true; lblMsg.Text = ex.Message; } } public void ClearData() { txtUnitName .Text = ""; txtShortName.Text = ""; if (ddlEmp.Items.Count != 0)

ddlEmp.SelectedIndex = 0; if (ddlUnitType.Items.Count != 0) ddlUnitType.SelectedIndex = 0; } void ClearDataEdit() { TextBox1.Text = ""; TextBox2.Text = ""; if (DropDownList1.Items.Count != 0) DropDownList1.SelectedIndex = 0; if (DropDownList2.Items.Count != 0) DropDownList2.SelectedIndex = 0; } protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e) { try { lblMsg.Text = ""; if (DropDownList3.SelectedIndex != 0) { int id = Convert.ToInt32(DropDownList3.SelectedValue); DataSet ds = clsAddUnits.getUnitInfoByUnitId(id); if (ds.Tables[0].Rows.Count != 0) { TextBox1 .Text =ds.Tables[0].Rows[0][1].ToString(); TextBox2.Text = ds.Tables[0].Rows[0][2].ToString(); for (int i = 0; i < DropDownList1.Items.Count ; i++) { if (DropDownList1.Items[i].Text.ToString() != "-Select One--") { if (Convert.ToInt32(DropDownList1.Items[i].Value) == Convert.ToInt32(ds.Tables[0].Rows[0][3])) { DropDownList1.Items[i].Selected = true; } else DropDownList1.Items[i].Selected = false; } else DropDownList1.Items[i].Selected = false; } for (int i = 0; i < DropDownList2.Items.Count ; i++) { if (DropDownList2.Items[i].Text.ToString() != "-Select One--") { if (Convert.ToInt32(DropDownList2.Items[i].Value) == Convert.ToInt32(ds.Tables[0].Rows[0][4])) { DropDownList2.Items[i].Selected = true; } else

DropDownList2.Items[i].Selected = false; } else DropDownList2.Items[i].Selected = false; } } else lblMsg.Text = "No Record Found"; } } catch (Exception ex) { lblMsg.Text = ex.Message ; } } protected void ddlUnitType_DataBound(object sender, EventArgs e) { ddlUnitType.Items.Insert(0, "--Select One--"); } protected void DropDownList3_DataBound(object sender, EventArgs e) { DropDownList3.Items.Insert(0, "--Select One--"); } protected void ddlEmp_DataBound(object sender, EventArgs e) { ddlEmp.Items.Insert(0, "--Select One--"); } protected void DropDownList1_DataBound(object sender, EventArgs e) { DropDownList1.Items.Insert(0, "--Select One--"); } protected void DropDownList2_DataBound(object sender, EventArgs e) { DropDownList2.Items.Insert(0, "--Select One--"); } protected void Button1_Click(object sender, EventArgs e) { try { int i = clsAddUnits.UpdateUnitDetails(Convert.ToInt32(DropDownList3.SelectedValue), TextBox1.Text, TextBox2.Text, Convert.ToInt32(DropDownList1.SelectedValue), Convert.ToInt32(DropDownList2.SelectedValue)); if (i == 1) { lblMsg.Visible = true; lblMsg.Text = "Unit Information Updated.."; ClearDataEdit(); ViewState["UnitTypeId"] = 0; ViewState["EmpId"] = 0; } } catch (Exception ex) { lblMsg.Visible = true; lblMsg.Text = ex.Message;

} } protected void Button2_Click(object sender, EventArgs e) { try { lblMsg.Visible = false; lblMsg.Text = ""; ClearDataEdit(); if (DropDownList3.Items.Count != 0) DropDownList3.SelectedIndex = 0; } catch (Exception ex) { lblMsg.Visible = true; lblMsg.Text = ex.Message; } } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmAddUnitTypes : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { try { int i = clsAddUnits.InsertUnitTypes(txtUnitType.Text, txtAbbreviation.Text, txtDesc.Text); if (i == 1) { grdUnitTypes.DataSourceID = "SqlDataSource1"; grdUnitTypes.DataBind(); Label1.Text = "Unit Type Information added to database";

ClearData(); } else Label1.Text = "Process error. Try again."; } catch (Exception ex) { Label1.Text = ex.Message; } } void ClearData() { txtAbbreviation.Text = ""; txtDesc.Text = ""; txtUnitType.Text = ""; } protected void btnCancel_Click(object sender, EventArgs e) { ClearData(); } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmChangePassword : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web;

using using using using using using

System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmDeleteEmployee : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { try { if (e.CommandName.ToString() == "delemp") { int empid = Convert.ToInt32(e.CommandArgument); int i = clsUsers.DeleteEmployee(empid); if (i > 0) { GridView1.DataSourceID = "SqlDataSource1"; GridView1.DataBind(); } } } catch (Exception ex) { Label1.Text = ex.Message; } } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmEditDesignation : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

} protected void DropDownList1_DataBound(object sender, EventArgs e) { DropDownList1.Items.Insert(0, "--Select One--"); } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { try { if (DropDownList1.SelectedIndex != 0) { DataSet ds = clsDesignation.GetDesgDataByDesgId(Convert.ToInt32(DropDownList1.SelectedValu e)); if (ds.Tables[0].Rows.Count != 0) { txtDesgName.Text =ds.Tables[0].Rows[0][1].ToString(); txtShortName .Text = ds.Tables[0].Rows[0][2].ToString(); txtDesc.Text = ds.Tables[0].Rows[0][3].ToString(); } else lblmsg.Text = "No data found for this record"; } else { ClearData(); } } catch (Exception ex) { lblmsg.Text = ex.Message; } } void ClearData() { lblmsg.Text = ""; txtDesc.Text = ""; txtDesgName.Text = ""; txtShortName.Text = ""; if (DropDownList1.Items.Count != 0) DropDownList1.SelectedIndex = 0; } protected void btnSubmit_Click(object sender, EventArgs e) { try { if (DropDownList1.SelectedIndex != 0) { int Id = clsDesignation.UpdateDesignationData(Convert.ToInt32(DropDownList1.SelectedVa lue),txtDesgName.Text.ToString(), txtShortName.Text.ToString(),txtDesc.Text.ToString()); if (Id != 0) {

ClearData(); lblmsg.Text = "Designation Data Updated."; } } else { ClearData(); } } catch (Exception ex) { lblmsg.Text = ex.Message; } } protected void btnClear_Click(object sender, EventArgs e) { ClearData(); } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmEditEmpDetails : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void DropDownList2_DataBound(object sender, EventArgs e) { DropDownList2.Items.Insert(0, "--Select One--"); } protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) { try { if (DropDownList2.SelectedIndex != 0) { int Id = Convert.ToInt32(DropDownList2.SelectedValue);

DataSet ds = clsUsers.GetEmployeeDataByEmpId(Id); if (ds.Tables[0].Rows.Count != 0) { for (int i = 0; i < ddlUnits.Items.Count; i++) { if (Convert.ToString(ddlUnits.Items[i].Text) != "-Select One--") { if (Convert.ToInt32(ds.Tables[0].Rows[0][4]) == Convert.ToInt32(ddlUnits.Items[i].Value)) ddlUnits.Items[i].Selected = true; else ddlUnits.Items[i].Selected = false; } else ddlUnits.Items[i].Selected = false; } for (int i = 0; i < DropDownList1.Items.Count; i++) { if (Convert.ToString(DropDownList1.Items[i].Text) != "--Select Desg--") { if (Convert.ToInt32(ds.Tables[0].Rows[0][3]) == Convert.ToInt32(DropDownList1.Items[i].Value)) DropDownList1.Items[i].Selected = true; else DropDownList1.Items[i].Selected = false; } else DropDownList1.Items[i].Selected = false; } lblMsg.Text = "This is the current Designation and Unit Details Of this Emplyee."; } else lblMsg.Text = "Employee Record Not Found"; } else { if (ddlUnits.Items.Count != 0) ddlUnits.SelectedIndex = 0; if (DropDownList1.Items.Count != 0) DropDownList1.SelectedIndex = 0; lblMsg.Text = ""; } } catch (Exception ex) { lblMsg.Text = ex.Message; } } protected void DropDownList1_DataBound(object sender, EventArgs e) { DropDownList1.Items.Insert(0, "--Select Desg--"); } protected void ddlUnits_DataBound(object sender, EventArgs e) {

ddlUnits.Items.Insert(0, "--Select One--"); } protected void btnSubmit_Click(object sender, EventArgs e) { try { int i = clsUsers.UpdateEmpDataByAdmin(Convert.ToInt32(DropDownList2.SelectedValue), Convert.ToInt32(ddlUnits.SelectedValue), Convert.ToInt32(DropDownList1.SelectedValue)); if (i != 0) { lblMsg.Text = "Employee Organization Info Modified."; } else lblMsg.Text = "Process Error. Try again."; } catch (Exception ex) { lblMsg.Text = ex.Message; } } void ClearData() { if (ddlUnits.Items.Count != 0) ddlUnits.SelectedIndex = 0; if (DropDownList1 .Items.Count != 0) DropDownList1.SelectedIndex = 0; if (DropDownList2.Items.Count != 0) DropDownList2 .SelectedIndex = 0; } protected void btnClose_Click(object sender, EventArgs e) { ClearData(); lblMsg.Text = ""; } }

using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts;

using System.Xml.Linq; public partial class Admin_frmShowAllDesg : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmShowAllEmployees : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_frmShowAllBranch : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

} }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_ReportsEmployee : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Admin_ReportUnits : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using using using using

System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.SqlClient; ApGencoDal.DAL;

/// <summary> /// Summary description for Cls_EmailMaster /// </summary> public class Cls_EmailMaster { private private private private private private private private int emailId; int emailSenderId; string emaildate; string emailSubjectText; string eMailBodyMsg; byte[] emailAttachFileContent; string emailAttachFileName; int emailReciptedId;

// constructor public Cls_EmailMaster() { } public int InsertEmailMaster() { try { SqlParameter []p=new SqlParameter[6]; p[0]=new SqlParameter("@EmailSenderId",EmailSenderId); p[1]=new SqlParameter("@EmailSubjectText",EmailSubjectText); p[2]=new SqlParameter("@EMailBodyMsg",EMailBodyMsg); p[3]=new SqlParameter("@EmailAttachFileContent",EmailAttachFileContent); p[4]=new SqlParameter("@EmailAttachFileName",EmailAttachFileName); p[5] = new SqlParameter("@EmailReciptedId", EmailReciptedId); return SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.StoredProcedure, "Sp_EmailMaster_Insert", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); }

} public int EmailId { get { return emailId; } set { emailId = value; } } public int EmailSenderId { get { return emailSenderId; } set { emailSenderId = value; } } public string Emaildate { get { return emaildate; } set { emaildate = value; } } public string EmailSubjectText { get { return emailSubjectText; } set { emailSubjectText = value; } } public string EMailBodyMsg { get { return eMailBodyMsg; } set { eMailBodyMsg = value; } } public byte[] EmailAttachFileContent { get { return emailAttachFileContent; } set { emailAttachFileContent = value; } } public string EmailAttachFileName { get { return emailAttachFileName; } set { emailAttachFileName = value; } } public int EmailReciptedId { get { return emailReciptedId; } set { emailReciptedId = value; } } public static DataSet ShowFacultyEmails() { try { DataSet ds = new DataSet(); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "SP_FacultyEmailiddesplay"); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static DataSet ShowStudentEmails() { try { DataSet ds = new DataSet(); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "SP_studentEmailiddesplay"); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static DataSet ShowAdminEmails() { try { DataSet ds = new DataSet(); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "SP_AdminEmailiddesplay"); } catch (Exception ex)

{ throw new ArgumentException(ex.Message); } } public static DataSet ShowFacultyEmailsStudentWise(int id) { try { DataSet ds = new DataSet(); SqlParameter p = new SqlParameter("@studentid", id); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "SP_FacultyidemailsselectStudentId", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static DataSet ShowStudentEmailsFacultyWise(int id) { try { DataSet ds = new DataSet(); SqlParameter p = new SqlParameter("@Facultyid", id); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "SP_studentidemailsselectFacultyid", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } /// /// /// /// /// /// <summary> useddddddddddd </summary> <param name="id"></param> <returns></returns>

public static DataSet ShowInboxdetails(int id) { try { DataSet ds = new DataSet(); SqlParameter p = new SqlParameter("@Receptedid", id); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "Sp_Inboxdetailshows", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); }

} /// <summary> /// useddddddddddd /// </summary> /// <param name="id"></param> /// <returns></returns> public static DataSet ShowOutboxdetails(int id) { try { DataSet ds = new DataSet(); SqlParameter p = new SqlParameter("@senderid", id); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "Sp_outboxdetails", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } /// <summary> /// useddddddddddd /// </summary> /// <param name="id"></param> /// <returns></returns> public static DataSet ShowEmailDetailsidwiseInbox(int Emailid1) { try { DataSet ds = new DataSet(); SqlParameter p=new SqlParameter("@Emailid", Emailid1); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "Sp_ShowDetailsEmailidwise", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } /// /// /// /// /// /// <summary> Appppppppp </summary> <param name="Emailid1"></param> <returns></returns>

public static DataSet ShowEmailDetailsidwiseOutbox(int Emailid1) { try { DataSet ds = new DataSet(); SqlParameter p = new SqlParameter("@Emailid", Emailid1); return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "Sp_ShowEmaildetailsOutbox", p); }

catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static int UpdateEmailDeleteStatusInbox(int p) { try { return SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.Text, "update tbl_EmailDetails set DeleteStatus=1 where EmailId=" + p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } /// <summary> /// apppp /// </summary> /// <param name="p"></param> /// <returns></returns> public static int UpdateEmailDeleteStatusOutbox(int p) { try { return SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.Text, "update tbl_emailmaster set DeleteStatus=1 where Emailid=" + p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } }

using using using using using using using using using using using

System; System.Data; System.Configuration; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls; System.Data.SqlClient; ApGencoDal.DAL;

/// <summary> /// Summary description for clsAddUnits /// </summary> public class clsAddUnits:ApGenco {

public clsAddUnits() { // // TODO: Add constructor logic here // } public int InsertUnitDetails() { SqlParameter[] p = new SqlParameter[6]; p[0] = new SqlParameter("@UserName", UserName); p[0].SqlDbType = SqlDbType.VarChar; p[1] = new SqlParameter("@Password", Password); p[1].SqlDbType = SqlDbType.VarChar; p[2] = new SqlParameter("@UnitCode", UnitCode); p[2].SqlDbType = SqlDbType.Int; p[3] = new SqlParameter("@UnitName", UnitName); p[3].SqlDbType = SqlDbType.VarChar; p[4] = new SqlParameter("@ShortName", ShortName); p[4].SqlDbType = SqlDbType.VarChar; p[5] = new SqlParameter("@UnitTypeId", UnitTypeId); p[5].SqlDbType = SqlDbType.Int; return int.Parse (SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "spInsertUnitDetails", p).ToString ()); } public DataSet GetUnitsData() { return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "spGetUnitsdata"); } public DataSet GetUnitNames() { return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, "spGetUnitNames"); } public DataSet CheckUnitCodeAvaliability() { try { SqlParameter p = new SqlParameter("@UnitCode", UnitCode); p.SqlDbType = SqlDbType.Int; return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, "spCheckUnitAvaliability", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } }

public static int InsertUnitTypes(string strName, string strAbbre, string strDesc) { try { string strCmd = "INSERT INTO tbl_UnitTypesMaster (UnitTypeName, UnitAbbreviation, Description)VALUES ('" + strName + "','" + strAbbre + "','" + strDesc + "')"; return SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, strCmd); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static int InsertUnitDetails(string strUnitName, string strAbbre, int intUnitType, int intInchargeEmpId) { try { string strCmd = "INSERT INTO tbl_UnitsMaster (UnitName, Abbreviation, UnitTypeId, UnitInchargeEmpId )VALUES ('" + strUnitName + "','" + strAbbre + "'," + intUnitType + "," + intInchargeEmpId + ")"; return SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, strCmd); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static DataSet getUnitInfoByUnitId(int id) { try { string strCmd = "select * from tbl_UnitsMaster where UnitId=" + id; return SqlHelper.ExecuteDataset(ConnectionString, CommandType.Text, strCmd); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static int UpdateUnitDetails(int Id, string strUnitName, string strAbbre, int intUnitTypeId, int InchargeEmpId) { try {

string strCmd = "UPDATE tbl_UnitsMaster SET UnitName = '" + strUnitName + "', Abbreviation = '" + strAbbre + "', UnitTypeId = " + UnitInchargeEmpId =" + InchargeEmpId + " WHERE UnitId intUnitTypeId + ", = " + Id + " "; return SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, strCmd); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } }

using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using ApGencoDal.DAL; /// <summary> /// Summary description for clsDesignation /// </summary> public class clsDesignation:ApGenco { public clsDesignation() { // // TODO: Add constructor logic here // } public public public public int DesignationId { get; set; } string DesgName { get; set; } string DesgAbbreviation { get; set; } string Description { get; set; }

public static int InserDesgData(string Desg_Name, string Abbrevation, string Description) { try { string str = "insert into tbl_DesignationMaster(Desg_Name,Desg_Abbrevation,Description) values('" + Desg_Name + "','" + Abbrevation + "','" + Description + "')"; return SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.Text, str);

} catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static int UpdateDesignationData(int DesgId, string Desg_Name, string Abbrevation, string Description) { try { string str = "update tbl_DesignationMaster set Desg_Name='" + Desg_Name + "', Desg_Abbrevation='" + Abbrevation + "',Description='" + Description + "' where DesisnationId= " + DesgId; return SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.Text, str); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static DataSet GetDesgDataByDesgId(int p) { try { string str = "select * from tbl_DesignationMaster where DesisnationId=" + p; return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.Text, str); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } }

using using using using using using using using using using using using using

System; System.Data; System.Configuration; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq; System.Data.SqlClient; ApGencoDal.DAL;

/// <summary> /// Summary description for clsLogin /// </summary> public class clsLogin:ApGenco { public clsLogin() { // // TODO: Add constructor logic here // } public static string LoginName { get; set; } public static string Password { get; set; } public static string Role { get; set; } DataSet ds = null; public string GetUserLogin(out int Id) { try { SqlParameter[] p = new SqlParameter[4]; p[0] = new SqlParameter("@LoginName", LoginName); p[1] = new SqlParameter("@Password", Password); p[2] = new SqlParameter("@Role", SqlDbType.VarChar, 50); p[2].Direction = ParameterDirection.Output; p[3] = new SqlParameter("@EmpId", SqlDbType.Int); p[3].Direction = ParameterDirection.Output; SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString , CommandType.StoredProcedure, "spLoginChecking", p); Role = Convert.ToString(p[2].Value); if (Role != "NoUser") Id = Convert.ToInt32(p[3].Value); else Id = 0; return Role; } catch (Exception ex) { throw new ArgumentException(ex.Message); } } }

using using using using using using

System; System.Data; System.Configuration; System.Web; System.Web.Security; System.Web.UI;

using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using ApGencoDal.DAL; /// <summary> /// Summary description for clsMails /// </summary> public class clsMails:ApGenco { public clsMails() { // // TODO: Add constructor logic here // } public void ComposeMail() { try { SqlParameter[] p = new SqlParameter[8]; p[0] = new SqlParameter("@MailFrom", this.MailFrom); p[0].SqlDbType = SqlDbType.VarChar; p[1] = new SqlParameter("@MailTo", this.MailTo); p[1].SqlDbType = SqlDbType.VarChar; p[2] = new SqlParameter("@Subject", this.Subject); p[2].SqlDbType = SqlDbType.VarChar; p[3] = new SqlParameter("@Message", this.Message); p[3].SqlDbType = SqlDbType.VarChar; p[4] = new SqlParameter("@Attachment", this.Attachment); p[4].SqlDbType = SqlDbType.VarChar; p[5] = new SqlParameter("@FileSize", this.FileSize); p[5].SqlDbType = SqlDbType.VarChar; p[6] = new SqlParameter("@DateofSend", this.DateOfSend); p[6].SqlDbType = SqlDbType.DateTime; p[7] = new SqlParameter("@UserName", this.UserName); p[7].SqlDbType = SqlDbType.VarChar; SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.StoredProcedure, "spComposeMail", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public DataSet GetMailsForInbox(string _UserName) {

try { SqlParameter[] p = new SqlParameter[1]; p[0] = new SqlParameter("@UserName", _UserName); p[0].SqlDbType = SqlDbType.VarChar; return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "spGetMailsForInbox", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public DataSet GetMailsForOutbox(string _UserName) { try { SqlParameter[] p = new SqlParameter[1]; p[0] = new SqlParameter("@UserName", _UserName); p[0].SqlDbType = SqlDbType.VarChar; return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "spGetMailsForOutbox", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public DataSet GetMailInfoByMailNo(int _MailNo, string _Id) { try { SqlParameter[] p = new SqlParameter[2]; p[0] = new SqlParameter("@MailNo", _MailNo); p[0].SqlDbType = SqlDbType.Int; p[1] = new SqlParameter("@Id", _Id); p[1].SqlDbType = SqlDbType.VarChar; return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "GetMailInfoByMailNo", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public void DeleteMailFromInBox(string MailId) { try { string strSql = string.Empty;

strSql += "update EMail set InStatus=0,TrashStatus=1"; strSql += " where MailNo in('" + MailId.Replace(",", "','") + "')"; SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString , CommandType.Text, strSql); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public void DeleteMailFromOutBox(string MailId) { try { string strSql = string.Empty; strSql += "update EMail set outStatus=0,TrashStatus=1"; strSql += " where MailNo in('" + MailId.Replace(",", "','") + "')"; SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.Text, strSql); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public void DeleteMailFromTrash(string MailId) { try { string strSql = string.Empty; strSql += "update EMail set TrashStatus=0"; strSql += " where MailNo in('" + MailId.Replace(",", "','") + "')"; SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.Text, strSql); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public DataSet GetMailsForTrash(string _UserName) { try { SqlParameter[] p = new SqlParameter[1]; p[0] = new SqlParameter("@UserName", _UserName); p[0].SqlDbType = SqlDbType.VarChar; return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.StoredProcedure, "spGetMailsForTrash", p); } catch (Exception ex)

{ throw new ArgumentException(ex.Message); } } public int GetNewMailCount(string User_Name) { try { SqlParameter[] p = new SqlParameter[2]; p[0] = new SqlParameter("@UserName", User_Name); p[0].SqlDbType = SqlDbType.VarChar; p[1] = new SqlParameter("@Count",SqlDbType.Int); p[1].Direction = ParameterDirection.Output; SqlHelper.ExecuteScalar(ApGenco.ConnectionString, CommandType.StoredProcedure, "spGetNewMailCount", p); int i= Convert.ToInt16(p[1].Value); return i; } catch (Exception ex) { throw new ArgumentException(ex.Message); } } }

using using using using using using using using using using using

System; System.Data; System.Configuration; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls; System.Data.SqlClient; ApGencoDal.DAL;

/// <summary> /// Summary description for clsUsers /// </summary> public class clsUsers:ApGenco { public clsUsers() { // // TODO: Add constructor logic here // } public int InsertUserDetails() { SqlParameter[] p = new SqlParameter[8];

p[0] = new SqlParameter("@UserName", UserName); p[0].SqlDbType = SqlDbType.VarChar; p[1] = new SqlParameter("@Password", Password); p[1].SqlDbType = SqlDbType.VarChar; p[2] = new SqlParameter("@UnitName", UnitName); p[2].SqlDbType = SqlDbType.Int; p[3] = new SqlParameter("@EmailId", EmailId); p[3].SqlDbType = SqlDbType.VarChar; p[4] = new SqlParameter("@Address", Address); p[4].SqlDbType = SqlDbType.VarChar; p[5] = new SqlParameter("@City", City); p[5].SqlDbType = SqlDbType.VarChar; p[6] = new SqlParameter("@Phone", Phone); p[6].SqlDbType = SqlDbType.VarChar; p[7] = new SqlParameter("@Fax", Fax); p[7].SqlDbType = SqlDbType.VarChar; return int.Parse (SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "spInsertUserDetails", p).ToString ()); } public DataSet GetUsersData() { return SqlHelper.ExecuteDataset(ApGenco.ConnectionString, CommandType.Text, "select * from UserDetails"); } public DataSet CheckUserAvaliability() { try { SqlParameter p = new SqlParameter("@UserName", UserName); p.SqlDbType = SqlDbType.VarChar; return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, "spCheckUserAvaliability", p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public int InsertUserDetails(string strFN, string strLN, int intDesgId, int intUnit, DateTime dtDOJ, DateTime dtDOB, string strQuali, string strAddress, string strContactNo, string strUserName, string strPwd) { try {

SqlParameter[] p = new SqlParameter[12]; p[0] = new SqlParameter("@FName", strFN); p[0].SqlDbType = SqlDbType.VarChar; p[1] = new SqlParameter("@LName", strLN); p[1].SqlDbType = SqlDbType.VarChar; p[2] = new SqlParameter("@DesgId", intDesgId); p[2].SqlDbType = SqlDbType.Int; p[3] = new SqlParameter("@UnitId", intUnit); p[3].SqlDbType = SqlDbType.VarChar; p[4] = new SqlParameter("@DOJ", dtDOJ); p[4].SqlDbType = SqlDbType.DateTime; p[5] = new SqlParameter("@DOB", dtDOB ); p[5].SqlDbType = SqlDbType.DateTime; p[6] = new SqlParameter("@Quali", strQuali); p[6].SqlDbType = SqlDbType.VarChar; p[7] = new SqlParameter("@Address", strAddress); p[7].SqlDbType = SqlDbType.VarChar; p[8] = new SqlParameter("@ContactNo", strContactNo); p[8].SqlDbType = SqlDbType.VarChar; p[9] = new SqlParameter("@UserName", strUserName); p[9].SqlDbType = SqlDbType.VarChar; p[10] = new SqlParameter("@Password", strPwd); p[10].SqlDbType = SqlDbType.VarChar; p[11] = new SqlParameter("@EmpId", SqlDbType.Int); p[11].Direction = ParameterDirection.Output; SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, "spInsertUserDetails", p); return Convert.ToInt32(p[11].Value); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static DataSet GetEmployeeDataByEmpId(int Id) { try { string strCmd = "Select * from tbl_Emp_Master where EmpId=" + Id;

return SqlHelper.ExecuteDataset(ConnectionString, CommandType.Text, strCmd); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static int UpdateEmpDataByAdmin(int EmpId, int UnitId, int DesgId) { try { string strCmd = "update tbl_Emp_Master set unitId=" + UnitId + ",DesignationId=" + DesgId + " where EmpId=" + EmpId; return SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, strCmd); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } public static DataSet GetEmpBySearch(string p1) { try { SqlParameter[] p = new SqlParameter[1]; p[0] = new SqlParameter("@Keyword", p1); p[0].SqlDbType = SqlDbType.VarChar; return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, "getEmployeeData",p); } catch (Exception ex) { throw new ArgumentException(ex.Message); } }

public static int DeleteEmployee(int empid) { try { string strCmd = "update tbl_LoginMaster set Status=0 where EmpId=" + empid; return SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, strCmd); } catch (Exception ex) { throw new ArgumentException(ex.Message); }

} }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class MainEmp_Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class MainEmp_frmChangePassword : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using System; using System.Collections; using System.Configuration;

using using using using using using using using using

System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Student_FrmStudentComposeMails : System.Web.UI.Page { Cls_EmailMaster objEmailmaster = new Cls_EmailMaster(); protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { } } catch (Exception ex) { lblMsg.Text = ex.Message; } }

protected void btnSubmit_Click(object sender, EventArgs e) { try { string str = ""; System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); byte[] data = encoding.GetBytes(str); objEmailmaster.EmailSenderId = Convert.ToInt32(Session["EmpId"]); objEmailmaster.EMailBodyMsg = txtbody.Text; objEmailmaster.EmailSubjectText = txtsubject.Text; objEmailmaster.EmailReciptedId = Convert.ToInt32(ddlto.SelectedValue); if (Session["FileName"] != null && Session["FileContent"] != null) { objEmailmaster.EmailAttachFileName = Convert.ToString(Session["FileName"]); objEmailmaster.EmailAttachFileContent = (byte[])Session["FileContent"]; } else { objEmailmaster.EmailAttachFileName = "No FIle"; objEmailmaster.EmailAttachFileContent = data ; }

int i = objEmailmaster.InsertEmailMaster(); if (i > 0) { ClearData(); lblMsg.Text = "Your message has been sent."; } else { lblMsg.Text = "Message Failed.."; } } catch (Exception ex) { lblMsg.Text = ex.Message; } } public void ClearData() { Session["FileName"] = null; Session["FileContent"] = null; txtsubject.Text = ""; txtbody.Text = ""; if (ddlto.SelectedIndex != 0) ddlto.SelectedIndex = 0; lblMsg.Text = ""; } protected void ddlto_DataBound(object sender, EventArgs e) { ddlto.Items.Insert(0, "--Select Employee MailId--"); } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class frmEmailShowDetails : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try

{ DataSet ds = Cls_EmailMaster.ShowEmailDetailsidwiseOutbox(Convert.ToInt32(Request["id"])); if (ds.Tables[0].Rows.Count != 0) { GridInboxdetails.DataSource = ds.Tables[0]; GridInboxdetails.DataBind(); } } catch (Exception ex) { lblMsg.Text = ex.Message; } } protected void GridInboxdetails_RowCommand(object sender, GridViewCommandEventArgs e) { try { DataSet ds = Cls_EmailMaster.ShowEmailDetailsidwiseOutbox(Convert.ToInt32(e.CommandArgumen t)); if (ds.Tables[0].Rows.Count != 0) { byte[] FileContent = (byte[])ds.Tables[0].Rows[0][6]; string FileName = (string)ds.Tables[0].Rows[0][5]; string[] fileSplit = FileName.Split('.'); int Loc = fileSplit.Length; string FileExtention = "." + fileSplit[Loc - 1].ToUpper(); int i = 0; if (FileExtention == ".DOC" || FileExtention == ".DOCX") { Response.ContentType = "application/vnd.ms-word"; Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } else if (FileExtention == ".XL" || FileExtention == ".XLS" || FileExtention == ".XLSX") { Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } else if (FileExtention == ".PDF") { Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } else if (FileExtention == ".TXT") { Response.ContentType = "application/octet-stream";

Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } if (i == 1) { Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(FileContent); Response.End(); } else lblMsg.Text = "Problom in downloading the file.."; } } catch (Exception ex) { lblMsg.Text = ex.Message; } } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class FrmEmailsShowDetailsInbox : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { DataSet ds = Cls_EmailMaster.ShowEmailDetailsidwiseInbox(Convert.ToInt32(Request["id"])); if (ds.Tables[0].Rows.Count != 0) { GridInboxdetails.DataSource = ds.Tables[0]; GridInboxdetails.DataBind(); } } catch (Exception ex) {

lblMsg.Text = ex.Message; } } protected void GridInboxdetails_RowCommand(object sender, GridViewCommandEventArgs e) { try { DataSet ds = Cls_EmailMaster.ShowEmailDetailsidwiseInbox(Convert.ToInt32(e.CommandArgument )); if (ds.Tables[0].Rows.Count != 0) { byte[] FileContent = (byte[])ds.Tables[0].Rows[0][6]; string FileName = (string)ds.Tables[0].Rows[0][5]; string[] fileSplit = FileName.Split('.'); int Loc = fileSplit.Length; string FileExtention = "." + fileSplit[Loc - 1].ToUpper(); int i = 0; if (FileExtention == ".DOC" || FileExtention == ".DOCX") { Response.ContentType = "application/vnd.ms-word"; Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } else if (FileExtention == ".XL" || FileExtention == ".XLS" || FileExtention == ".XLSX") { Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } else if (FileExtention == ".PDF") { Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } else if (FileExtention == ".TXT") { Response.ContentType = "application/octet-stream"; Response.AddHeader("content-disposition", "inline;filename=" + FileName); i = 1; } if (i == 1) { Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(FileContent);

Response.End(); } else lblMsg.Text = "Problom in downloading the file.."; } } catch (Exception ex) { lblMsg.Text = ex.Message; } } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Student_FrmStudentMailInBox : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { Getdata(); } } catch (Exception ex) { lblMsg.Text = ex.Message; } } protected void GridInboxdetails_RowCommand(object sender, GridViewCommandEventArgs e) { try { int id = Convert.ToInt32(e.CommandArgument); Response.Redirect("~/MainEmp/FrmEmailsShowDetailsInbox.aspx?id=" + id); } catch (Exception ex)

{ lblMsg.Text = ex.Message; } } protected void GridInboxdetails_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Label l1 = (Label)e.Row.FindControl("lblReadstatus"); LinkButton link1 = (LinkButton)e.Row.FindControl("linkSendername"); LinkButton link2 = (LinkButton)e.Row.FindControl("linksubject"); LinkButton link3 = (LinkButton)e.Row.FindControl("linkDate"); if (l1.Text == "True") { link1.Font.Bold = false; link2.Font.Bold = false; link3.Font.Bold = false; } } } public void chkSelectAll_CheckedChanged(object sender, EventArgs e) { CheckBox chk; foreach (GridViewRow rowItem in GridInboxdetails.Rows) { chk = (CheckBox)(rowItem.Cells[0].FindControl("chk1")); chk.Checked = ((CheckBox)sender).Checked; } } CheckBox chk; protected void btnDelete_Click(object sender, EventArgs e) { try { foreach (GridViewRow item in GridInboxdetails.Rows) { chk = (CheckBox)item.FindControl("chk1"); if (chk.Checked) { Label id = (Label)item.FindControl("lblid"); Cls_EmailMaster.UpdateEmailDeleteStatusInbox(Convert.ToInt32(id.Text)); Getdata(); lblMsg.Text = ""; lblMsg.Visible = false; Getdata(); } else { lblMsg.Text = "Please Atleast One record is delete.."; lblMsg.Visible = true; } }

} catch (Exception ex) { lblMsg.Text = ex.Message; } } public void Getdata() { try { GridInboxdetails.DataSource = Cls_EmailMaster.ShowInboxdetails(Convert.ToInt32(Session["EmpId"])); GridInboxdetails.DataBind(); lblMsg.Text = ""; } catch (Exception ex) { lblMsg.Text = ex.Message; } } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

public partial class Student_FrmStudentMailOutBox : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { Getdata(); } } catch (Exception ex) {

lblMsg.Text = ex.Message; } } protected void GridInboxdetails_RowCommand(object sender, GridViewCommandEventArgs e) { try { int id = Convert.ToInt32(e.CommandArgument); Response.Redirect("~/MainEmp/frmEmailShowDetailsOutbox.aspx?id=" + id); } catch (Exception ex) { lblMsg.Text = ex.Message; } } protected void GridInboxdetails_RowDataBound(object sender, GridViewRowEventArgs e) { //if (e.Row.RowType == DataControlRowType.DataRow) //{ // Label l1 = (Label)e.Row.FindControl("lblReadstatus"); // LinkButton link1 = (LinkButton)e.Row.FindControl("linkSendername"); // LinkButton link2 = (LinkButton)e.Row.FindControl("linksubject"); // LinkButton link3 = (LinkButton)e.Row.FindControl("linkDate"); // if (l1.Text == "True") // { // link1.Font.Bold = false; // link2.Font.Bold = false; // link3.Font.Bold = false; // } //} } CheckBox chk; protected void btnDelete_Click(object sender, EventArgs e) { try { foreach (GridViewRow item in GridInboxdetails.Rows) { chk = (CheckBox)item.FindControl("chk1"); if (chk.Checked) { Label id = (Label)item.FindControl("lblid"); Cls_EmailMaster.UpdateEmailDeleteStatusOutbox(Convert.ToInt32(id.Text)); Getdata(); lblMsg.Text = ""; lblMsg.Visible = false; Getdata(); } else {

lblMsg.Text = "Please Atleast One record is delete.."; lblMsg.Visible = true; } } } catch (Exception ex) { lblMsg.Text = ex.Message; } } public void Getdata() { try { GridInboxdetails.DataSource = Cls_EmailMaster.ShowOutboxdetails(Convert.ToInt32(Session["EmpId"])); GridInboxdetails.DataBind(); lblMsg.Text = ""; } catch (Exception ex) { lblMsg.Text = ex.Message; } } public void chkSelectAll_CheckedChanged(object sender, EventArgs e) { CheckBox chk; foreach (GridViewRow rowItem in GridInboxdetails.Rows) { chk = (CheckBox)(rowItem.Cells[0].FindControl("chk1")); chk.Checked = ((CheckBox)sender).Checked; } } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

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

{ protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class MainEmp_MainEmpMasterPage : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Xml.Linq;

using System.IO; using System.Data.Common; public partial class BrowseImage : System.Web.UI.UserControl { #region for privte fields string strImageType = string.Empty; byte[] FileData = null; #endregion

#region for page load protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { } lblMessage.Text = ""; } #endregion #region for public utility class public class UIUtilities { #region ReadFile to Convert Binary /// <summary> /// Get the Uploaded file and convert to binary for storing in Db /// </summary> /// <param name="PostedFileName">Uploaded file</param> /// <returns>Byte[] object</returns> public static byte[] ReadFile(string PostedFileName, string[] filetype) { bool isAllowedFileType = false; try { FileInfo file = new FileInfo(PostedFileName); foreach (string strExtensionType in filetype) { if (strExtensionType.ToUpper() == file.Extension.ToUpper()) { isAllowedFileType = true; break; } } if (isAllowedFileType) { //Create a new filestream object based on the file chosen in the FileUpload control FileStream fs = new FileStream(PostedFileName, FileMode.Open, FileAccess.Read); //Create a binary reader object to read the binary contents of the file to upload BinaryReader br = new BinaryReader(fs); //dump the bytes read into a new byte variable named image byte[] filecontent = br.ReadBytes((int)fs.Length);

//close the binary reader br.Close(); //close the filestream fs.Close(); return filecontent; } return null; } catch (Exception ex) { throw new ArgumentException("File Not Supporting to upload" + ex); } } #endregion #region GetTempFolderName /// <summary> /// returns the Temp Folder Name to store Images & resumes /// </summary> /// <returns>string Folder Name</returns> public static string GetTempFolderName() { string strTempFolderName = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache) + @"\"; if (Directory.Exists(strTempFolderName)) { return strTempFolderName; } else { Directory.CreateDirectory(strTempFolderName); return strTempFolderName; } } #endregion #region Code For Converting Varformat to Image format public static string LoadImage(byte[] photoByte, string FileName) { string strFileName = null; if (photoByte != null && photoByte.Length > 1) { System.Drawing.Image newImage; //get the temporary internet folder path of the system to store the image file strFileName = UIUtilities.GetTempFolderName()+FileName; //PhotoExtension; //write the binary data to memory stream

using (MemoryStream stream = new MemoryStream(photoByte)) { newImage = System.Drawing.Image.FromStream(stream); //save the image file to temporary folder newImage.Save(strFileName); } } return strFileName; } #endregion

} #endregion #region for btn Show event protected void btnShowImg_Click(object sender, EventArgs e) { Session["FileContent"] = null; Session["FileName"] = null; HttpPostedFile postFile = this.Upload1.PostedFile; string strFileName = this.Upload1.FileName; try { if (this.Upload1.PostedFile != null) { //Check the selection of file if (string.IsNullOrEmpty(postFile.FileName)) lblMessage.Text = "Please select a file to Attach"; else { //Get binary value of the image file FileData = UIUtilities.ReadFile(postFile.FileName, new string[] { ".doc", ".pdf", ".xl", ".xml", ".txt", ".ppt" }); if (FileData == null) { lblMessage.Text = "Allowed File Formats doc, pdf, xl, xml, txt, ppt"; } else { if (Session["FileName"] == null) Session.Add("FileName", strFileName); else Session["FileName"] = strFileName; if (Session["FileContent"] == null) Session.Add("FileContent", FileData); else Session["FileContent"] = FileData; lblMessage.Text = "File Attached"; } } } } catch (Exception ex)

{ lblMessage.Text = ex.Message; } } #endregion }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class User_Control_MainUserControl : System.Web.UI.UserControl { //UserInboxBL inbox = new UserInboxBL(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindLabel(); } } private void BindLabel() { //int ShowCount = 0; //inbox.To = Session["UserName"].ToString()+"@spicemail.com"; //lblCount.Text ="("+inbox.SetNewMailCount(ShowCount).ToString()+")"+"New Mail"; } }

using using using using using using using using using using

System; System.Collections; System.Configuration; System.Data; System.Linq; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.HtmlControls; System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using ApGencoDal.DAL; public partial class UserControls_UcChangePassword : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { try { lblMsg.Text = ""; string strCmdText1 = "select * from tbl_LoginMaster where Password='" + txtPassword.Text + "' and UserName='" + txtUsername.Text + "'"; DataSet ds = SqlHelper.ExecuteDataset(ApGenco.ConnectionString , CommandType.Text, strCmdText1); if (ds.Tables[0].Rows.Count != 0) { string strComText2 = "update tbl_LoginMaster set Password='" + txtNewPassword.Text + "' where UserName='" + txtUsername.Text + "'"; int i = SqlHelper.ExecuteNonQuery(ApGenco.ConnectionString, CommandType.Text, strComText2); if (i == 1) { lblMsg.Text = "Your password changed successfully.."; ClearFields(); } else lblMsg.Text = "Error Try again."; } else lblMsg.Text = "Login Name and Password not match.. Try again.."; } catch (Exception ex) { lblMsg.Text = "Error: Get asp.net Teamsupport"; } } void ClearFields() { txtUsername.Text = ""; txtNewPassword.Text = ""; txtPassword.Text = ""; } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class frmAboutUs : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class frmContactUs : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class Homepage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

using using using using using using using using using using

System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class frmSignOut : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Session.Abandon(); FormsAuthentication.SignOut(); } }

using using using using

System; System.Data; System.Configuration; System.Collections;

using using using using using using

System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { lblMsg.Text = ""; txtusername.Focus(); string url = Request.Url.ToString(); string[] split = url.Split('/'); for (int i = 0; i < split.Length; i++) { if (split[i] == "Admin") lblMsg1.Text = "Admin Login"; if (split[i] == "MainEmp") lblMsg1.Text = "Employee Login"; } if (Session["EmpId"] != null) { FormsAuthentication.SignOut(); } } clsLogin objLogin = new clsLogin(); protected void imglogin_Click(object sender, ImageClickEventArgs e) { string str1 = null; string[] LoginName = null; try { if (txtusername.Text.Contains("@")) { string str = txtusername.Text; LoginName = str.Split('@'); clsLogin.LoginName = LoginName[0].ToString(); str1 = LoginName[0].ToString(); } else { clsLogin.LoginName = txtusername.Text.Trim(); str1 = txtusername.Text.Trim(); } clsLogin.Password = txtpassword.Text.Trim(); int Id; string Role = objLogin.GetUserLogin(out Id); if (Role == "NoUser") lblMsg.Text = "User Name and password mismatch. Try again."; else { if (Role.ToUpper() == "ADMIN")

{ Session["UserName"] = str1; Session["EmpId"] = Id; Session["UserType"] = "Admin"; FormsAuthentication.RedirectFromLoginPage("Admin", false); } else if (Role.ToUpper() == "EMP") { Session["UserName"] = str1; Session["EmpId"] = Id; // clsLogin.ActiveStudentOnlineStatus(Id); Session["UserType"] = "Employee"; FormsAuthentication.RedirectFromLoginPage("MainEmp", false); } else lblMsg.Text = "Login Failed for this User"; } } catch (Exception ex) { lblMsg.Text = ex.Message; } } protected void imgcancel_Click(object sender, ImageClickEventArgs e) { txtusername.Text = ""; txtpassword.Text = ""; txtusername.Focus(); } } using using using using using using using using using using System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class MasterPage : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { } }

CHAPTER-8

CONCLUSION

It has been a great pleasure for me to work on this exciting and challenging project. This project proved good for me as it provided practical knowledge of not only programming in ASP.NET and VB.NET web based application and no some extent Windows Application and SQL Server, but also about all handling procedure related with APGENCO Mailing

System. It also provides knowledge about the latest technology used in developing web enabled application and client server technology that will be great demand in future. This will provide better opportunities and guidance in future in developing projects independently. BENEFITS: The project is identified by the merits of the system offered to the user. The merits of this project are as follows: y y Its a web-enabled project. This project offers user to enter the data through simple and interactive forms. This is very helpful for the client to enter the desired information through so much simplicity. y The user is mainly more concerned about the validity of the data, whatever he is entering. There are checks on every stages of any new creation, data entry or updation so that the user cannot enter the invalid data, which can create problems at later date. y Sometimes the user finds in the later stages of using project that he needs to update some of the information that he entered earlier. There are options for him by which he can update the records. Moreover there is restriction for his that he cannot change the primary data field. This keeps the validity of the data to longer extent.

User is provided the option of monitoring the records he entered earlier. He can see the desired records with the variety of options provided by him.

From every part of the project the user is provided with the links through framing so that he can go from one option of the project to other as per the requirement. This is bound to be simple and very friendly as per the user is concerned. That is, we can sat that the project is user friendly which is one of the primary concerns of any good project.

Data storage and retrieval will become faster and easier to maintain because data is stored in a systematic manner and in a single database.

Decision making process would be greatly enhanced because of faster processing of information since data collection from information available on computer takes much less time then manual system.

Allocating of sample results becomes much faster because at a time the user can see the records of last years.

Easier and faster data transfer through latest technology associated with the computer and communication.

Through these features it will increase the efficiency, accuracy and transparency,

LIMITATIONS: y The size of the database increases day-by-day, increasing the load on the database back up and data maintenance activity. y Training for simple computer operations is necessary for the working on the system. users

FUTURE IMPROVEMENT
y This System being web-based and an undertaking of Cyber Security Division, needs to be thoroughly tested to find out any security gaps.

A console for the data centre may be made available to allow the personnel to monitor on the sites which were cleared for hosting during a particular period.

Moreover, it is just a beginning; further the system may be utilized in various other types of auditing operation viz. Network auditing or similar

process/workflow based applications...

BIBLIOGRAPHY
y FOR .NET INSTALLATION www.support.mircosoft.com y FOR DEPLOYMENT AND PACKING ON SERVER www.developer.com www.15seconds.com y FOR SQL www.msdn.microsoft.com y FOR ASP.NET www.msdn.microsoft.com/net/quickstart/aspplus/default.com www.asp.net www.fmexpense.com/quickstart/aspplus/default.com www.asptoday.com www.aspfree.com www.4guysfromrolla.com/index.aspx

You might also like