public async Task <IActionResult> Edit(int id, [Bind("Id,RubricCriteriaId,CriteriaText,ScoreValue")] RubricCriteriaElement rubricCriteriaElement)
        {
            if (id != rubricCriteriaElement.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(rubricCriteriaElement);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RubricCriteriaElementExists(rubricCriteriaElement.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(rubricCriteriaElement));
        }
        public async Task <IActionResult> Create([Bind("Id,RubricCriteriaId,CriteriaText,ScoreValue")] RubricCriteriaElement rubricCriteriaElement)
        {
            if (ModelState.IsValid)
            {
                _context.Add(rubricCriteriaElement);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(rubricCriteriaElement));
        }
Ejemplo n.º 3
0
        public static void ParseRubricContent(UploadRubricContent rubricContentData, AppDbContext context)
        {
            IEnumerable <string> content = Upload.ReadAsList(rubricContentData.Upload);
            string rubricInfo            = content.First();
            var    matchedRubric         = getRubricName(rubricInfo, context);

            content = content.Skip(1).ToList();
            foreach (string line in content)
            {
                // split csv with double quote having double quote "" in column
                var            column = Regex.Split(line, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
                RubricCriteria crit   = new RubricCriteria {
                    CriteriaText = column[0]
                };
                List <RubricCriteriaElement> elementList = new List <RubricCriteriaElement>();
                for (int i = column.Length - 1; i > 0; i--)
                {
                    if (column[i].Length == 0)
                    {
                        continue;                        // skip empty column which is ,,
                    }
                    var critElement = new RubricCriteriaElement {
                        CriteriaText = column[i], ScoreValue = 5 - i
                    };                                                                                          // someone please help with this. I dont know why my code worked
                    elementList.Add(critElement);
                }

                var existingCriteria = context.RubricCriteria.Include(criteria => criteria.RubricCriteriaElements).Where(criteria => criteria.CriteriaText.Equals(crit.CriteriaText)).FirstOrDefault();
                if (existingCriteria != null)
                {
                    existingCriteria.RubricId = matchedRubric.Id;
                    existingCriteria.RubricCriteriaElements = elementList;
                }
                else
                {
                    crit.RubricId = matchedRubric.Id;
                    crit.RubricCriteriaElements = elementList;
                    context.Add(crit);
                }

                context.SaveChanges();
            }
        }