public Guid CreateThread(CreateThreadFormModel formModel, string boardShortName) { var board = dbContext.Boards.FirstOrDefault(b => b.ShortName == boardShortName); var thread = new Thread(); thread.Id = Guid.NewGuid(); thread.Board = board; thread.Content = formModel.Content; thread.Title = formModel.Title; thread.UserName = formModel.Username; thread.Attachments = new List <Attachment>(); var uploadPath = hostingEnvironment.ContentRootPath + "/wwwroot/uploads/"; foreach (var attachment in formModel.Attachments) { var a = new Attachment(); a.Id = Guid.NewGuid(); if (!attachment.ContentType.Contains("image") || !attachment.FileName.Contains(".")) { continue; } a.Ext = attachment.FileName.Split(".").Last(); var fileStream = new FileStream(uploadPath + a.Id + "." + a.Ext, FileMode.Create); attachment.CopyTo(fileStream); thread.Attachments.Add(a); dbContext.Add(a); } dbContext.Add(thread); dbContext.SaveChanges(); return(thread.Id); }
public IActionResult CreateThread(string shortName, [FromForm] CreateThreadFormModel formModel, [FromServices] IBoardService boardService) { boardService.CreateThread(formModel, shortName); return(RedirectToAction("ShowBoard", new { shortName = shortName })); }