Բովանդակություն

Ներածություն

Սերվիսային երկար տևող հարցումներ կատարելու և կատարման ընթացքին հետևելու համար նկարագրվում է Տվյալների մշակման հարցում (DPR - Data Processing Request):

Տվյալների մշակման հարցման (DPR-ի) նկարագրության համար հարկավոր է նկարագրել սերվերում աշխատող տրամաբանությունը C# դասում (.cs ֆայլում)։
Հարկավոր է սահմանել մուտքային և ելքային պարամետրերի դասեր (կարելի է օգտագործել գոյություն ունեցողները)։

Տե՛ս նաև

DataProcessingRequest դաս

Տվյալների մշակման հարցման (DPR-ի) համար անհրաժեշտ է`

  • Սահմանել դաս, որը ժառանգում է DataProcessingRequest<R, P> դասը՝ որպես R փոխանցելով հարցման կատարման արդյունքում ստացվող տվյալները նկարագրող դասը, իսկ որպես P՝ պարամետրերը նկարագրող դասը:
  • Այդ դասին վրա դնել DPR ատրիբուտը, որը պարունակում է DPR-ի տեսակը, հայերեն, անգլերեն անվանումները և թույլատրված է ընդհատումը UI-ից թե ոչ (լռությամբ թույլատրվում է ընդհատումը UI-ից)։

Օրինակ

[DPR(DPRType = DPRType.Other, ArmenianCaption = "Փաստաթղթի դաշտերի խմբագրում", EnglishCaption = "Document's fields' edition", 
    IsCancellationSupported = FeatureAvailability.Disabled)]
public class EditDocumentsFields : DataProcessingRequest<EditFieldsResponse, EditFieldsRequest>
{
  //...
}

Հատկություններ

ArmenianCaption

public string ArmenianCaption { get; }

Վերադարձնում է տվյալների մշակման հարցման (DPR-ի) հայերեն անվանումը ANSI կոդավորմամբ:

EnglishCaption

public string EnglishCaption { get; }

Վերադարձնում է տվյալների մշակման հարցման (DPR-ի) անգլերեն անվանումը:

Name

public string Name { get; }

Վերադարձնում է տվյալների մշակման հարցման (DPR-ի) ներքին անունը:

Եթե DPR ատրիբուտում Name դաշտը լրացված է և դատարկ չէ, ապա վերադարձնում է այդ արժեքը, հակառակ դեպքում վերադարձնում է DPR-ը նկարագրող դասի անունը։

Progress

public DPRExecutionProgress Progress { get; }

Վերադարձնում է տվյալների մշակման հարցման (DPR-ի) կատարման պրոգրեսը:

Այս օբյեկտի միջոցով հնարավոր է կառավարել կատարման փուլերը, UI-ում ցույց տալ այդ փուլերը և UI-ում ցույց տալ հաղորդագրության պատուհան (MessageBox):

Տե՛ս օգտագործման օրինակը։

DPRType

public DPRType DPRType { get; }

Վերադարձնում է տվյալների մշակման հարցման (DPR-ի) տեսակը, որը լրացված է նկարագրվող դասի վրա DPR ատրիբուտի մեջ։

  • DPRType.Report - Հաշվետվությունների տվյալների մշակման հարցում
  • DPRType.OLAP - Օլապ տվյալների մշակման հարցում
  • DPRType.JobElement - Առաջադրանքների տվյալների մշակման հարցում
  • DPRType.Other - Այլ տվյալների մշակման հարցում

Մեթոդներ

AfterDeserializeParameter

protected virtual Task AfterDeserializeParameter(P parameter, JsonElement jsonElement)

Մեթոդը կանչվում է միջուկի կողմից DPR-ը հերթագրման դնելուց առաջ։ Այն հարկավոր է մշակել, եթե հարկավոր է փոխանցված պարամետրերի ստուգումներ կատարել, կամ մուտքային պարամետրերը ձևափոխել։ Մեթոդի կանչից առաջ parameter-ը արդեն իսկ ձևավորված է՝ ըստ ցանցով փոխանցված JSON-ի։

Պարամետրեր

  • parameter - Մուտքային պարամետրերի նկարագրված դասի օբյեկտ։
  • jsonElement - Փոխանցված JSON օբյեկտի մեջ։

Execute

public abstract Task<R> Execute(P p, CancellationToken stoppingToken)

Մեթոդը կանչվում է միջուկի կողմից, այստեղ հարկավոր է մշակել սերվերում աշխատող տրամաբանությունը։

Պարամետրեր

  • R - Կատարման արդյունքում վերադարձվող տվյալները նկարագրող դաս:
  • p - Մուտքային պարամետրերի նկարագրված դասի օբյեկտ։
  • stoppingToken - Դադարեցման տոկենը։

Տե՛ս օգտագործման օրինակը։