-
Notifications
You must be signed in to change notification settings - Fork 0
/
CircuitBreakerModel.cs
44 lines (38 loc) · 1.25 KB
/
CircuitBreakerModel.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
namespace CircuitBreaker.Abstractions
{
public class CircuitBreakerModel
{
public string Id { get; }
public string Status { get; set; }
public int FailureCount { get; set; }
public int SuccessCount { get; set; }
public DateTime NextAttempt { get; set; }
public CircuitBreakerModel() { }
public CircuitBreakerModel(
string id,
string status = CircuitBreakerStatus.Closed,
int failureCount = 0,
int successCount = 0,
DateTime? nextAttempt = null)
{
Id = id;
Status = status;
FailureCount = failureCount;
SuccessCount = successCount;
NextAttempt = nextAttempt ?? DateTime.UtcNow;
}
internal bool Equals(CircuitBreakerModel model)
{
return Id == model.Id &&
Status == model.Status &&
FailureCount == model.FailureCount &&
SuccessCount == model.SuccessCount &&
NextAttempt == model.NextAttempt;
}
internal CircuitBreakerModel Clone()
{
return new CircuitBreakerModel(Id, Status, FailureCount, SuccessCount, NextAttempt);
}
}
}