public void AddZones(double[] ranges, string key, string value)
        {
            if (Observer == null)
            {
                Log.Debug("app", "Observer is not defined yet");
                return;
            }

            var zoneBuilder = Observer.ZoneBuilder();
            OnEnterDefaultZoneHandler  en = new OnEnterDefaultZoneHandler(this.Model);
            OnChangeDefaultZoneHandler ch = new OnChangeDefaultZoneHandler(this.Model);
            OnExitDefaultZoneHandler   ex = new OnExitDefaultZoneHandler(this.Model);
            bool first = true;

            foreach (var range in ranges)
            {
                ProximityZones.Add(zoneBuilder
                                   .ForAttachmentKeyAndValue(first ? "AuparNotificationZone" : key, first ? "Always" : value)
                                   .InCustomRange(range)
                                   .WithOnEnterAction(en)
                                   .WithOnChangeAction(ch)
                                   .WithOnExitAction(ex)
                                   .Create());

                Log.Debug("app", $"Proximity all ready to go! - Zone range {range} ");
            }

            Observer.AddProximityZones(ProximityZones);
        }
        public void AddCustomZone(double range, string key, string value, string[] beacons)
        {
            if (Observer == null)
            {
                Log.Debug("app", "Observer is not defined yet");
                return;
            }

            var newZone = Observer
                          .ZoneBuilder()
                          .ForAttachmentKeyAndValue(key, value)
                          .InCustomRange(range)
                          .WithOnEnterAction(new OnEnterCustomZoneHandler(this.Model, beacons))
                          .WithOnChangeAction(new OnChangeCustomZoneHandler(this.Model, beacons))
                          .WithOnExitAction(new OnExitCustomZoneHandler(this.Model, beacons))
                          .Create();

            Observer.AddProximityZone(newZone);
            ProximityZones.Add(newZone);

            Log.Debug("app", $"Proximity all ready to go! - Zone range {range} ");
        }