Example #1
0
        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);
        }
Example #2
0
 public IActionResult CreateThread(string shortName, [FromForm] CreateThreadFormModel formModel,
                                   [FromServices] IBoardService boardService)
 {
     boardService.CreateThread(formModel, shortName);
     return(RedirectToAction("ShowBoard", new { shortName = shortName }));
 }