public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } if (UmlModel.UmlModelFile == null || UmlModel.UmlModelFile.Length <= 0) { return(Page()); } var file = UmlModel.UmlModelFile; var fileName = UmlModel.MddApplicationId.ToString(); var path = Path.Combine( Directory.GetCurrentDirectory(), "_xmi", fileName); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var fileInfo = new FileInfo(file.FileName); var filePath = Path.Combine(path, $"{fileName}.{fileInfo.Extension}"); using (var stream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(stream); } _context.UmlModels.Add(UmlModel); await _context.SaveChangesAsync(); await _umlParser.XmiParserAsync(UmlModel, filePath); return(RedirectToPage("./Index")); }