/// <summary> /// Create a stream dataset /// </summary> /// <param name="datasetSchema">Schema and metadata for the dataset to create</param> /// <param name="updateMethod">Update method type for stream dataset. Options are Append or Replace</param> /// <returns></returns> public async Task <StreamDataset> CreateAsync(IDatasetSchema datasetSchema, UpdateMethod updateMethod) { string streamUri = "v1/streams"; //_domoHttpClient.SetContentType("application/json"); _domoHttpClient.SetAcceptRequestHeaders("application/json"); string dsUpdateMethod = ""; if (updateMethod == UpdateMethod.APPEND) { dsUpdateMethod = "APPEND"; } else if (updateMethod == UpdateMethod.REPLACE) { dsUpdateMethod = "REPLACE"; } var streamSchema = new StreamDatasetSchema() { DataSet = datasetSchema, UpdateMethod = dsUpdateMethod }; string schemaJson = JsonConvert.SerializeObject(streamSchema, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }); StringContent content = new StringContent(schemaJson, Encoding.UTF8, "application/json"); var response = await _domoHttpClient.Client.PostAsync(streamUri, content); string responseMessage = await response.Content.ReadAsStringAsync(); var newStreamDataset = JsonConvert.DeserializeObject <StreamDataset>(responseMessage); return(newStreamDataset); }
/// <summary> /// Creates a dataset in DOMO with the specified schema. Does not populate dataset with data. /// </summary> /// <param name="schema"></param> /// <returns>Dataset object with newly created dataset information</returns> public async Task <Dataset> CreateDatasetAsync(IDatasetSchema schema) { string datasetUri = "v1/datasets"; _domoHttpClient.SetAcceptRequestHeaders("application/json"); DatasetSchema correctSchema = new DatasetSchema() { Description = schema.Description, Rows = schema.Rows, Name = schema.Name, Schema = schema.Schema }; string schemaJson = JsonConvert.SerializeObject(correctSchema, _serializerSettings); StringContent content = new StringContent(schemaJson, Encoding.UTF8, "application/json"); var response = await _domoHttpClient.Client.PostAsync(datasetUri, content); string responseMessage = await response.Content.ReadAsStringAsync(); var newDataset = JsonConvert.DeserializeObject <Dataset>(responseMessage); return(newDataset); }
/// <summary> /// Updates the dataset schema /// </summary> /// <param name="datasetId"></param> /// <param name="datasetSchema"></param> /// <returns>Http Response from Dataset Metadata request</returns> public async Task <HttpResponseMessage> UpdateDatasetMetadataAsync(string datasetId, IDatasetSchema schema) { string datasetUri = $"v1/datasets/{datasetId}"; _domoHttpClient.SetAcceptRequestHeaders("application/json"); DatasetSchema correctSchema = new DatasetSchema() { Description = schema.Description, Rows = schema.Rows, Name = schema.Name, Schema = schema.Schema }; string schemaJson = JsonConvert.SerializeObject(correctSchema, _serializerSettings); StringContent content = new StringContent(schemaJson, Encoding.UTF8, "application/json"); var response = await _domoHttpClient.Client.PutAsync(datasetUri, content); return(response); }