示例#1
0
        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"));
        }