Esempio n. 1
0
 private Analog(
     Guid remoteId,
     PointName pointName,
     PointCoordinate pointCoordinate) : base(pointName)
 {
     _remoteId        = remoteId;
     _pointCoordinate = pointCoordinate;
 }
Esempio n. 2
0
 public void Update(PointCoordinate newPointCoordinate)
 {
     _pointCoordinate = newPointCoordinate;
 }
Esempio n. 3
0
 public Maybe <AnalogCoordinateUpdated> GenerateAnalogCoordinateUpdatedWith(PointCoordinate newPointCoordinate)
 => _pointCoordinate.Equals(newPointCoordinate).OnBoth(
     () => Maybe <AnalogCoordinateUpdated> .None,
     () => new AnalogCoordinateUpdated(_remoteId, Id, _pointCoordinate, newPointCoordinate));
Esempio n. 4
0
 public static Analog AnalogFrom(
     Guid remoteId,
     PointName pointName,
     PointCoordinate pointCoordinate) =>
 new Analog(remoteId, pointName, pointCoordinate);
Esempio n. 5
0
 public void UpdateCoordinate(PointName pointName, PointCoordinate newPointCoordinate) =>
 _analogPoints[pointName].Update(newPointCoordinate);
Esempio n. 6
0
 public Result <Maybe <AnalogCoordinateUpdated> > GenerateAnalogCoordinateUpdatedWith(PointName pointName,
                                                                                      PointCoordinate newPointCoordinate) =>
 _analogPoints.MaybeGetValue(pointName).Unwrap(
     analog => analog.GenerateAnalogCoordinateUpdatedWith(newPointCoordinate).ToOkResult(),
     () => Result.Fail <Maybe <AnalogCoordinateUpdated> >($"Analog point with name '{pointName}' doesnt exist in remote."));
Esempio n. 7
0
 public void Add(PointName pointName, PointCoordinate pointCoordinate) =>
 _analogPoints.Add(pointName, AnalogFrom(_remoteId, pointName, pointCoordinate));
Esempio n. 8
0
 public Result <AnalogAdded> GenerateAnalogAddedFor(PointName pointName, PointCoordinate pointCoordinate) =>
 _analogPoints.MaybeGetValue(pointName).Unwrap(
     _ => Result.Fail <AnalogAdded>($"Analog point with name {pointName} already exists in remote."),
     () => new AnalogAdded(_remoteId, pointName, pointCoordinate).ToOkResult());
Esempio n. 9
0
 public Result <Remote> UpdateAnalogCoordinate(PointName pointName, PointCoordinate newPointCoordinate) =>
 _analogPoints.GenerateAnalogCoordinateUpdatedWith(pointName, newPointCoordinate)
 .OnSuccess(maybeEvent => maybeEvent.Map(ApplyChange))
 .ToTypedResult(this);
Esempio n. 10
0
 public Result <Remote> AddAnalog(PointName pointName, PointCoordinate pointCoordinate) =>
 _analogPoints.GenerateAnalogAddedFor(pointName, pointCoordinate)
 .OnSuccess(e => ApplyChange(e))
 .ToTypedResult(this);