Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Microsoft C# Professional Projects - Premier Press.pdf
Скачиваний:
177
Добавлен:
24.05.2014
Размер:
14.65 Mб
Скачать

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.

778 Project 6 CREATING A MOBILE APPLICATION

 

 

Y

 

L

 

F

 

M

 

A

 

FIGURE 33-7 The Users.xml file

 

 

T

 

 

However, if any of theEvalues, TextBox1 or TextBox2, do not match, an error mes-

sage is displayed to the user. This would require you to set the Visible property of the lblMessage Label control to true. Figure 33-8 shows the frmLogon form with an error message, Invalid User Name, displayed.

FIGURE 33-8 The frmLogon form with an e rror message displayed

Team-Fly®