// Note: Used for testing portfolio file info save routine
        //[HttpPost("file")]
        public async Task <IActionResult> SavePortfolioFileInfo(PortfolioFileForCreationDto folioFileDto)
        {
            ////////////////////////////////////////
            // add file info portfolio file table //
            ////////////////////////////////////////
            PortfolioFile portfolioFileForCreation = new PortfolioFile();

            portfolioFileForCreation.FileName    = folioFileDto.FileName;
            portfolioFileForCreation.PortfolioId = folioFileDto.PortfolioId;

            var portfolio = await _repo.GetPortfolioById(folioFileDto.PortfolioId);

            var folioFile = _mapper.Map <PortfolioFile>(portfolioFileForCreation);

            folioFile.Portfolio = portfolio;

            _repo.Add <PortfolioFile>(folioFile);
            if (await _repo.SaveAll())
            {
                return(Ok());
            }
            // return CreatedAtRoute("GetPortfolioById", new {id=folioFileDto.PortfolioId}, portfolio);
            // return Ok("Upload Successful.");

            throw new Exception("Portfolio creation failed on save.");
            ///////////////////////////////////////////////
            // end of add file info portfolio file table //
            ///////////////////////////////////////////////
        }
Example #2
0
        private void loadPortfolio()
        {
            f                         = PortfolioFile.Inst;
            f.OnItemAdded            += new PortfolioFile.ItemHander(f_OnItemAdded);
            f.OnItemRemoved          += new PortfolioFile.ItemHander(f_OnItemRemoved);
            this.listView.ItemsSource = f.PortfolioList;

            this.txtItemTotal.Text = "共有股票条数:" + f.PortfolioList.Count;
        }
        public async Task <IActionResult> UploadFile(int id)
        {
            try
            {
                // for debug/test only
                // throw new Exception("UploadFile(id) -> " + id);

                // file upload routine //
                var    file               = Request.Form.Files[0];
                string folderName         = "assets/images";
                string webRootPath        = _hostingEnvironment.WebRootPath;
                string newPath            = Path.Combine(webRootPath, folderName);
                string fileName           = "";
                string uniqueGuidFilename = "";
                string fileExtension      = "";
                string fullPath           = "";

                if (!Directory.Exists(newPath))
                {
                    Directory.CreateDirectory(newPath);
                }
                if (file.Length > 0)
                {
                    // retrieve the original filename
                    fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');

                    // generate unique filename
                    uniqueGuidFilename = Convert.ToString(Guid.NewGuid());

                    // get the original file extension
                    fileExtension = Path.GetExtension(fileName);

                    //fullPath = Path.Combine(newPath, fileName);

                    // set the newly generated guid filename
                    fileName = uniqueGuidFilename + fileExtension;

                    fullPath = Path.Combine(newPath, fileName);

                    using (var stream = new FileStream(fullPath, FileMode.Create))
                    {
                        await file.CopyToAsync(stream);
                    }
                }
                // end of file upload routine //


                // add file info portfolio file table //
                PortfolioFile portfolioFileForCreation = new PortfolioFile();
                portfolioFileForCreation.FileName = fileName;


                if (id < 1)
                {
                    portfolioFileForCreation.PortfolioId = portfolioIdForUpload;
                }
                else
                {
                    portfolioFileForCreation.PortfolioId = id;
                }

                var portfolio = await _repo.GetPortfolioById(id);

                var folioFile = _mapper.Map <PortfolioFile>(portfolioFileForCreation);
                folioFile.Portfolio = portfolio;

                _repo.Add <PortfolioFile>(folioFile);
                if (await _repo.SaveAll())
                {
                    return(CreatedAtRoute("GetPortfolioById", new { id = id }, portfolio));
                }
                // return Ok("Upload Successful.");

                throw new Exception("Portfolio creation failed on save.");
                // end of add file info portfolio file table //
            }
            catch (System.Exception ex)
            {
                return(BadRequest("Upload Failed: " + ex.Message));
                // throw new Exception("Upload Failed: " + ex.Message);
            }
        }