示例#1
0
        public IActionResult CreatePortfolio(CreatePortfolioViewModel createVM)
        {
            //return Json(createVM);

            if (!ModelState.IsValid)
            {
                return(Json(BadRequest(ModelState)));
            }

            try
            {
                if (_context.Portfolio.Any(p => p.Title == createVM.Title))
                {
                    return(Json(StatusCode(409)));
                }
                if (!_context.Category.Any(c => c.CategoryId == Convert.ToInt32(createVM.CategoryId)))
                {
                    return(Json(StatusCode(404, "Category not found: " + createVM.CategoryId)));
                }

                //adding to database

                var portfolio = _map.Map <Models.Portfolio>(createVM);
                portfolio.DeveloperInitials = portfolio.DeveloperInitials.ToUpper();
                _context.Add(portfolio);
                _context.SaveChanges();

                if (createVM.Image == null || createVM.Image.Length == 0)
                {
                    return(Json(Content("file not selected")));
                }

                var dir      = _configuration.GetSection("Directory:Portfolio").Value;
                var category = _context.Category.FirstOrDefault(c => c.CategoryId == Convert.ToInt32(createVM.CategoryId));

                var path = Path.Combine(dir, category.Name, portfolio.PortfolioId.ToString(), createVM.Image.FileName);

                Directory.CreateDirectory(Path.GetDirectoryName(path));

                using (var stream = new FileStream(path, FileMode.Create))
                {
                    createVM.Image.CopyTo(stream);
                }

                portfolio.Image = category.Name + "/" + portfolio.PortfolioId.ToString() + "/" + portfolio.Image;
                _context.Update(portfolio);
                _context.SaveChanges();

                return(Json(StatusCode(201)));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public async Task <IActionResult> CreatePortfolio([FromBody] CreatePortfolioViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var portfolio = await _portfolioService.CreatePortfolio(model.UserId);

            if (portfolio == null)
            {
                return(NotFound("User doesn't exist"));
            }
            return(CreatedAtAction(nameof(GetByPortfolio), new { portfolio.PortfolioId }, portfolio));
        }