/// <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);
        }
Example #6
0
        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));
        }
Example #7
0
        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));
        }