public async Task <HttpResponseMessage> UploadDataFile([FromUri] Guid objectId) { var obj = await _dbContext.HierarchyObjectContext.Entities.FirstOrDefaultAsync(o => o.Id == objectId); if (obj == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Object not found")); } if (HttpContext.Current.Request.Files.Count > 0) { foreach (string fileName in HttpContext.Current.Request.Files) { var file = HttpContext.Current.Request.Files[fileName]; if (file.ContentType == "application/vnd.ms-excel" || file.ContentType == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { try { var parser = new SacmigFileParser(); var data = parser.Parse(file.InputStream); //check characteristics var characteristicsNames = data.GetCharacteristicsNames(); var serviceDescription = "synced from Sacmig file format"; var characteristicsMap = await MapCharateristicsNamesAndCreateWhetherDoesNotExist(characteristicsNames, serviceDescription); using (var transaction = _dbContext.BeginTransaction()) { try { //save values foreach (var characteristic in characteristicsNames) { foreach (var value in data.GetCharacteristicValues(characteristic)) { value.CharacteristicId = characteristicsMap[characteristic]; value.HierarchyObjectId = objectId; value.OwnerId = User.Identity.Name; await _dbContext.CharacteristicValueDbSetManager.CreateAsync(value); } } transaction.Commit(); } catch { transaction.Rollback(); } } } catch { continue; } } } } return(Request.CreateResponse(HttpStatusCode.OK)); }
public void GetDataTest() { using (var openFileDialog = new OpenFileDialog()) { if (openFileDialog.ShowDialog() == DialogResult.OK) { SacmigFileData data; using (var stream = File.Open(openFileDialog.FileName, FileMode.Open)) { var parser = new SacmigFileParser(); data = parser.Parse(stream); } var sz = JsonConvert.SerializeObject(data); using (var sw = new StreamWriter($"{openFileDialog.SafeFileName}.json")) { sw.WriteLine(sz); } } } }