Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C# ПІДРУЧНИКИ / c# / Premier Press - C# Professional Projects

.pdf
Скачиваний:
477
Добавлен:
12.02.2016
Размер:
14.7 Mб
Скачать

768 Project 6 CREATING A MOBILE APPLICATION

controls, two RequiredFieldValidator controls, and one Command control to the form. Next, change the following properties of the controls:

Label1

ID: Label1

 

 

 

Text: Please Log On

Y

Font:

 

 

 

Bold: True

 

 

 

 

 

 

L

Label2

 

 

 

M

 

ID: lblMessage

A

 

 

F

 

Visible: False

E

 

 

 

Font:

T

 

 

 

 

Bold: True

TextBox1

ID: TextBox1

TextBox2

ID: TextBox2

Password: True

RequiredFieldValidator1

ID: RequiredFieldValidator1

ControlToValidate: TextBox1

ErrorMessage: Please provide a valid logon name

Team-Fly®

IMPLEMENTING THE BUSINESS LOGIC

Chapter 33

769

 

 

 

 

RequiredFieldValidator2

ID: RequiredFieldValidator2

ControlToValidate: TextBox2

ErrorMessage: Please provide a valid password

Command1

ID: cmdSubmit

Text: Submit

After you have added the controls and changed the previously mentioned properties, the form appears as shown in Figure 33-3.

FIGURE 33-3 The frmLogon form with the controls added

Creating the frmSelectOption Form

The second form required for the MobileCallStatus application is the frmSelectOption form. To create the frmSelectOption form, add a Label, a SelectionList, and a Command control to the form. After adding these controls, change the following properties of the control.

770 Project 6 CREATING A MOBILE APPLICATION

Label1

ID: Label2

Text: Please select an option:

Font:

Bold: True

SelectionList1

ID: lstOptions

Items: The items to be added in the SelectionList1 control are displayed

in Table 33-1.

Table 33-1 Items to be Added to the SelectionList Control

ItemText

Value

Selected

View Pending Calls

viewPending

Checked

Show Unattended Calls

showUnattended

Unchecked

 

 

 

In the General tab of the lstOptions Properties dialog box, change the following properties:

Select Type: Radio

Rows: 2

Command1

ID: cmdLoad

Text: Query

Figure 33-4 shows the frmSelectOption form with the controls added.

IMPLEMENTING THE BUSINESS LOGIC

Chapter 33

771

 

 

 

 

FIGURE 33-4 The frmSelectOption form with the controls added

Creating the frmPending Form

The frmPending form contains a Label, a SelectionList, and two Command controls. Drag these controls to the form and change the following properties of the controls:

Label1

ID: Label3

Text: Pending Calls

Font:

Bold: True

SelectionList1

ID: lstPending

Select Type: CheckBox

Rows: 4

772 Project 6 CREATING A MOBILE APPLICATION

Command1

ID: cmdUpdate

Text: Mark checked as complete

Command2

ID: cmdBack1

Text: Back

When you add controls to the frmPending form, the form appears as shown in Figure 33-5.

FIGURE 33-5 The frmPending form with the controls added

Creating the frmUnattended Form

To create the frmUnattended form, drag a Label, a SelectionList, and two Command controls to the form.Then, change the following properties of the controls:

Label1

ID: Label4

Text: Unattended Calls

IMPLEMENTING THE BUSINESS LOGIC

Chapter 33

773

 

 

 

 

Font:

Bold: True

SelectionList1

ID: lstUnattended

Select Type: CheckBox

Rows: 4

Command1

ID: cmdAcceptCall

Text: Accept checked call(s)

Command2

ID: cmdBack2

Text: Back

Figure 33-6 shows the frmUnattended form with the previously mentioned controls added to the form.

FIGURE 33-6 The frmUnattended form with the controls added

774 Project 6 CREATING A MOBILE APPLICATION

Until now, you have created the interface of the forms required for the MobileCallStatus application. However, the controls that are added to the forms are not functional. To make the controls functional, you need to add code to these controls.

Adding the Business Logic

to the MobileCallStatus Application

You should first understand the working of the MobileCallStatus application. This will help you to write the code for the mobile Web controls in the mobile forms.

1.When a user accesses the MobileCallStatus application, the user needs to enter a logon name and password in the frmLogon form.

2.The user then clicks on the Submit button.

3.The application then validates the logon name and password of the user based on the data in the Users.xml file.

4.If the data entered by the user is incorrect, a message is displayed to the user.

5.The user then needs to reenter the logon name and password.

6.The logon name and password are again validated, and the process is repeated until the user enters correct data.

