/// <summary> /// Sends data in json format to database via http post /// </summary> /// <param name="data"></param> /// <returns></returns> static async Task <HttpStatusCode> SendDataToDatabaseAsync(B1620_data_model data) { HttpResponseMessage response = await databaseClient.PostAsJsonAsync("datastore/", data); // Return response status code return(response.StatusCode); }
[ActionName("GetAsync")] // Attribute naming overcomes bug in aspnet core 3.1 public async Task <ActionResult <B1620_data_model> > GetDataAsync(string id) { // Retrieve data asynchronously via database service B1620_data_model data = await cosmosDbService.GetDataAsync(id); // Handle missing data if (data == null) { return(NotFound()); } // Return result else { return(data); } }
public async Task <ActionResult <B1620_data_model> > PostDataEntryAsync(B1620_data_model data) { // Post data to database try { await cosmosDbService.AddDataAsync(data); } catch (Exception ex) { Debug.WriteLine(ex); if (ex.Message.Contains("409")) { // Is OK if data is already in database return(Conflict(new { id = data.Id })); } } // Return result return(CreatedAtAction("Get", new { id = data.Id }, data)); }
/// <summary> /// Converts bmrs csv data into list of JSON data elements. /// </summary> /// <param name="bmrsData"></param> /// <returns></returns> static List <B1620_data_model> ReturnDataAsJSON(string bmrsData) { // Create empty list of data models List <B1620_data_model> b1620List = new List <B1620_data_model>(); // Create intermediate list of input strings? string[] lineSeparators = new string[] { "\n" }; string[] linesArray; linesArray = bmrsData.Split(lineSeparators, StringSplitOptions.None); List <string> linesList = linesArray.ToList <string>(); // Remove unwanted info for (int i = 0; i < linesList.Count; i++) { string line = linesList[i]; if (line.Contains("*")) { linesList.RemoveAt(i); } if (line.Contains("<EOF>")) { linesList.RemoveAt(i); } } List <string> resultsList = new List <string>(); foreach (var line in linesList) { resultsList.Add(line.Trim()); } // Iterate over each line in input string foreach (var line in resultsList) { try { if (!line.Contains("*")) { // Create a string array based on the line string[] lineSeparator = new string[] { "," }; string[] lineArray; lineArray = line.Split(lineSeparator, StringSplitOptions.None); // Create JSON object B1620_data_model dataElement = new B1620_data_model { DocType = lineArray[0], BusType = lineArray[1], ProType = lineArray[2], TimeId = lineArray[3], Quantity = lineArray[4], CurveType = lineArray[5], Resolution = lineArray[6], SetDate = lineArray[7], SetPeriod = lineArray[8], PowType = lineArray[9], ActFlag = lineArray[10], DocId = lineArray[11], DocRevNum = lineArray[12] }; // Clean raw data string powerType = lineArray[9]; powerType = powerType.Replace("\"", ""); string period = lineArray[8].ToString(); if (period.Length == 1) { period = "0" + period; } // Set Id parameter dataElement.Id = lineArray[7] + "-P" + period + "-" + powerType; // Add to list of data models b1620List.Add(dataElement); } } catch (Exception ex) { Console.WriteLine("\nException Caught trying to create JSON!"); Console.WriteLine("Message :{0} ", ex.Message); } } return(b1620List); }
/// <summary> /// Add data item to container. /// </summary> /// <returns></returns> public async Task AddDataAsync(B1620_data_model data) { await this.container.CreateItemAsync <B1620_data_model>(data, new PartitionKey(data.Id)); }