Skip to content

Commit 06c0ea8

Browse files
committed
Add Source. Add ITimeProvider.
1 parent a31d159 commit 06c0ea8

File tree

5 files changed

+107
-3
lines changed

5 files changed

+107
-3
lines changed

backend/ServiceSimulation/Bll.Domain/Bll.Domain.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
<ItemGroup>
1010
<Folder Include="Entities\" />
11+
<Folder Include="Services\" />
12+
<Folder Include="Interfaces\" />
1113
</ItemGroup>
1214

1315
</Project>

backend/ServiceSimulation/Bll.Domain/Entities/Request.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ public class Request
44
{
55
public int NumberOfSource { get; set; }
66
public int SerialNumberOfSource { get; set; }
7-
public double StartTime { get; set; }
8-
public double EndTime { get; set; }
7+
public DateTime StartTime { get; set; }
8+
public DateTime EndTime { get; set; }
99

10-
public Request(int numberOfSource, int serialNumberOfSource, double startTime, double endTime)
10+
public Request(int numberOfSource, int serialNumberOfSource, DateTime startTime, DateTime endTime)
1111
{
1212
NumberOfSource = numberOfSource;
1313
SerialNumberOfSource = serialNumberOfSource;
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
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+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace Bll.Domain.Interfaces;
2+
3+
public interface ITimeProvider
4+
{
5+
6+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using Bll.Domain.Entities;
2+
3+
namespace Bll.Domain.Services;
4+
5+
public interface ISource
6+
{
7+
Request GetNewRequest();
8+
9+
10+
}

0 commit comments

Comments
 (0)