7.When the data entered by the user is validated and found to be correct, the frmSelectOption form is displayed. In the frmSelectOption form, the user can choose to view the incomplete calls or the new calls added to the Calls.xml file.

8.To view the pending calls, the user selects the View Pending Calls option and clicks on the Query button. The frmPending form is displayed.

9.However, to view the new calls added to the XML file, the user needs to select the Show Unattended Calls radio button. The user then clicks on the Query button.The frmUnattended form is displayed.

IMPLEMENTING THE BUSINESS LOGIC

Chapter 33

775

 

 

 

 

10.In the frmPending form, the user can view the pending calls and click on the Back button to return to the frmSelectOption form. In addition, the user may check the pending calls check boxes and click on the Mark checked as complete button when a call is completed. The status of the call will be changed to Complete in the Calls.xml file.

11.In the frmUnattended form, the user can view the new calls added to the list in the Calls.xml file and click on the Back button to return to the frmSelectOption form. However, if the user wishes to accept any new call, the user needs to check the pending calls check boxes and click on the Accept checked call(s) button. In this case, the status of the accepted calls is changed to Pending in the Calls.xml file.

To implement the previously listed functionality, you need to add code to the Command controls that are included in the MobileCallStatus application. You can start with the Submit button in the frmLogon form.

Adding Code to the Submit Button in the frmLogon Form

While writing the code for the Submit button, you first need to set the Visible property of the lblMessage Label control to false. This will make the lblMessage control invisible until an error message is generated. To display the error message, you would then need to change the Visible property of the control to true. However, to make the control invisible, add the following statement to the Click event of the cmdSubmit button.

lblMessage.Visible=false;

Next, you need to validate the logon name and password entered by the user. The data entered by the user is validated against the Users.xml document. To do this, add the following code to the Click event of the cmdSubmit button.

if (Page.IsValid)

{

bool found; found=false;

XmlTextReader reader= new XmlTextReader(“C:\\ Electronix\\Users.xml”); reader.MoveToContent();

while (reader.Read())

776 Project 6 CREATING A MOBILE APPLICATION

{

if (reader.HasAttributes)

{

reader.MoveToNextAttribute();

if (reader.Value==TextBox1.Text)

{

reader.MoveToNextAttribute();

if (reader.Value==TextBox2.Text)

{

found=true; reader.MoveToFirstAttribute(); ActiveForm=frmSelectOption;

}

else

{

lblMessage.Text=”Invalid Password”; lblMessage.Visible=true;

}

}

}

}

reader.Close();

if (found==false & lblMessage.Visible==false)

{

lblMessage.Text=”Invalid User Name”; lblMessage.Visible=true;

}

}

The preceding code uses an if loop to validate the data entered by the user. To do this, the IsValid property of the Page is used. The IsValid property returns a Boolean type value, true or false. If all the validations applied in the page are successful, the IsValid property returns true. Alternatively, if any of the validation

IMPLEMENTING THE BUSINESS LOGIC

Chapter 33

777

 

 

 

 

fails, the IsValid property returns false. The value returned by the IsValid property is stored in the Boolean type variable found. The variable found is initialized

to false.

Next, an object reader of the XmlTextReader class is created and initialized to read the Users.xml file. The path of the Users.xml file is specified in the initialization statement. You have learned about the XmlTextReader class in Chapter 17, “Interacting with a Microsoft Word Document and Event Viewer,” in the section “The

XmlReader Class.”

The code then uses the MoveToContent() method of the XmlReader class to check whether the current node in the XML document is a content node. If the current node is not a content node, the reader moves to the next content node. You need to check for the content node to read the values from the content node of the

Users.xml file.

Then the Read() method of the XmlTextReader class is used in a while loop to read the content of the Users.xml file. Inside the while loop, the HasAttributes property of the XmlReader class is used to check whether the current node has any attributes associated with it. The HasAttributes property returns a Boolean type value. If the current node has an associated attribute, the HasAttributes property returns a value, true.

Then an if loop is used to match the value entered by the user in TextBox1 to the value in the reader object. To do this, the Value property of the XmlTextReader class is used. If the value in TextBox1 is the same as the value in the reader object, the value of TextBox2 is matched to the value of the next attribute. The MoveToNextAttribute() method is used to move to the next attribute in the Users.xml document. If the values of TextBox1 and TextBox2 are matched to the values in the attributes of the XML document, the found variable is set to true. A value of the variable found, if set to true, indicates that the validations performed in the frmLogon form are successful. In addition, the reader object is set to the first attribute in the Users.xml file and the frmSelectOption form is displayed to the user. Figure 33-7 shows the Users.xml file.