مثال مكتوب على C # يحتوي على الأنماط التالية:
- تسجيل الدخول
- قائمة المنصات
- قائمة الأجهزة حسب النظام الأساسي
- جهاز ServerView (SV) حسب المعرف
- تحرير الجهاز
- الحصول على الشاشات
- الحصول على الترددات
- الحصول على مجموعات الإشعارات
- إنشاء جهاز SV جديد
- إضافة مهمة HTTP جديدة
- جدولة الإدراج
- إنشاء جدول زمني جديد
مثال على C #
باستخدام النظام ؛
باستخدام System.Linq ؛
باستخدام System.Collections.Generic;
باستخدام System.IO ؛
باستخدام System.Net ؛
باستخدام System.Text؛
باستخدام System.Web.Script.Serialization;
مثال على مساحة الاسم
{
برنامج الفصل الدراسي
{
فئة OperatioResult
{
نجاح البول العام { الحصول على ؛ تعيين ؛ }
نتيجة السلسلة العامة { get; set; }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Format(“النجاح: {0}; النتيجة: {1}”, النجاح, النتيجة);
}
}
فئة ErrorResult
{
نجاح البول العام { الحصول على ؛ تعيين ؛ }
سلسلة عامة[] ErrorDescription { get; set; }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Join(environment.NewLine, ErrorDescription);
}
}
منصة الصف
{
Public int Id { get; set; }
اسم السلسلة العامة { get; set; }
bool العامة المتاحة { get; set; }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Format(“Id: {0}; الاسم: {1}; متاح: {2}”، معرف، اسم، متاح)؛
}
}
فئة مراقب
{
Public int Id { get; set; }
اسم السلسلة العامة { get; set; }
bool العامة المتاحة { get; set; }
bool العام IsDelete { get; set; }
bool العام IsPrivate { get; set; }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Format(“Id: {0}; الاسم: {1}; متوفر: {2}; محذوفة: {3}; هو خاص: {4}”,
المعرف، الاسم، متاح، محذوف، خاص)؛
}
}
الفصل الأسبوعيالفاصل الزمني
{
سلسلة عامة[] أيام { get; set; }
public int From_Min { get; set; }
public int To_Min { get; set; }
bool العامة المدرجة { get; set; }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Format(“الأيام: [{0}]; From_Min: {1} (الوقت: {4}); To_Min: {2} (الوقت: {5}); متضمن: {3}”,
String.Join(“, “, days), From_Min, To_Min, Include, TimeSpan.FromMinutes(From_Min), TimeSpan.FromMinutes(To_Min));
}
}
فئة التاريخTimeالفاصل الزمني
{
العامة طويلة من { الحصول على ؛ تعيين ؛ }
العامة طويلة إلى { الحصول على ؛ تعيين ؛ }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Format(“من: (الوقت: {0} {2}); إلى: (الوقت: {1} {3})”,
من, إلى, UnixBaseTime.AddMilliseconds(من), UnixBaseTime.AddMilliseconds(إلى));
}
}
الفئة المعينة إلىمعلومات
{
ملخص
للقراءة فقط
/ملخص
Public int[] Devices { get; set; }
ملخص
للقراءة فقط
/ملخص
Public int[] Notification_Groups { get; set; }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Format(“الأجهزة: [{0}]; Notification_Groups: [{1}]”,
String.Join(“, “, devices.Select(id => id.ToString()). ToArray())،
String.Join(“, “, Notification_Groups.Select(id => id.ToString()). ToArray()));
}
}
جدولة الفصول الدراسية
{
Public int Id { get; set; }
اسم السلسلة العامة { get; set; }
وصف السلسلة العامة { get; set; }
الفاصل الأسبوعي العام[] Weekly_Intervals { get; set; }
Public DateTimeInterval[] Date_Time_Intervals { get; set; }
العامة المعينة ToInfo Assigned_To { get; set; }
سلسلة التجاوز العامة ToString()
{
إرجاع String.Format(“Id: {0}; اسم: {1}; وصف: {2}; Weekly_Intervals: [{3}]; Date_Time_Intervals: [{4}]; تم تعيينهاToInfo: {5}”,
معرف ، اسم ، وصف ،
String.Join(“, “, Weekly_Intervals.Select(wi => wi. ToString()). ToArray())،
String.Join(“, “, Date_Time_Intervals.Select(dti => dti. ToString()). ToArray()), Assigned_To);
}
}
فئة SiteNotifyGroup
{
Public int Id { get; set; }
public int Time_Shift_Min { get; set; }
}
إشعارات الفصل الدراسي
{
E_Mail_Flag العامة { get; set; }
E_Mail_Address السلسلة العامة { get; set; }
public int E_Mail_TimeInterval_Min { get; set; }
WL_Device_Flag العامة { get; set; }
سلسلة عامة WL_Device_Email_Address { get; set; }
public int WL_Device_TimeInterval_Min { get; set; }
Phone_Flag العامة { get; set; }
سلسلة عامة Phone_Area_Code { get; set; }
سلسلة عامة Phone_Phone { get; set; }
public int Phone_TimeInterval_Min { get; set; }
SMS_Flag العامة { get; set; }
سلسلة عامة SMS_Phone { get; set; }
public int SMS_TimeInterval_Min { get; set; }
Script_Flag العامة { get; set; }
سلسلة عامة Script_Batch_File_Name { get; set; }
public int Script_TimeInterval_Min { get; set; }
public int SNMP_TimeInterval_Min { get; set; }
عامة SiteNotifyGroup[] Notification_Groups { get; set; }
}
فئة ServerViewDevice
{
Public int Id { get; set; }
public int Platform_Id { get; set; }
اسم السلسلة العامة { get; set; }
public int Number_Of_Tasks { get; set; }
سلسلة عامة Status_Description { get; set; }
العامة بول تأجيل { get; set; }
Send_Uptime_Alert العامة { get; set; }
public int Owner_Device_Id { get; set; }
العامة int التردد { الحصول على ؛ تعيين ؛ }
public int Filter_Id { get; set; }
public int Scheduler_Id { get; set; }
إشعارات عامة { get; set; }
Avoid_Simultaneous_Checks العامة { get; set; }
False_Positive_Check العامة { get; set; }
public int Alert_Silence_Min { get; set; }
public int[] Locations { get; set; }
}
فئة نوع المهمة
{
Public int Id { get; set; }
اسم السلسلة العامة { get; set; }
}
اسم الفئةValuePair
{
اسم السلسلة العامة { get; set; }
قيمة السلسلة العامة { get; set; }
}
فئة HTTPTask
{
public int Device_Id { get; set; }
Public int Id { get; set; }
public int Task_Type_Id { get; set; }
اسم السلسلة العامة { get; set; }
public int timeout { get; set; }
السلسلة العامة RequestType { get; set; }
عنوان URL للسلسلة العامة { get; set; }
السلسلة العامة Keyword1 { get; set; }
السلسلة العامة Keyword2 { get; set; }
السلسلة العامة Keyword3 { get; set; }
اسم مستخدم السلسلة العامة { get; set; }
السلسلة العامة UserPass { get; set; }
العامة بول FullPageDownload { get; set; }
Download_Html العامة { get; set; }
bool public Download_Frames { get; set; }
Download_StyleSheets العامة { get; set; }
Download_Scripts العامة { get; set; }
bool العامة Download_Images { get; set; }
Download_Objects العامة { get; set; }
Download_Applets العامة { get; set; }
Download_Additional العامة { get; set; }
Public NameValuePair[] GetParams { get; set; }
Public NameValuePair[] PostParams { get; set; }
Public NameValuePair[] HeaderParams { get; set; }
string PrepareScript { get; set; }
}
enum requestMethod
{
حصل
منصب
}
حاوية CookieContainer ثابتة خاصة ؛
العامة الثابتة للقراءة فقط DateTime UnixBaseTime = DateTime الجديد (1970 ، 1 ، 1 ، 0 ، 0 ، 0 ، 0 ، 0) ؛
إعداد وظيفة الطلب
طلب سلسلة ثابتة خاصة (إجراء سلسلة، طلب RequestMethodالنوع، بيانات السلسلة)
{
طلب طلب الويب = WebRequest.Create (“https://api.dotcom-monitor.com/config_api_v1/” + الإجراء) ؛
طلب. الطريقة = requestType.ToString();
((طلب httpWeb)). كوكي كونتينر = حاوية;
إذا (نوع الطلب == RequestMethod.POST)
{
سلسلة postData = البيانات ؛
إذا (postData.Length > 0)
{
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
طلب. ContentType = “تطبيق/json”;
طلب. ContentLength = byteArray.Length;
دفق البياناتتدفق = طلب. GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
}
اخر
{
طلب. طول المحتوى = 0;
}
}
حاول
{
باستخدام (استجابة var = طلب. GetResponse())
{
باستخدام (var stream = الاستجابة. GetResponseStream())
{
إذا (تيار!= فارغ)
{
باستخدام (قارئ var = StreamReader جديد (تيار))
{
عودة القارئ. ReadToEnd();
}
}
}
}
}
الصيد (استثناء على سبيل المثال)
{
باستخدام (var stream = ex. Response.GetResponseStream())
{
باستخدام (قارئ var = StreamReader جديد (تيار))
{
رمي استثناء جديد (القارئ. ReadToEnd());
}
}
}
إرجاع سلسلة.فارغ;
}
فراغ ثابت الرئيسي()
{
تجاهل أخطاء الشهادة
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
تهيئة حاوية ملفات تعريف الارتباط
حاوية = كوكي حاوية جديدة ();
تهيئة متسلسل جافا سكريبت
var serializer = جديد جافا سكريبت Serializer();
تسجيل الدخول
Console.WriteLine(“== تسجيل الدخول==”);
سلسلة النتيجةStr;
حاول
{
resultStr = طلب (“تسجيل الدخول” ، RequestMethod.POST ،
التسلسل. تسلسل(
جديد {
اسم المستخدم = “1”،
كلمة المرور = “1”
}
));
var result = serializer. Deserialize<OperatioResult>(resultStr);
Console.WriteLine(النتيجة. ToString());
}
الصيد (استثناء على سبيل المثال)
{
var err = serializer. إلغاء تسلسل<ErrorResult>(على سبيل المثال. الرسالة)؛
Console.WriteLine(err. ToString());
}
الحصول على منصات
Console.WriteLine(“==الحصول على الأنظمة الأساسية ==”);
منصات منصة> قابلة للعد<= فارغة؛
حاول
{
resultStr = طلب (“الأنظمة الأساسية” ، RequestMethod.GET ، String.Empty) ؛
المنصات = التسلسل. إلغاء تسلسل<النظام الأساسي[]>(resultStr);
}
الصيد (استثناء مثال)
{
var err = serializer. إلغاء تسلسل<ErrorResult>(على سبيل المثال. الرسالة)؛
Console.WriteLine(err. ToString());
}
foreach (منصة var في المنصات)
{
Console.WriteLine(النظام الأساسي);
}
الحصول على الأجهزة حسب النظام الأساسي
Console.WriteLine(“== الحصول على الأجهزة حسب النظام الأساسي ==”);
int svDeviceId = 0;
foreach (منصة var في المنصات. أين (p => p.Available))
{
resultStr = طلب (String.Format(“devices/{0}”, platform. Name), RequestMethod.GET, String.Empty);
var ds = serializer. Deserialize<int[]>(resultStr);
foreach (معرف var في DS)
{
إذا (svDeviceId == 0 & المنصة. معرف == 1)
{
svDeviceId = id;
}
Console.WriteLine(” – {1}”{0}, المنصة. الاسم ، المعرف) ؛
}
}
الحصول على جهاز ServerView بواسطة معرف
Console.WriteLine(“==الحصول على الجهاز عن طريق معرف ==”);
resultStr = request(string.Format(“device/{0}”, svDeviceId), requestMethod.GET, string.Empty);
جهاز var = متسلسل. إلغاء تسلسل<ServerViewDevice>(resultStr);
تحرير الجهاز
Console.WriteLine(“== تحرير الجهاز ==”);
جهاز. الاسم = الجهاز. الاسم + “(تم تحريره)”؛
حاول
{
resultStr = طلب (String.Format(“device/{0}”, device. Id)، RequestMethod.POST،
التسلسل. تسلسل (جهاز));
var result = serializer. Deserialize<OperatioResult>(resultStr);
Console.WriteLine(النتيجة. ToString());
}
الصيد (استثناء على سبيل المثال)
{
var err = serializer. إلغاء تسلسل<ErrorResult>(على سبيل المثال. الرسالة)؛
Console.WriteLine(err. ToString());
}
الحصول على شاشات
Console.WriteLine(“== الحصول على شاشات ==”);
IEشاشات العرض> القابلة للعد<= التسلسل. إلغاء تسلسل<الشاشة[]>(الطلب(String.Format(“المواقع/{0}”، الجهاز. Platform_Id)،
RequestMethod.GET, String.Empty));
foreach (شاشة var في الشاشات)
{
Console.WriteLine(monitor);
}
الحصول على الترددات
Console.WriteLine(“==الحصول على الترددات ==”);
ترددات var = التسلسل. Deserialize<int[]>(Request(String.Format(“الترددات/{0}”، الجهاز. Platform_Id)،
RequestMethod.GET, String.Empty));
foreach (تردد var في الترددات)
{
Console.WriteLine (التردد);
}
الحصول على مجموعات الإشعارات
Console.WriteLine(“==الحصول على مجموعات الإشعارات ==”);
var ngs = serializer. إلغاء تسلسل<int[]>(Request(“groups”, RequestMethod.GET, String.Empty));
foreach (var ng in ngs)
{
Console.WriteLine(ng);
}
إنشاء جهاز جديد
Console.WriteLine(“==إنشاء جهاز==”);
الجهاز = جهاز ServerViewDevice جديد
{
Platform_Id = المنصات. مفرد (p => p.Name.ToLower() == “serverview”). معرف
الاسم = “جهاز جديد”،
التردد = الترددات[0]،
تأجيل = صحيح،
المواقع = الشاشات. أين (m => m.available & !m.IsPrivate & & (m.Id٪2 == 0)). حدد (م => m.Id). توراي () ،
Avoid_Simultaneous_Checks = صحيح،
الإشعارات = إشعارات جديدة
{
E_Mail_Flag = خطأ،
Pager_Flag = خطأ،
Phone_Flag = خطأ،
SMS_Flag = خطأ،
Script_Flag = خطأ،
WL_Device_Flag = خطأ،
Notification_Groups = نانوغرام. خذ(1). حدد (ng = SiteNotifyGroup جديد {Id = ng, Time_Shift_Min = 0 /*0 => فوري*/}). توراي()
}
};
int newDeviceId = 0;
حاول
{
resultStr = طلب (“الأجهزة؟الفعل = PUT” ، RequestMethod.POST ،
التسلسل. تسلسل (جهاز));
var result = serializer. Deserialize<OperatioResult>(resultStr);
newDeviceId = int. تحليل (النتيجة. النتيجة) ؛
Console.WriteLine(النتيجة. ToString());
}
الصيد (استثناء على سبيل المثال)
{
var err = serializer. إلغاء تسلسل<ErrorResult>(على سبيل المثال. الرسالة)؛
Console.WriteLine(err. ToString());
}
إضافة مهمة HTTP جديدة
Console.WriteLine(“==إنشاء مهمة HTTP ==”);
resultStr = الطلب (“أنواع المهام / ” + الجهاز. Platform_Id ، RequestMethod.GET ، String.Empty) ؛
var tts = serializer. إلغاء تسلسل<TaskType[]>(resultStr);
var httpTT = tts. مفرد (tt => tt. Name.ToLower() == “http”);
مهمة var = HTTPTask جديد
{
Device_Id = newDeviceId ،
Task_Type_Id = httpTT.Id ،
الاسم = “مهمة HTTP جديدة” ،
المهلة = 100500,
نوع الطلب = “GET”،
عنوان URL = “amazon.de”
};
حاول
{
resultStr = طلب (“المهام؟الفعل = PUT” ، RequestMethod.POST ،
التسلسل. تسلسل (مهمة));
var result = serializer. Deserialize<OperatioResult>(resultStr);
Console.WriteLine(النتيجة. ToString());
}
الصيد (استثناء على سبيل المثال)
{
var err = serializer. إلغاء تسلسل<ErrorResult>(على سبيل المثال. الرسالة)؛
Console.WriteLine(err. ToString());
}
الحصول على المجدولين
Console.WriteLine(“===Get schedulers==”);
var ss = serializer. Deserialize<int[]>(Request(“schedulers”, RequestMethod.GET, String.Empty));
foreach (var s in ss)
{
Console.WriteLine(التسلسل. إلغاء تسلسل<جدولة (طلب (“جدولة> / ” + s ، RequestMethod.GET ، String.Empty)))؛
}
إنشاء برامج جدولة جديدة
Console.WriteLine(“==إنشاء برامج جدولة جديدة ==”);
var scheduler = جدولة جديدة
{
الاسم = “جديد” ،
الوصف = “descr” ،
Date_Time_Intervals = جديد[]
{
جديد التاريخTimeInterval
{
من = (طويل) (تاريخ جديد (2013 ، 2 ، 2 ، 2 ، 0 ، 0 ، 0) – UnixBaseTime). مجموع المللي ثانية,
إلى = (طويل) (DateTime جديد (2013 ، 2 ، 2 ، 2 ، 30 ، 0 ، 0) – UnixBaseTime). مجموع المللي ثانية,
}
},
Weekly_Intervals = جديد[]
{
الفاصل الأسبوعي الجديد
{
Days = new[] {“mo”, “tu”, “sa”},
From_Min = (دولي) TimeSpan جديد (7 ، 0 ، 0). توتال دقائق,
To_Min = (دولي) TimeSpan جديد (13 ، 0 ، 0). توتال دقائق,
مضمن = كاذب
}
}
};
حاول
{
resultStr = طلب (“schedulers?verb=PUT”, RequestMethod.POST,
التسلسل. تسلسل (جدولة));
var result = serializer. Deserialize<OperatioResult>(resultStr);
Console.WriteLine(النتيجة. ToString());
}
الصيد (استثناء على سبيل المثال)
{
var err = serializer. إلغاء تسلسل<ErrorResult>(على سبيل المثال. الرسالة)؛
Console.WriteLine(err. ToString());
}
Console.ReadKey();
}
}
}