@using Management.Web.Shared.Components @inject CoursePlanner planner @code { [Parameter, EditorRequired] public IEnumerable Rubric { get; set; } = default!; [Parameter, EditorRequired] public Action> SetRubric { get; set; } = default!; private void addItem() { SetRubric( Rubric.Append(new RubricItem { Id=Guid.NewGuid().ToString(), Label="", Points=0 }) ); StateHasChanged(); } private void editItem(RubricItem newItem) { var newRubric = Rubric.Select(i => i.Id == newItem.Id ? newItem : i); SetRubric(newRubric); StateHasChanged(); } private void MoveUp(RubricItem item) { var rubricList = Rubric.ToList(); var index = rubricList.IndexOf(item); if(index > 0) { var previous = rubricList[index - 1]; rubricList[index - 1] = item; rubricList[index] = previous; SetRubric(rubricList); } } private void MoveDown(RubricItem item) { var rubricList = Rubric.ToList(); var index = rubricList.IndexOf(item); if(index < rubricList.Count()) { var next = rubricList[index + 1]; rubricList[index + 1] = item; rubricList[index] = next; SetRubric(rubricList); } } }
Rubric