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; }
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; }