public async Task <IActionResult> QCreate(ClassForQuestionCreatingModel ob)
        {
            if (ModelState.IsValid)
            {
                var tags = ob.tags.Where(x => x.IsSelected).Select(x => x.Id);

                /* Пока разрешим создание без тегов
                 * if (tags.Count() == 0)
                 *  ModelState.AddModelError(string.Empty, "вы должны указать как минимум один тег");
                 */

                Question obj        = new Question();
                var      StringTags = string.Join(";", tags);
                var      qa         = await _context.User.FirstAsync(x => x.UserName == User.Identity.Name);

                obj.CreationDate = DateTime.Now;
                obj.UpdateDate   = DateTime.Now;
                obj.Author       = User.Identity.Name;
                obj.TagIds       = StringTags;
                obj.IsPrivate    = true;
                obj.Definition   = ob.Definition;
                obj.Proof        = ob.Proof;
                obj.Title        = ob.Title;

                _context.Add(obj);
                await _context.SaveChangesAsync();


                qa.QuestionSet = string.IsNullOrEmpty(qa.QuestionSet) ? obj.Id + ";" : qa.QuestionSet + obj.Id + ";";
                _context.Update(qa);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(ob));
        }
示例#2
0
        private static Categories GetTopCategory(CommonDbContext dbContext, string name)
        {
            Categories cartoonCate = dbContext.Categories.FirstOrDefault(x => x.Name == name);

            if (cartoonCate == null)
            {
                cartoonCate = new Categories
                {
                    Id         = Guid.NewGuid(),
                    Name       = name,
                    CreateTime = DateTime.Now
                };
                dbContext.Add(cartoonCate);
                dbContext.SaveChanges();
            }
            return(cartoonCate);
        }