1+ using Bll . Domain . Services ;
2+
3+ namespace Bll . Domain . Entities ;
4+
5+ public class Source : ISource
6+ {
7+ public int SourceId { get ; set ; }
8+ public int Priority { get ; set ; }
9+ public int SerialNumber { get ; set ; }
10+ public Request GetNewRequest ( )
11+ {
12+ var generatedRequest = new Request ( SourceId , SerialNumber , DateTime . Now , DateTime . Now . AddMilliseconds ( 5.0 ) ) ;
13+ SerialNumber ++ ;
14+ return generatedRequest ;
15+ }
16+ }
17+
18+ class Source
19+ {
20+ public Request sourceRequests { get ; set ; }
21+ public int numberSource { get ; set ; }
22+ public int serialNumber { get ; set ; } = 0 ;
23+
24+ public int priority { get ; set ; } = 0 ;
25+
26+ public int declined { get ; set ; } = 0 ;
27+
28+ public float Tpreb { get ; set ; } = 0 ;
29+
30+ public float TObcl { get ; set ; } = 0 ;
31+
32+ public float Tbp { get ; set ; } = 0 ;
33+
34+ public int TbpAmount { get ; set ; } = 0 ; // кол-во заявок в буфере этого источника
35+
36+ public List < float > allRequetsOfSource { get ; set ; }
37+
38+ public List < float > allTbp { get ; set ; }
39+
40+ public Source ( int numberSource , int serialNumber , int priority )
41+ {
42+ this . numberSource = numberSource ;
43+ this . serialNumber = serialNumber ;
44+ this . priority = priority ;
45+ this . declined = 0 ;
46+ this . TObcl = 0 ;
47+ this . Tbp = 0 ;
48+ allRequetsOfSource = new List < float > ( ) ;
49+ allTbp = new List < float > ( ) ;
50+ // random first request
51+ sourceRequests = new Request ( Program . time + ( ( float ) Program . random . NextDouble ( ) ) / 100 , numberSource , serialNumber ) ;
52+ serialNumber ++ ;
53+ allRequetsOfSource . Add ( sourceRequests . dateTime ) ;
54+ }
55+
56+ public Source ( ) { }
57+
58+ public float GetTimeRequest ( )
59+ {
60+ if ( sourceRequests == null ) return - 1 ;
61+ return sourceRequests . dateTime ;
62+ }
63+
64+ public Request GetNewRequest ( ) // отдаём текущую сгенирированную и генерируем новую
65+ {
66+ Request temp = this . sourceRequests ;
67+ float prevTime = temp . dateTime ;
68+
69+ serialNumber ++ ;
70+ sourceRequests = null ;
71+ // генерировать следующую заявку источника
72+ sourceRequests = new Request ( prevTime + Program . timeOfSourceGenerateNewRequest , numberSource , serialNumber ) ;
73+
74+ Program . numberOfRequestsWereGenerated ++ ;
75+
76+ if ( Program . numberOfRequestsWereGenerated >= Program . totalRequestGenerate )
77+ {
78+ sourceRequests = null ;
79+ // больше не генерируем
80+ }
81+
82+ Program . allRequestInSystem . Add ( temp ) ;
83+ allRequetsOfSource . Add ( temp . dateTime ) ;
84+ // возращаем текущую
85+ return temp ;
86+ }
0 commit comments