Внёс примеры использования веб-службы

This commit is contained in:
2016-04-08 15:08:20 +10:00
parent 5cd7c46cd7
commit 8c8885bf96
39 changed files with 6455 additions and 1 deletions

View File

@ -0,0 +1,17 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestLersApi.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<script src="/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="/TestLersApi.js" type="text/javascript"></script>
</div>
</form>
</body>
</html>

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TestLersApi
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View File

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <автоматически создаваемое>
// Этот код создан программой.
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </автоматически создаваемое>
//------------------------------------------------------------------------------
namespace TestLersApi
{
public partial class Default {
/// <summary>
/// form1 элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}

View File

@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Управление общими сведениями о сборке осуществляется с помощью
// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
// общие сведения об этой сборке.
[assembly: AssemblyTitle("TestLersApi")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("TestLersApi")]
[assembly: AssemblyCopyright("Copyright © 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False в параметре ComVisible делает типы в этой сборке невидимыми
// для COM-компонентов. Если необходим доступ к типу в этой сборке из
// COM, следует установить атрибут ComVisible в TRUE для этого типа.
[assembly: ComVisible(false)]
// Указанный ниже идентификатор GUID предназначен для идентификации библиотеки типов, если этот проект будет видимым для COM-объектов
[assembly: Guid("245ef887-0d90-4ff8-a52c-5399e292cdfb")]
// Сведения о версии сборки состоят из указанных ниже четырех значений:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Редакция
//
// Можно задать все значения или принять номер построения и номер редакции по умолчанию,
// используя "*", как показано ниже:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{10B68319-F7E8-4460-9BF8-B7C0D6FFB9BB}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TestLersApi</RootNamespace>
<AssemblyName>TestLersApi</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<UseIISExpress>false</UseIISExpress>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
</ItemGroup>
<ItemGroup>
<Content Include="TestLersApi.js" />
<Content Include="Default.aspx" />
<Content Include="jquery-1.6.4.min.js" />
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
<Compile Include="Default.aspx.cs">
<DependentUpon>Default.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Default.aspx.designer.cs">
<DependentUpon>Default.aspx</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>False</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>58035</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>
</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,160 @@
/// <reference path="jquery-1.6.4.js" />
$(document).ready(function () {
// Разрешаем кроссдоменное взаимодействие (cross-domain, XCC - Cross-site scripting) по технологии CORS (Cross-origin resource sharing)
jQuery.support.cors = true;
// Отправляем запрос на вход в систему
SendLoginRequest('demo', 'demo');
});
function ReceivedLoginResponse(data) {
/// <summary>
/// Обработчик события успешного входа в систему
/// </summary>
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
// Если есть ошибка, выводим её, иначе отправляем запрос на получение списка точек учета
if (data.IsError)
alert(data.ErrorMessage);
else
SendGetMeasurePointListRequest();
}
function ReceivedMeasurePointListResponse(data) {
/// <summary>
/// Обработчик события получения списка точек учета
/// </summary>
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
// Если список точек учета не пустой отправляем запрос на получение потребления по первой точке учета из списка
if (data.MeasurePointList.length > 0)
SendGetMeasurePointConsumptionRequest(data.MeasurePointList[0].Id);
}
function ReceivedMeasurePointConsumptionResponse(data) {
/// <summary>
/// Обработчик события получение потребления по точке учета
/// </summary>
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
// Если есть данные потребления, выводим сообщение со значением T_in за первую метку времени
if (data.Data.length > 0)
{
var jsonDate = data.Data[0].DateTime
var dataDate = new Date(parseInt(jsonDate.substr(6)));
var T_in = data.Data[0].T_in;
alert(dataDate.toString() + ': ' + T_in.toString());
}
else
alert('По точке учета нет данных потребления.');
// Получаем список объектов учета с расширенной информацией
SendGetNodeListExtendedRequest();
}
function ReceivedNodeListExtendedResponse(data)
/// <summary>
/// Обработчик события получение списка объектов учета
/// </summary>
{
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
}
function SendLoginRequest(userName, password) {
/// <summary>
/// Отправляет запрос на вход в систему ЛЭРС УЧЕТ
/// </summary>
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/Login",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "{ 'userName':'" + userName + "','password':'" + password + "' }",
success: ReceivedLoginResponse,
error: function (jqXHR, textStatus, errorThrown) {
alert('Не удалось войти в систему.');
}
});
}
function SendGetMeasurePointListRequest() {
/// <summary>
/// Отправляет запрос на получение списка точек учета
/// </summary>
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/GetMeasurePointList",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "",
success: ReceivedMeasurePointListResponse,
error: function (jqXHR, textStatus, errorThrown) {
alert('Не удалось получить список точек учета.');
}
});
}
function SendGetNodeListExtendedRequest() {
/// <summary>
/// Отправляет запрос на получение списка объектов учета
/// </summary>
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/GetNodeListExtended",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "{ 'flags':" + 1024 + "}", // Запрашиваем помещения
success: ReceivedNodeListExtendedResponse,
error: function (jqXHR, textStatus, errorThrown) {
alert('Не удалось получить список объектов учета.');
}
});
}
function SendGetMeasurePointConsumptionRequest(measurePointId) {
/// <summary>
/// Отправляет запрос на получение потребления за текущий месяц
/// </summary>
var nowDate = new Date();
var currentStartDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1);
var currentEndDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate());
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/GetMeasurePointConsumption",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "{ 'measurePointId':" + measurePointId + ", 'startDate':'" + currentStartDate.toJSON() + "','endDate':'" + currentEndDate.toJSON() + "', 'dataType': 'Day' }",
success: ReceivedMeasurePointConsumptionResponse,
error: function (jqXHR, textStatus, errorThrown) {
alert('Не удалось получить данные потребления по точке учета.');
}
});
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Дополнительные сведения по настройке приложения ASP.NET см. по ссылке
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>

File diff suppressed because one or more lines are too long