public void Delete_Can_Delete_Record_By_Alternate_Key_Multi() { //Arrange var accountToDelete = new Entity("account") { Id = Guid.NewGuid(), ["name"] = "Your Company", ["accountnumber"] = "1234567890" }; var metadata = AccountMetadata.GetEntityMetadata(); metadata.SetSealedPropertyValue( nameof(metadata.Keys), new EntityKeyMetadata[] { new EntityKeyMetadata() { KeyAttributes = new string[] { "name", "accountnumber" } } }); _context.InitializeMetadata(metadata); _context.Initialize(accountToDelete); var keys = new KeyAttributeCollection { { "name", accountToDelete.GetAttributeValue <string>("name") }, { "accountnumber", accountToDelete.GetAttributeValue <string>("accountnumber") } }; //Act _service.Delete("account", keys); //Assert Assert.Empty(_context.CreateQuery("account")); }
public void Delete_Can_Delete_EarlyBound_Record_By_Alternate_Key_Multi() { //Arrange var accountToDelete = new Account() { Id = Guid.NewGuid(), Name = "Your Company", AccountNumber = "1234567890" }; var metadata = AccountMetadata.GetEntityMetadata(); metadata.SetSealedPropertyValue( nameof(metadata.Keys), new EntityKeyMetadata[] { new EntityKeyMetadata() { KeyAttributes = new string[] { Account.Fields.Name, Account.Fields.AccountNumber } } }); _context.InitializeMetadata(metadata); _context.Initialize(accountToDelete); var keys = new KeyAttributeCollection { { Account.Fields.Name, accountToDelete.Name }, { Account.Fields.AccountNumber, accountToDelete.AccountNumber } }; //Act _service.Delete <Account>(keys); //Assert Assert.Empty(_context.CreateQuery <Account>()); }
public void TestAccountMetadataEncodesId(AccountMetadata metadata) { var encodedId = WebEncoders.Base64UrlEncode(metadata.Id.ToByteArray()); var encodedMetadata = JsonConvert.SerializeObject(metadata); Assert.Contains(encodedId.Enquote(), encodedMetadata); Assert.Contains(metadata.DisplayName.Enquote(), encodedMetadata); Assert.Contains(metadata.GravatarHash.Enquote(), encodedMetadata); }
public async Task <IActionResult> GetAccountMetadata(string id) { if (id.FalsifyAsIdentifier()) { logger.LogWarning("Account id rejected; Origin: {0}", HttpContext.GetRemoteAddress()); return(BadRequest()); } var idInBinary = WebEncoders.Base64UrlDecode(id); var idBoxedInGuidForDatabase = new Guid(idInBinary); var account = await databaseService.GetAccountAsync(idBoxedInGuidForDatabase); var responseBody = new AccountMetadata(account.Id, account.DisplayName, account.Email.ToGravatarHash()); return(Ok(responseBody)); }
public void Clone_default_addCloneLabel_Adds_Clone_Label() { var metadata = AccountMetadata.GetEntityMetadata(); var entityMetadata = new EntityMetadataCollection() { metadata }; _context.AddFakeMessageExecutor <RetrieveMetadataChangesRequest>(new RetrieveMetadataChangesRequestExecutor(entityMetadata)); var clone = new Entity("account") { ["name"] = "Your Company" }.Clone(_service); Assert.Equal("Your Company (clone)", clone.GetAttributeValue <string>("name")); }
public void Clone_Ignores_Uniqueidentifier_Columns() { var metadata = AccountMetadata.GetEntityMetadata(); var entityMetadata = new EntityMetadataCollection() { metadata }; _context.AddFakeMessageExecutor <RetrieveMetadataChangesRequest>(new RetrieveMetadataChangesRequestExecutor(entityMetadata)); var clone = new Entity("account") { ["name"] = "Your Company", ["processid"] = Guid.NewGuid() }.Clone(_service); Assert.Null(clone.GetAttributeValue <Guid?>("processid")); }
public void Clone_Correctly_Clones_Record_Without_columnsToRemove() { var metadata = AccountMetadata.GetEntityMetadata(); var entityMetadata = new EntityMetadataCollection() { metadata }; _context.AddFakeMessageExecutor <RetrieveMetadataChangesRequest>(new RetrieveMetadataChangesRequestExecutor(entityMetadata)); var clone = new Entity("account") { ["name"] = "Your Company", ["primarycontactid"] = new EntityReference("contact", Guid.NewGuid()) }.Clone(_service); Assert.NotNull(clone.GetAttributeValue <EntityReference>("primarycontactid")); }