public void WHEN_Convert_GIVEN_Valid_Dto_THEN_Get_Valid_Result_With_All_Links() { var uniqueIdFactory = SampleObjectsIdFactory.Instance; var fieldBoundaryDto = new FieldBoundaryDto { Id = 123, FieldUid = Guid.NewGuid(), CropYear = DateTime.Now.Year }; var converter = new FieldBoundaryDtoConverter(uniqueIdFactory); var envelope = converter.Convert(fieldBoundaryDto); Assert.Equal(fieldBoundaryDto.Id.ToString(), envelope.Object.Id.UniqueIds.First().Id); var timeScope = envelope.Object.TimeScopes.Single(); Assert.Equal(new DateTime(DateTime.Now.Year, 1, 1), timeScope.TimeStamp1); Assert.Equal(new DateTime(DateTime.Now.Year, 12, 31), timeScope.TimeStamp2); var selfLink = envelope.Links.Single(l => l.Rel == Relationships.Self); Assert.Equal($"/FieldBoundaries/{uniqueIdFactory.UniqueIdSource}/{fieldBoundaryDto.Id}", selfLink.Link); Assert.Equal(selfLink.Id.ReferenceId, envelope.Object.Id.ReferenceId); var fieldsLink = envelope.Links.Single(l => l.Rel == typeof(Field).ObjectRel()); Assert.Equal($"/Fields/{uniqueIdFactory.UniqueIdSource}/{fieldBoundaryDto.FieldUid}", fieldsLink.Link); }
public ModelEnvelope <FieldBoundary> Get(string source, string id) { SampleObjectsIdFactory.ValidateSource(source); var dto = SampleRepository.Instance.FieldBoundaries.Single(z => z.Id == int.Parse(id)); var converter = new FieldBoundaryDtoConverter(SampleObjectsIdFactory.Instance); return(converter.Convert(dto)); }
public IReadOnlyCollection <ModelEnvelope <FieldBoundary> > GetByField(string source, string id, int?cropYear) { SampleObjectsIdFactory.ValidateSource(source); var converter = new FieldBoundaryDtoConverter(SampleObjectsIdFactory.Instance); var list = new List <ModelEnvelope <FieldBoundary> >(); var boundaries = SampleRepository.Instance.FieldBoundaries.Where(z => z.FieldUid == new Guid(id)); if (cropYear.HasValue) { boundaries = boundaries.Where(b => b.CropYear == cropYear); } foreach (var dto in boundaries) { var envelope = converter.Convert(dto); list.Add(envelope); } return(list); }