Примеры дипломов / ВКР_Ботов.pdf
Рис. П1.5 «Подтверждение оплаты»
Рис. П1.6 «Сбор адреса доставки в процессе оплаты»
62
Рис. П1.7 «Определение метода доставки»
Рис. П1.8 «Уведомительное сообщение»
63
Рис. П1.9 «Корзина покупателя»
64
ПРИЛОЖЕНИЕ 2. Прототип интерфейса оптимизированного под пользование браузером смартфона Apple iPhone
Рис П2.1 «Домашняя страница» и рис. П2.2 «Сбор платежной информации»
65
Рис. П2.3 «Метод оплаты» и рис. П2.4 «Платежный метод»
66
Рис. П2.5 «Сбор адреса доставки в процессе оплаты» и рис. П2.6 «Метод
доставки»
67
Рис П2.7 «Детальное описание продукта» и рис. П2.8 «Уведомительное
сообщение».
68
Рис. П2.9 «Подтверждение оплаты» и рис. П2.10 «Детали продукта»
69
Рис. П2.11 «Список продуктов» и рис. П2.12 «Корзина покупателя»
70
ПРИЛОЖЕНИЕ 3. Класс MobileFilter
public class MobileFilter : ActionFilterAttribute
{
// Вызывается, когда отрабатывает метод контроллера
public |
override void OnActionExecuted(ActionExecutedContext |
filterContext) |
|
{ |
|
// |
Проверка преференций пользователя |
if |
(filterContext.HttpContext.Session["IsFullVersion"] != null) |
return; |
|
// |
Проверить, что запрос осуществлен с iPhone Safari |
if |
(!IsMobileSafari(filterContext.RequestContext.HttpContext)) |
return; |
|
// |
Обрабатываются только Views |
if |
(filterContext.Result.GetType() != typeof(ViewResult)) return; |
// |
Получение имени представления |
var viewName = GetViewName(filterContext); |
|
var mobileViewName = viewName + ".iPhone"; |
|
// |
Проверка на существование оптимизированного View |
if |
(!ViewExists(mobileViewName, filterContext)) return; |
// |
Назначение нового View |
var result = (ViewResult)filterContext.Result; result.ViewName = mobileViewName;
}
// Получение имени View
private string GetViewName(ActionExecutedContext filterContext)
{
var viewName = string.Empty;
// Обрабатываются только Views
if (filterContext.Result.GetType() == typeof(ViewResult))
{
var result = (ViewResult)filterContext.Result;
viewName = result.ViewName;
// Имя View не было передано – использовать имя метода if (string.IsNullOrEmpty(viewName))
{
viewName = filterContext.ActionDescriptor.ActionName;
}
}
return viewName;
}
// Проверка Views на существование.
private bool ViewExists(string viewName, ActionExecutedContext filterContext)
{
// получение имени контроллера var controller =
filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
71
