public ServiceDetailProjections()
        {
            When <Envelope <GoogleSuiteWasAdded> >(async(context, message, ct) =>
            {
                await context
                .ServiceDetails
                .AddAsync(
                    new ServiceDetail
                {
                    ServiceId   = message.Message.ServiceId,
                    Type        = message.Message.ServiceType,
                    Label       = message.Message.ServiceLabel,
                    ServiceData = new GoogleSuiteService(
                        new ServiceId(message.Message.ServiceId),
                        new GoogleVerificationToken(message.Message.VerificationToken)).GetServiceData(),
                    Domain = message.Message.DomainName
                }, ct);
            });

            When <Envelope <ManualWasAdded> >(async(context, message, ct) =>
            {
                await context
                .ServiceDetails
                .AddAsync(
                    new ServiceDetail
                {
                    ServiceId   = message.Message.ServiceId,
                    Type        = message.Message.ServiceType,
                    Label       = message.Message.ServiceLabel,
                    ServiceData = new ManualService(
                        new ServiceId(message.Message.ServiceId),
                        new ManualLabel(message.Message.ServiceLabel),
                        new RecordSet(
                            message.Message.Records.Select(r => new Record(
                                                               RecordType.FromValue(r.Type),
                                                               new TimeToLive(r.TimeToLive),
                                                               new RecordLabel(r.Label),
                                                               new RecordValue(r.Value))).ToList())).GetServiceData(),
                    Domain = message.Message.DomainName
                }, ct);
            });

            When <Envelope <ServiceWasRemoved> >(async(context, message, ct) =>
            {
                var service = await context
                              .ServiceDetails
                              .FindAsync(message.Message.ServiceId);

                if (service != null)
                {
                    context
                    .ServiceDetails
                    .Remove(service);
                }
            });
        }
Esempio n. 2
0
        public void record_must_be_valid(string recordType, int timeToLive, string recordLabel, string recordValue)
        {
            void ValidRecord() => new Dns.Record(
                RecordType.FromValue(recordType.ToLowerInvariant()),
                new TimeToLive(timeToLive),
                new RecordLabel(recordLabel),
                new RecordValue(recordValue));

            var ex = Record.Exception(ValidRecord);

            Assert.Null(ex);
        }
Esempio n. 3
0
 private RecordData(
     [JsonProperty("type")] string type,
     [JsonProperty("timeToLive")] int timeToLive,
     [JsonProperty("label")] string label,
     [JsonProperty("value")] string value)
     : this(
         new Record(
             RecordType.FromValue(type.ToLowerInvariant()),
             new TimeToLive(timeToLive),
             new RecordLabel(label),
             new RecordValue(value)))
 {
 }
Esempio n. 4
0
        public void label_cannot_be_invalid(string recordType, int timeToLive, string recordLabel, string recordValue)
        {
            void InvalidRecord() => new Dns.Record(
                RecordType.FromValue(recordType.ToLowerInvariant()),
                new TimeToLive(timeToLive),
                new RecordLabel(recordLabel),
                new RecordValue(recordValue));

            var ex = Record.Exception(InvalidRecord);

            Assert.NotNull(ex);
            Assert.IsType <InvalidRecordLabelException>(ex);
        }
Esempio n. 5
0
 private void When(ManualWasAdded @event)
 {
     _services.Add(
         new ServiceId(@event.ServiceId),
         new ManualService(
             new ServiceId(@event.ServiceId),
             new ManualLabel(@event.ServiceLabel),
             new RecordSet(
                 @event.Records.Select(r => new Record(
                                           RecordType.FromValue(r.Type),
                                           new TimeToLive(r.TimeToLive),
                                           new RecordLabel(r.Label),
                                           new RecordValue(r.Value))).ToList())));
 }
Esempio n. 6
0
 public Record ToRecord() =>
 new Record(
     RecordType.FromValue(Type.ToLowerInvariant()),
     new TimeToLive(TimeToLive),
     new RecordLabel(Label),
     new RecordValue(Value));