public void Setup() { // Create a reference loop _person1 = new Person { Id = 1, RenameName = "ManagerBob", }; _person2 = new Person() { Id = 2, RenameName = "Joe", ReferenceLoopManager = _person1, DefaultAddress = new Address() { PrivateGetter = "3000 Wildwood Court", City = "Saline", State = State.MI, DefaultValue = 0, DefaultNullable = null, DefaultClass = null } }; // _person1.ReferenceLoopManager = _person1; var data = new Resource <Person>(_person2) { Type = "person", Id = "1" }; // Create an envelope _envelope = new ResourceEnvelope <Person>(data); _envelope.Links["self"] = "person/1"; _envelope.Meta["released"] = "2019-03-05"; }
/// <summary> /// Wrap a single resource into a JSON:API envelope /// </summary> /// <typeparam name="T">Resource type</typeparam> /// <param name="entity">Entity being wrapped</param> /// <returns>The resource envelope.</returns> public ResourceEnvelope <T> Wrap <T>(T entity) where T : class { var policy = GetOrCreatePolicy(typeof(T)); var envelope = new ResourceEnvelope <T>(ApplyPolicy(entity, policy)); return(envelope); }
private async Task LoadResourceEnvelopeAsync() { if (!isInitiated) { resourceEnvelope = await masterRepository.GetAsync <ResourceEnvelope>(ResourceEnvelope.IdFormat(new MasterDocument.IdKey())); isInitiated = true; } }
public void Resource_NewResourceEnvelope_IdAndTypeNull() { Person p = _person2; ResourceEnvelope <Person> rep = new ResourceEnvelope <Person>(p); Resource <Person> rp = rep.Data; Assert.IsNull(rp.Type); Assert.IsNull(rp.Id); }
public void DeserializeObject_MinimalObject_TypeIdExpected() { // Arrange, Act, Assert var test = _minimalObjectDoc; ResourceEnvelope <Attributes> result = JsonConvert.DeserializeObject <ResourceEnvelope <Attributes> >(test); Assert.That(result, Is.Not.Null); Assert.That(result.Data, Is.Not.Null); Assert.That(result.Data.Id, Is.EqualTo("1")); Assert.That(result.Data.Type, Is.EqualTo("person")); }
public void DeserializeObject_MinimalAttributeDocument_AttributesFound() { // Arrange, Act, Assert var test = _minimalAttributeDoc; ResourceEnvelope <Attributes> result = JsonConvert.DeserializeObject <ResourceEnvelope <Attributes> >(test); Assert.That(result, Is.Not.Null); Assert.That(result.Data, Is.Not.Null); Assert.That(result.Data.Attributes, Is.Not.Null); Assert.That(result.Data.Attributes["firstname"], Is.EqualTo("Bob")); }
private void LoadResources() { if (!isInitiated) { using (var reader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(EmbeddedResourceName))) { resourceEnvelope = reader.ReadToEnd().ToObject <ResourceEnvelope>(); } isInitiated = true; } }
public void DeserializeObject_FullDocument_NonNullDataLinksMeta() { // Arrange, Act, Assert var test = _fullDoc; ResourceEnvelope <Attributes> result = JsonConvert.DeserializeObject <ResourceEnvelope <Attributes> >(test); Assert.That(result, Is.Not.Null); Assert.That(result.Data, Is.Not.Null); Assert.That(result.Links, Is.Not.Null); Assert.That(result.Links["self"], Is.EqualTo("person/1")); Assert.That(result.Meta, Is.Not.Null); Assert.That(result.Meta["released"], Is.EqualTo("2019-03-05")); }
private string GetValue(ResourceEnvelope resourceEnvelope, int id, string culture) { if (RouteBinding?.Resources?.Count > 0) { var value = GetValue(RouteBinding.Resources, id, culture); if (!value.IsNullOrEmpty()) { return(value); } } return(GetValue(resourceEnvelope.Resources, id, culture)); }
public async Task <IActionResult> PostResource([FromBody] Api.Resource model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var resourceEnvelope = new ResourceEnvelope { Id = ResourceEnvelope.IdFormat(new MasterDocument.IdKey()), SupportedCultures = model.SupportedCultures, Names = model.Names, Resources = model.Resources, }; await masterService.SaveAsync(resourceEnvelope); return(NoContent()); }