public async Task <ActionResult> ItemReorder(int?id, bool isUp) { LessonItem selected = await db.LessonItems.FirstOrDefaultAsync(it => it.Id == id); if (selected == null) { return(View("Error")); } var selectedOrder = isUp? --selected.Order : ++selected.Order; var lessonId = selected.TeacherLessonId == null ? selected.StudentLessonId : selected.TeacherLessonId; LessonItem swapItem; if (selected.TeacherLessonId == null) { swapItem = await db.LessonItems.FirstOrDefaultAsync(it => !it.RecLog.DeletedDate.HasValue && it.StudentLessonId == lessonId && it.Order == selectedOrder); } else { swapItem = await db.LessonItems.FirstOrDefaultAsync(it => !it.RecLog.DeletedDate.HasValue && it.TeacherLessonId == lessonId && it.Order == selectedOrder); } if (swapItem == null) { return(View("Error")); } swapItem.Order = isUp ? ++swapItem.Order : --swapItem.Order; await db.SaveChangesAsync(); return(RedirectToAction("Details", "Lessons", new { @id = lessonId })); }
public async Task <ActionResult> Edit([Bind(Include = "Id,Name,IconURL,Description,IsPreviewable,ContentType,ContentURL,TeacherLessonId,StudentLessonId,RecLog")] LessonItem lessonItem) { if (ModelState.IsValid) { var selectedLessonItem = await db.LessonItems.FirstOrDefaultAsync(it => it.Id == lessonItem.Id); if (selectedLessonItem == null) { return(View("Error")); } selectedLessonItem.Name = lessonItem.Name; selectedLessonItem.Description = lessonItem.Description; selectedLessonItem.IsPreviewable = lessonItem.IsPreviewable; selectedLessonItem.ContentType = lessonItem.ContentType; selectedLessonItem.ContentURL = lessonItem.ContentURL; var IconUrl = ExtraContentType.Teacher.ToString(); selectedLessonItem.IconURL = ControllerHelper.ConvertToIconUrl(IconUrl); await db.SaveChangesAsync(); return(RedirectToAction("Details", "Lessons", new { @id = lessonItem.TeacherLessonId })); } return(View(lessonItem)); }
static void Main(string[] args) { if (args.Length < 5) { Console.WriteLine("Questions <culture> <filename> <year> <date> <title>"); return; } var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); var configuration = builder.Build(); var culture = CultureInfo.CreateSpecificCulture(args[0]); var input = args[1]; var year = int.Parse(args[2]); var date = DateTime.Parse(args[3]); var title = args[4]; var text = File.ReadAllText(input); var repository = Repository.Create(configuration["AzureStorage:ConnectionString"]); var parser = Program.GetParser(culture, year, repository); var lesson = parser.Parse(text); repository.UpsertLessonAsync(lesson).Wait(); Console.WriteLine(JsonConvert.SerializeObject(lesson)); var item = new LessonItem { Id = lesson.Id, Name = lesson.Name, ProposedDate = date.ToString(parser.Culture.DateTimeFormat.LongDatePattern) }; var currentStudy = repository.GetStudiesAsync(culture.Name).Result.FirstOrDefault(study => study.Title == title); if (currentStudy == null) { currentStudy = new Study { Culture = parser.Culture.Name, Title = title, Lessons = new[] { item }.ToList() }; } else { var currentLesson = currentStudy.Lessons.FirstOrDefault(l => l.Id == item.Id); if (currentLesson == null) { currentStudy.Lessons.Add(item); } else { currentStudy.Lessons.Remove(currentLesson); currentStudy.Lessons.Add(item); } } repository.UpsertStudyAsync(currentStudy).Wait(); }
// GET: StudentLessonItems //public ActionResult Index() //{ // var lessonItems = db.LessonItems.Include(l => l.TeacherLesson).Include(l => l.StudentLesson); // return View(lessonItems.ToList()); //} // GET: StudentLessonItems/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LessonItem lessonItem = db.LessonItems.Find(id); if (lessonItem == null) { return(HttpNotFound()); } return(View(lessonItem)); }
// GET: TeacherLessonItems/Delete/5 public async Task <ActionResult> Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LessonItem lessonItem = await db.LessonItems.FindAsync(id); if (lessonItem == null) { return(HttpNotFound()); } return(View(lessonItem)); }
public async Task <ActionResult> DeleteConfirmed(int id) { LessonItem lessonItem = db.LessonItems.Find(id); lessonItem.RecLog.DeletedDate = DateTime.Now; var lessonId = lessonItem.StudentLessonId; var deleteOrder = lessonItem.Order; var lessonList = db.LessonItems.Where(it => !it.RecLog.DeletedDate.HasValue && it.StudentLessonId == lessonId && it.Order > deleteOrder); foreach (var item in lessonList) { item.Order--; } await db.SaveChangesAsync(); return(RedirectToAction("Details", "Lessons", new { @id = lessonId })); }
public async Task <ActionResult> Create([Bind(Include = "Id,Name,IconURL,Description,IsPreviewable,ContentType,ContentURL,TeacherLessonId,StudentLessonId,RecLog")] LessonItem lessonItem) { if (ModelState.IsValid) { var lesson = await db.Lessons.FirstOrDefaultAsync(it => it.Id == lessonItem.StudentLessonId); if (lesson == null || lesson.RecLog.DeletedDate.HasValue) { return(View("Error")); } lessonItem.Order = lesson.StudentLessonItems.Where(it => !it.RecLog.DeletedDate.HasValue).Count() + 1; lessonItem.RecLog.CreatedDate = DateTime.Now; lessonItem.IconURL = ControllerHelper.ConvertToIconUrl(lessonItem.ContentType); db.LessonItems.Add(lessonItem); db.SaveChanges(); return(RedirectToAction("Details", "Lessons", new { @id = lessonItem.StudentLessonId })); } return(View(lessonItem)); }