annotate Demo/WebServices/Client/WebClient/WebOperationCancelledEventArgs.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.Text;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using System.Collections;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 namespace Demo.WebServices.Client.WebClient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 public class WebOperationCancelledEventArgs : EventArgs
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 private readonly string _url;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 public string Url
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 get { return _url; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 private readonly string _methodName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public string MethodName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 get { return _methodName; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 private readonly object[] _parameters;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public object[] Parameters
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 get { return _parameters; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 public WebOperationCancelledEventArgs(string url, string methodName, object[] parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 _url = url;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 _methodName = methodName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 _parameters = parameters;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 public string Format()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 StringBuilder sb = new StringBuilder();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 sb
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 .Append(Url)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 .Append('/')
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 .Append(MethodName)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 .Append('(')
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 ;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 if (Parameters != null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 bool first = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 foreach (object parameter in Parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 if (first)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 first = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 sb.Append(", ");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 try
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 FormatParameter(parameter, sb);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 catch (Exception ex)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 sb.Append(ex.ToString());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 return sb.Append(')').ToString();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 private static void FormatParameter(object parameter, StringBuilder sb)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 if (parameter == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 sb.Append("null");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 else if (parameter is string)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 sb.Append('"').Append((string)parameter).Append('"');
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 else if (parameter is char)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 sb.Append('\'').Append((char)parameter).Append('\'');
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 else if (parameter is IEnumerable)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 sb.Append('[');
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 bool first = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 foreach (object item in (IEnumerable)parameter)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 FormatParameter(item, first? sb: sb.Append(','));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 first = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 sb.Append(']');
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 sb.Append(parameter.ToString());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 }