protected ArtifactBase(TUdi udi, IEnumerable <ArtifactDependency> dependencies = null) { Udi = udi ?? throw new ArgumentNullException("udi"); Name = Udi.ToString(); Dependencies = dependencies ?? Enumerable.Empty <ArtifactDependency>(); _checksum = new Lazy <string>(GetChecksum); }
/// <inheritdoc /> public IEnumerable <NexuRelation> GetIncomingRelationsForItem(Udi udi) { using (var scope = this.scopeProvider.CreateScope(autoComplete: true)) { var db = scope.Database; var udiString = udi.ToString(); var sql = new Sql <ISqlContext>(scope.SqlContext); sql.Where <NexuRelation>(x => x.ChildUdi == udiString); return(db.Fetch <NexuRelation>(sql)); } }
public void GuidUdiParseTest() { var guid = Guid.NewGuid(); var s = "umb://" + Constants.UdiEntityType.AnyGuid + "/" + guid.ToString("N"); Udi udi = UdiParser.Parse(s); Assert.AreEqual(Constants.UdiEntityType.AnyGuid, udi.EntityType); Assert.IsInstanceOf <GuidUdi>(udi); var gudi = udi as GuidUdi; Assert.IsNotNull(gudi); Assert.AreEqual(guid, gudi.Guid); Assert.AreEqual(s, udi.ToString()); }
/// <inheritdoc /> public void PersistRelationsForContentItem(Udi contentItemUdi, IEnumerable <NexuRelation> relations) { using (var scope = this.scopeProvider.CreateScope(autoComplete: true)) { using (var transaction = scope.Database.GetTransaction()) { var db = scope.Database; var udiString = contentItemUdi.ToString(); var deleteSql = new Sql <ISqlContext>(scope.SqlContext); deleteSql.Where <NexuRelation>(x => x.ParentUdi == udiString); db.Delete <NexuRelation>(deleteSql); db.BulkInsertRecords(relations); transaction.Complete(); } } }
public async Task Node_Udi_Id_From_QueryString_With_Permission_Is_Authorized() { var authHandlerContext = CreateAuthorizationHandlerContext(); var mockHttpContextAccessor = CreateMockHttpContextAccessor(queryStringValue: s_nodeUdi.ToString()); var sut = CreateHandler(mockHttpContextAccessor.Object, NodeId, new[] { "A" }); await sut.HandleAsync(authHandlerContext); Assert.IsTrue(authHandlerContext.HasSucceeded); AssertContentCached(mockHttpContextAccessor); }
public async Task Node_Udi_Id_From_QueryString_With_Permission_Is_Authorized() { AuthorizationHandlerContext authHandlerContext = CreateAuthorizationHandlerContext(); Mock <IHttpContextAccessor> mockHttpContextAccessor = CreateMockHttpContextAccessor(queryStringValue: s_nodeUdi.ToString()); MediaPermissionsQueryStringHandler sut = CreateHandler(mockHttpContextAccessor.Object, NodeId); await sut.HandleAsync(authHandlerContext); Assert.IsTrue(authHandlerContext.HasSucceeded); AssertMediaCached(mockHttpContextAccessor); }
public void StringEncodingTest() { // absolute path is unescaped var uri = new Uri("umb://" + Constants.UdiEntityType.AnyString + "/this%20is%20a%20test"); Assert.AreEqual("umb://" + Constants.UdiEntityType.AnyString + "/this is a test", uri.ToString()); Assert.AreEqual("umb://" + Constants.UdiEntityType.AnyString + "/this%20is%20a%20test", uri.AbsoluteUri); Assert.AreEqual("/this%20is%20a%20test", uri.AbsolutePath); Assert.AreEqual("/this is a test", Uri.UnescapeDataString(uri.AbsolutePath)); Assert.AreEqual("%2Fthis%20is%20a%20test", Uri.EscapeDataString("/this is a test")); Assert.AreEqual("/this%20is%20a%20test", Uri.EscapeUriString("/this is a test")); Udi udi = UdiParser.Parse("umb://" + Constants.UdiEntityType.AnyString + "/this%20is%20a%20test"); Assert.AreEqual(Constants.UdiEntityType.AnyString, udi.EntityType); Assert.IsInstanceOf <StringUdi>(udi); var stringEntityId = udi as StringUdi; Assert.IsNotNull(stringEntityId); Assert.AreEqual("this is a test", stringEntityId.Id); Assert.AreEqual("umb://" + Constants.UdiEntityType.AnyString + "/this%20is%20a%20test", udi.ToString()); var udi2 = new StringUdi(Constants.UdiEntityType.AnyString, "this is a test"); Assert.AreEqual(udi, udi2); var udi3 = new StringUdi(Constants.UdiEntityType.AnyString, "path to/this is a test.xyz"); Assert.AreEqual("umb://" + Constants.UdiEntityType.AnyString + "/path%20to/this%20is%20a%20test.xyz", udi3.ToString()); }
public void StringUdiParseTest() { Udi udi = UdiParser.Parse("umb://" + Constants.UdiEntityType.AnyString + "/test-id"); Assert.AreEqual(Constants.UdiEntityType.AnyString, udi.EntityType); Assert.IsInstanceOf <StringUdi>(udi); var stringEntityId = udi as StringUdi; Assert.IsNotNull(stringEntityId); Assert.AreEqual("test-id", stringEntityId.Id); Assert.AreEqual("umb://" + Constants.UdiEntityType.AnyString + "/test-id", udi.ToString()); udi = UdiParser.Parse("umb://" + Constants.UdiEntityType.AnyString + "/DA845952BE474EE9BD6F6194272AC750"); Assert.IsInstanceOf <StringUdi>(udi); }