예제 #1
0
 public async Task Update(ActivePeriod activePeriod, CallForwardingState activeSetting, UnansweredCallHandling unansweredCallHandling, CancellationToken cancellationToken)
 {
     ActivePeriod           = activePeriod;
     UnansweredCallHandling = unansweredCallHandling;
     ActiveSetting          = activeSetting;
     await HttpService.Put(Self, this, cancellationToken);
 }
 public async Task Update(ActivePeriod activePeriod, CallForwardingState activeSetting, UnansweredCallHandling unansweredCallHandling)
 {
     this.ActivePeriod           = activePeriod;
     this.UnansweredCallHandling = unansweredCallHandling;
     this.ActiveSetting          = activeSetting;
     await HttpService.Put(Self, this);
 }
예제 #3
0
 public void UpdateInterval(int intervalWeeks)
 {
     IntervalWeeks = intervalWeeks;
     if (ActivePeriod != null)
     {
         NextDueTimeUtc = ActivePeriod.SetNewDueTimeUtc(intervalWeeks);
     }
 }
예제 #4
0
        public override IDeepCopyable CopyTo(IDeepCopyable other)
        {
            var dest = other as Account;

            if (dest != null)
            {
                base.CopyTo(dest);
                if (Identifier != null)
                {
                    dest.Identifier = new List <Hl7.Fhir.Model.Identifier>(Identifier.DeepCopy());
                }
                if (NameElement != null)
                {
                    dest.NameElement = (Hl7.Fhir.Model.FhirString)NameElement.DeepCopy();
                }
                if (Type != null)
                {
                    dest.Type = (Hl7.Fhir.Model.CodeableConcept)Type.DeepCopy();
                }
                if (StatusElement != null)
                {
                    dest.StatusElement = (Code <Hl7.Fhir.Model.Account.AccountStatus>)StatusElement.DeepCopy();
                }
                if (ActivePeriod != null)
                {
                    dest.ActivePeriod = (Hl7.Fhir.Model.Period)ActivePeriod.DeepCopy();
                }
                if (Currency != null)
                {
                    dest.Currency = (Hl7.Fhir.Model.Coding)Currency.DeepCopy();
                }
                if (Balance != null)
                {
                    dest.Balance = (Hl7.Fhir.Model.Money)Balance.DeepCopy();
                }
                if (CoveragePeriod != null)
                {
                    dest.CoveragePeriod = (Hl7.Fhir.Model.Period)CoveragePeriod.DeepCopy();
                }
                if (Subject != null)
                {
                    dest.Subject = (Hl7.Fhir.Model.ResourceReference)Subject.DeepCopy();
                }
                if (Owner != null)
                {
                    dest.Owner = (Hl7.Fhir.Model.ResourceReference)Owner.DeepCopy();
                }
                if (DescriptionElement != null)
                {
                    dest.DescriptionElement = (Hl7.Fhir.Model.FhirString)DescriptionElement.DeepCopy();
                }
                return(dest);
            }
            else
            {
                throw new ArgumentException("Can only copy to an object of the same type", "other");
            }
        }
예제 #5
0
        public void Reschedule(int weeks, RescheduledDirection direction)
        {
            if (!HasActivePeriod)
            {
                throw new Exception($"{nameof(TagRequirement)} {Id} don't have an active {nameof(PreservationPeriod)}. Can't reschedule");
            }

            NextDueTimeUtc = ActivePeriod.Reschedule(weeks, direction);
        }
예제 #6
0
                public void shouldNotNotifyIfWasntIdleBefore()
                {
                    // arrange
                    ActivePeriod period = PeriodBuilder.New(MIDDAY).Length(1.secs()).Active();

                    // act
                    timeTableSUT.PeriodPassed(period);

                    // assert
                    A.CallTo(() => listenerActivityListnerMock.NotifyActiveAfterBreak(A <TimeSpan> .Ignored)).MustNotHaveHappened();
                }
예제 #7
0
                public void twoCloseActivePeriodShouldBeMerged()
                {
                    var period1 = MIDDAY.NewPeriod().Active();
                    var period2 = period1.NewPeriodAfter(LESS_THAN_IDLE_TIMEOUT).Active();

                    timeTableSUT.AddPeriod(period1);
                    timeTableSUT.AddPeriod(period2);

                    var periodMerged = new ActivePeriod(period1.Start, period2.End);

                    Assert.AreEqual(periodMerged, periodStorage.GetAll().First());
                    CollectionAssert.AreEquivalent(new[] { periodMerged }, periodStorage.GetAll());
                }
예제 #8
0
                public void twoCloseActivePeriodEnclosingIdlePeriodsShouldBeMerged()
                {
                    var period0i = MIDDAY.NewPeriod().Idle();
                    var period1a = period0i.NewPeriodAfter().Active();
                    var period2i = period1a.NewPeriodAfter().Idle();
                    var period3i = period2i.NewPeriodAfter().Idle();
                    var period4a = period3i.NewPeriodAfter().Active();

                    timeTableSUT.AddPeriod(period0i);
                    timeTableSUT.AddPeriod(period1a);
                    timeTableSUT.AddPeriod(period2i);
                    timeTableSUT.AddPeriod(period3i);
                    timeTableSUT.AddPeriod(period4a);

                    var mergedPeriod = new ActivePeriod(period1a.Start, period4a.End);

                    CollectionAssert.AreEquivalent(periodStorage.GetAll(), new ActivityPeriod[] { period0i, mergedPeriod });
                }
예제 #9
0
                public void mergingActivePeriodsShouldNotDeletePartialIdlePeriods()
                {
                    var period0i = MIDDAY.NewPeriod().Idle();
                    var period1a = period0i.NewPeriodAfter(-1.ms()).Active();
                    var period2i = period1a.NewPeriodAfter().Idle();
                    var period3a = period2i.NewPeriodAfter().Active();
                    var period4i = period3a.NewPeriodAfter(-1.ms()).Idle();

                    timeTableSUT.AddPeriod(period0i);
                    timeTableSUT.AddPeriod(period1a);
                    timeTableSUT.AddPeriod(period2i);
                    timeTableSUT.AddPeriod(period3a);
                    timeTableSUT.AddPeriod(period4i);

                    var mergedPeriod = new ActivePeriod(period1a.Start, period3a.End);

                    CollectionAssert.AreEquivalent(periodStorage.GetAll(), new ActivityPeriod[] { period0i, mergedPeriod, period4i });
                }
예제 #10
0
 public Task Update(ActivePeriod activePeriod, CallForwardingState activeSetting, UnansweredCallHandling unansweredCallHandling)
 {
     return(Update(activePeriod, activeSetting, unansweredCallHandling, HttpService.GetNewCancellationToken()));
 }