public ServicePolicy GetServicePolicy(Guid serviceId) { DomainPolicy.IPolicy legacyPolicy = GetAdvancedServicePolicy(serviceId); if (legacyPolicy.GetType() != typeof(DomainPolicy.LegacyPolicy)) { Trace.TraceWarning($"Invalid policy type returned to legacy function. To utilize new policies please use GetAdvancedServicePolicy"); return(null); } // This calls ToTransport because the parsing logic that is contained in the ServicePolicy class shouldn't be duplicated return(ServicePolicy.FromTransport((AuthPolicy)legacyPolicy.ToTransport())); }
public void FromTransport_Variant1() { var authPolicy = new AuthPolicy(1, null, null, null, true, new List <AuthPolicy.Location> { new AuthPolicy.Location("n", 1, 2, 3), new AuthPolicy.Location("x", 2, 4, 6) }, new List <AuthPolicy.TimeFence> { new AuthPolicy.TimeFence("y", new List <string> { "Monday" }, 1, 2, 3, 4, "A") }); var servicePolicy = ServicePolicy.FromTransport(authPolicy); Assert.IsTrue(servicePolicy.RequiredFactors == 1); Assert.IsTrue(servicePolicy.RequireInherenceFactor == null); Assert.IsTrue(servicePolicy.RequireKnowledgeFactor == null); Assert.IsTrue(servicePolicy.RequirePossessionFactor == null); Assert.IsTrue(servicePolicy.TimeFences.Count == 1); Assert.IsTrue(servicePolicy.TimeFences[0].Days.Count == 1); Assert.IsTrue(servicePolicy.TimeFences[0].Days[0] == DayOfWeek.Monday); Assert.IsTrue(servicePolicy.TimeFences[0].Name == "y"); Assert.IsTrue(servicePolicy.TimeFences[0].TimeZone == "A"); Assert.IsTrue(servicePolicy.TimeFences[0].StartHour == 1); Assert.IsTrue(servicePolicy.TimeFences[0].EndHour == 2); Assert.IsTrue(servicePolicy.TimeFences[0].StartMinute == 3); Assert.IsTrue(servicePolicy.TimeFences[0].EndMinute == 4); Assert.IsTrue(servicePolicy.Locations.Count == 2); Assert.IsTrue(servicePolicy.Locations[0].Name == "n"); Assert.AreEqual(servicePolicy.Locations[0].Latitude, 2, 0.01); Assert.AreEqual(servicePolicy.Locations[0].Longitude, 3, 0.01); Assert.AreEqual(servicePolicy.Locations[0].Radius, 1, 0.01); Assert.IsTrue(servicePolicy.Locations[1].Name == "x"); Assert.AreEqual(servicePolicy.Locations[1].Latitude, 4, 0.01); Assert.AreEqual(servicePolicy.Locations[1].Longitude, 6, 0.01); Assert.AreEqual(servicePolicy.Locations[1].Radius, 2, 0.01); }