/// <summary> /// Возвращает объект аннотации дисциплины. /// Если eduAnnotationId равно null, /// создаёт и возвращает новый объект /// </summary> /// <param name="eduPlanId"></param> /// <param name="disciplineId"></param> /// <param name="eduAnnotationId"></param> /// <param name="userName"></param> /// <returns></returns> public async Task <EduAnnotation> GetEduAnnotationByUserNameAsync(int eduPlanId, int disciplineId, int?eduAnnotationId, string userName) { var discipline = await GetDisciplineByUserNameAsync(eduPlanId, disciplineId, userName); if (discipline == null) { return(null); } EduAnnotation eduAnnotation = new EduAnnotation(); eduAnnotation.Discipline = discipline; eduAnnotation.DisciplineId = discipline.DisciplineId; if (eduAnnotationId == null || eduAnnotationId == 0) { return(eduAnnotation); } eduAnnotation = discipline.EduAnnotations.FirstOrDefault(a => a.EduAnnotationId == eduAnnotationId); if (eduAnnotation == null) { return(null); } return(eduAnnotation); }
/// <summary> /// Удаление аннотации учебной дисциплины /// </summary> /// <param name="EduPlanId"></param> /// <param name="DisciplineId"></param> /// <param name="EduAnnotationId"></param> /// <returns></returns> public async Task <IActionResult> EduAnnotationRemove(int EduPlanId, int DisciplineId, int EduAnnotationId) { EduAnnotation eduAnnotation = await _metodKomissiyaRepository.GetEduAnnotationByUserNameAsync(EduPlanId, DisciplineId, EduAnnotationId, User.Identity.Name); if (eduAnnotation == null) { return(NotFound()); } return(View(eduAnnotation)); }
public async Task <IActionResult> EduAnnotationCreateOrEdit(int EduPlanId, int DisciplineId, int?EduAnnotationId, IFormFile uploadedFile) { EduAnnotation eduAnnotation = await _metodKomissiyaRepository.GetEduAnnotationByUserNameAsync(EduPlanId, DisciplineId, EduAnnotationId, User.Identity.Name); if (eduAnnotation != null) { await _metodKomissiyaRepository.UpdateEduAnnotationAsync(eduAnnotation, uploadedFile); } return(RedirectToAction(nameof(EduPlanPreview), new { id = EduPlanId })); }
/// <summary> /// Удаляет аннотацию, если она доступна пользователю /// </summary> /// <param name="eduPlanId"></param> /// <param name="disciplineId"></param> /// <param name="eduAnnotationId"></param> /// <param name="userName"></param> /// <returns></returns> public async Task RemoveEduAnnotationByUserNameAsync(int eduPlanId, int disciplineId, int eduAnnotationId, string userName) { EduAnnotation eduAnnotation = await GetEduAnnotationByUserNameAsync(eduPlanId, disciplineId, eduAnnotationId, userName); if (eduAnnotation == null) { return; } await _eduPlanRepository.RemoveEduAnnotationAsync(eduAnnotation); }
/// <summary> /// Добавляет к аннотации загруженный файл /// </summary> /// <param name="eduAnnotation"></param> /// <param name="uploadedFile"></param> /// <returns></returns> public async Task <EduAnnotation> UpdateEduAnnotationAsync(EduAnnotation eduAnnotation, IFormFile uploadedFile) { if (eduAnnotation == null || uploadedFile == null) { return(null); } eduAnnotation = await _eduPlanRepository.UpdateEduAnnotationAsync(eduAnnotation, uploadedFile); return(eduAnnotation); }
public async Task <IActionResult> Edit(int id, [Bind("EduAnnotationId,DisciplineId,FileModelId")] EduAnnotation eduAnnotation, IFormFile uploadedFile, int?EduPlanId) { if (id != eduAnnotation.EduAnnotationId) { return(NotFound()); } if (ModelState.IsValid) { if (uploadedFile != null) { FileModel fileModel = await KisVuzDotNetCore2.Models.Files.Files.LoadFile(_context, _appEnvironment, uploadedFile, "Аннотация", FileDataTypeEnum.Annotation); await _context.SaveChangesAsync(); int?fileToRemoveId = eduAnnotation.FileModelId; eduAnnotation.FileModelId = fileModel.Id; await _context.SaveChangesAsync(); KisVuzDotNetCore2.Models.Files.Files.RemoveFile(_context, _appEnvironment, fileToRemoveId); } try { _context.Update(eduAnnotation); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EduAnnotationExists(eduAnnotation.EduAnnotationId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index), new { EduPlanId })); } ViewData["DisciplineId"] = new SelectList(_context.Disciplines, "DisciplineId", "DisciplineId", eduAnnotation.DisciplineId); ViewData["FileModelId"] = new SelectList(_context.Files, "Id", "Id", eduAnnotation.FileModelId); return(View(eduAnnotation)); }
public async Task <IActionResult> Create([Bind("EduAnnotationId,DisciplineId,FileModelId")] EduAnnotation eduAnnotation, IFormFile uploadedFile, int?EduPlanId) { if (ModelState.IsValid && uploadedFile != null) { FileModel fileModel = await KisVuzDotNetCore2.Models.Files.Files.LoadFile(_context, _appEnvironment, uploadedFile, "Аннотация", FileDataTypeEnum.Annotation); eduAnnotation.FileModelId = fileModel.Id; _context.Add(eduAnnotation); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index), new { EduPlanId })); } var eduPlans = _context.EduPlans .Where(p => p.EduPlanId == EduPlanId) .Include(p => p.BlokDiscipl) .ThenInclude(bd => bd.BlokDisciplChast) .ThenInclude(bdc => bdc.Disciplines) .ThenInclude(d => d.DisciplineName); List <Discipline> disciplinesByEduPlan = new List <Discipline>(); foreach (var plan in eduPlans) { foreach (var blokDiscipl in plan.BlokDiscipl) { foreach (var blokDisciplChast in blokDiscipl.BlokDisciplChast) { foreach (var discipline in blokDisciplChast.Disciplines) { disciplinesByEduPlan.Add(discipline); } } } } ViewData["DisciplineId"] = new SelectList(disciplinesByEduPlan, "DisciplineId", "DisciplineName.DisciplineNameName"); ViewBag.EduPlanId = EduPlanId; return(View(eduAnnotation)); }