Beispiel #1
0
        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);
        }