Example #1
0
        public async Task<Uri> StoreSample(DataSample sample)
        {
            sample.Recalculate();

            var header = new DataSampleItem()
            {
                Key = sample.Key,
                Created = sample.Created,
                Modified = sample.Modified,
                Label = sample.Label,
                SourceDataUrl = sample.SourceDataUrl,
                Description = sample.Description,
                StartDate = sample.StartDate,
                EndDate = sample.EndDate
            };

            await _db.TransactAsync(async () =>
            {
                var summaryId = await _db.InsertAsync(sample.Summary);

                header.SummaryId = summaryId.Value;

                var sampleId = await _db.InsertAsync(header);

                if (sample.SampleData.Any())
                {
                    var dataBlobs = sample.SampleData.Select(s => DataItemBlob.Create(s, sampleId.Value));

                    var count = await _db.InsertManyAsync(dataBlobs);
                }

                if (sample.Metadata != null && sample.Metadata.Fields.Any())
                {
                    var flds = sample.Metadata.Fields.Select(f => new SampleFieldMetadata()
                    {
                        DataType = f.DataType,
                        FieldUsage = f.FieldUsage,
                        Index = f.Index,
                        Label = f.Label,
                        Name = f.Name,
                        SampleId = sampleId.Value,
                        DataModel = f.DataModel
                    });

                    var count = await _db.InsertManyAsync(flds);
                }
            });

            sample.Id = header.Id;
            sample.Summary.Id = header.SummaryId;

            return header.Uri;
        }
Example #2
0
        private DataSample SetupData()
        {
            var sample = new DataSample()
            {
                Created = DateTime.UtcNow,
                Description = "desc",
                Label = "label",
                Modified = DateTime.UtcNow,
                SampleData = Enumerable.Range(1, 10).Select(n => new DataItem() { FeatureVector = Functions.RandomVector(4).ToArray(), Label = n.ToString() }).ToList()
            };

            sample.Metadata.Fields.Add(new FieldDescriptor()
            {
                FieldUsage = FieldUsageType.Category,
                DataType = TypeCode.Boolean,
                Label = "Fieldx",
                Name = "FieldX"
            });

            return sample;
        }