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; } }
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)); }