public async Task <ActionResult> CreateArticle(DTOArticleEdition article) { try { var claimsUserEmail = HttpContext.User.Identity.Name; var user = _userRepo.GetUserByEmail(claimsUserEmail); var imagePath = "wwwroot/ArticleImages/"; var newArticle = DTOArticleEditionToArticle(article, user); string filename = null; string extension = null; if (article.ImageFile != null) { filename = Path.GetFileName(article.ImageFile.FileName); extension = Path.GetExtension(article.ImageFile.FileName); } if (filename == null || extension == null) { newArticle.ImageSource = null; } else { var newFilename = Path.GetRandomFileName() + extension; string path = Path.Combine(imagePath, newFilename); if (!Directory.Exists(imagePath)) { Directory.CreateDirectory(imagePath); } while (System.IO.File.Exists(path)) { newFilename = Path.Combine(Path.GetRandomFileName(), extension); path = Path.Combine(imagePath, newFilename); } using (var fileStream = new FileStream(path, FileMode.Create)) { await article.ImageFile.CopyToAsync(fileStream); } newArticle.ImageSource = "./ArticleImages/" + newFilename; } var result = await _articleRepo.Insert(newArticle); if (result != null) { return(RedirectToAction("Index")); } } catch (Exception ex) { _logger.LogError("CONTROLLER ARTICLE -- CreateArticle() -- Error : ", ex); return(BadRequest()); } return(View("Create")); }
public async Task <ActionResult> EditArticleView(DTOArticleEdition article) { var email = HttpContext.User.Identity.Name; var user = _userRepo.GetUserByEmail(email); var userArticleList = await _articleRepo.GetArticleBySellerId(user.Id); ViewData["UserArticleList"] = userArticleList; return(View("Edit")); }
/// <summary> /// converter /// </summary> /// <param name="article"></param> /// <param name="user"></param> /// <returns></returns> public static DTOArticle DTOArticleEditionToArticle(DTOArticleEdition article, DTOUser user) { var newArticle = new DTOArticle(); newArticle.Brand = article.Brand; newArticle.Category = article.Category; newArticle.Condition = article.Condition; newArticle.State = "Free"; newArticle.CreatedAt = DateTime.Now; newArticle.Description = article.Description; newArticle.ImageSource = article.ImageSource; newArticle.Name = article.Name; newArticle.Price = article.Price; newArticle.SellerId = user.Id; newArticle.Sex = article.Sex; newArticle.User = DtoUserToDtoUserPublic(user); return(newArticle); }