//Should implement manual mapper
        internal static async Task <XmlFile> MapFromXmlFileAddViewModelAsync(XmlFileAddViewModel xmlFileAddViewModel)
        {
            XmlFile xmlFile = new XmlFile();

            if (xmlFileAddViewModel.PreviousFileId != null)
            {
                xmlFile.PreviousFileId = xmlFileAddViewModel.PreviousFileId;
            }
            if (xmlFileAddViewModel.XmlFile.Length > 0)
            {
                xmlFile.FileContent = await Adapter.ReadAsStringAsync(xmlFileAddViewModel.XmlFile);

                xmlFile.FileRealName = xmlFileAddViewModel.XmlFile.FileName;
                return(xmlFile);
            }
            else
            {
                return(null);
            }
        }
        public async Task <IActionResult> Create(XmlFileAddViewModel xmlFileAddViewModel)
        {
            if (ModelState.IsValid)
            {
                //Convert to xmlfiile model with mapper, then save the model to db
                XmlFile xmlFile = await XmlFileMapper.MapFromXmlFileAddViewModelAsync(xmlFileAddViewModel);

                if (xmlFile.PreviousFileId != null)
                {
                    xmlFile.PreviousSignedFile = await _context.XmlFiles.FindAsync(xmlFile.PreviousFileId);
                }
                xmlFile.Signer = await _userManager.GetUserAsync(User);

                _context.XmlFiles.Add(xmlFile);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["PreviousFileId"] = new SelectList(_context.XmlFiles, "Id", "FileContent", xmlFileAddViewModel.PreviousFileId);
            return(View(xmlFileAddViewModel));
        }