Model
یک پوشه جدید با نام Models ایجاد کنید و یک کلاس با نام TasksModel.cs در آن قراردهید و کد های زیر را در آن جایگزین کنید.
using Microsoft.VisualBasic;
using System.Linq;
using System;
using System.Collections.Generic;
using System.ServiceModel;
using RIATasks.wsRIATasks;
namespace RIATasks
{
public class TasksModel
{
#region GetTask
public static void GetTask(int TaskID,
EventHandler<GetTaskCompletedEventArgs> eh)
{
// Set up web service call
WebServiceSoapClient WS =
new WebServiceSoapClient();
// Set the EndpointAddress
WS.Endpoint.Address =
new EndpointAddress(GetBaseAddress());
WS.GetTaskCompleted += eh;
WS.GetTaskAsync(TaskID);
}
#endregion
#region GetTasks
public static void GetTasks
(EventHandler<GetTasksCompletedEventArgs> eh)
{
// Set up web service call
WebServiceSoapClient WS =
new WebServiceSoapClient();
// Set the EndpointAddress
WS.Endpoint.Address =
new EndpointAddress(GetBaseAddress());
WS.GetTasksCompleted += eh;
WS.GetTasksAsync();
}
#endregion
#region DeleteTask
public static void DeleteTask(int TaskID,
EventHandler<DeleteTaskCompletedEventArgs> eh)
{
// Set up web service call
WebServiceSoapClient WS =
new WebServiceSoapClient();
// Set the EndpointAddress
WS.Endpoint.Address =
new EndpointAddress(GetBaseAddress());
WS.DeleteTaskCompleted += eh;
WS.DeleteTaskAsync(TaskID);
}
#endregion
#region UpdateTask
public static void UpdateTask(Task objTask,
EventHandler<UpdateTaskCompletedEventArgs> eh)
{
// Set up web service call
WebServiceSoapClient WS = new WebServiceSoapClient();
// Set the EndpointAddress
WS.Endpoint.Address =
new EndpointAddress(GetBaseAddress());
WS.UpdateTaskCompleted += eh;
WS.UpdateTaskAsync(objTask);
}
#endregion
#region InsertTask
public static void InsertTask(Task objTask,
EventHandler<InsertTaskCompletedEventArgs> eh)
{
// Set up web service call
WebServiceSoapClient WS = new WebServiceSoapClient();
// Set the EndpointAddress
WS.Endpoint.Address = new EndpointAddress(GetBaseAddress());
WS.InsertTaskCompleted += eh;
WS.InsertTaskAsync(objTask);
}
#endregion
// Utility
#region GetBaseAddress
private static Uri GetBaseAddress()
{
// Get the web address of the .xap that launched this application
string strBaseWebAddress =
App.Current.Host.Source.AbsoluteUri;
// Find the position of the ClientBin directory
int PositionOfClientBin =
App.Current.Host.Source.AbsoluteUri.ToLower().IndexOf(@"/clientbin");
// Strip off everything after the ClientBin directory
strBaseWebAddress =
Strings.Left(strBaseWebAddress, PositionOfClientBin);
// Create a URI
Uri UriWebService =
new Uri(String.Format(@"{0}/WebService.asmx",
strBaseWebAddress));
// Return the base address
return UriWebService;
}
#endregion
}
}
نکته: GetBaseAddress() متدی است که مشخص می کند که آیا کاربر .xap را راه اندازی کرده است ( Silverlight application در برگیرنده آن هست) و با استفاده از آن مشخص می شود که آیا WebService.asmx وجود دارد یا خیر؟ متدهای Web Service از این آدرس برای فراخوانی Web Service استفاده می کنند.
در حال حاضر ما متدها را در Model ایجاد کرده ایم. این متدها با متدهای موجود در Web Service که پیش از این ایجاده شده بودند در ارتباطند.
در قسمت ششم ساخت View Model را آموزش خواهیم داد.
عناوین یادداشتهای وبلاگ
بایگانی
دسته بندی موضوعی