public async Task <IActionResult> Create([Bind("UchPosobieId,UchPosobieVidId,GodIzdaniya,UchPosobieName,BiblOpisanie,UchPosobieFormaIzdaniyaId,FileModelId")] UchPosobie uchPosobie, IFormFile uploadedFile)
        {
            if (ModelState.IsValid && uploadedFile != null)
            {
                FileDataTypeEnum fileDataTypeEnum = FileDataTypeEnum.UchebnoePosobie;

                string uchPosobieVidName = (await _context.UchPosobieVid.SingleOrDefaultAsync(v => v.UchPosobieVidId == uchPosobie.UchPosobieVidId)).UchPosobieVidName;
                var    fileDataType      = await _context.FileDataTypes.SingleOrDefaultAsync(fdt => fdt.FileDataTypeName == uchPosobieVidName);

                if (fileDataType != null)
                {
                    fileDataTypeEnum = (FileDataTypeEnum)fileDataType.FileDataTypeId;
                }

                FileModel fileModel = await KisVuzDotNetCore2.Models.Files.Files.LoadFile(_context, _appEnvironment, uploadedFile, uchPosobie.UchPosobieName, fileDataTypeEnum);

                uchPosobie.FileModelId = fileModel.Id;
                _context.Add(uchPosobie);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FileModelId"] = new SelectList(_context.Files, "Id", "Id", uchPosobie.FileModelId);
            ViewData["UchPosobieFormaIzdaniyaId"] = new SelectList(_context.UchPosobieFormaIzdaniya, "UchPosobieFormaIzdaniyaId", "UchPosobieFormaIzdaniyaId", uchPosobie.UchPosobieFormaIzdaniyaId);
            ViewData["UchPosobieVidId"]           = new SelectList(_context.UchPosobieVid, "UchPosobieVidId", "UchPosobieVidId", uchPosobie.UchPosobieVidId);
            return(View(uchPosobie));
        }
        public async Task <IActionResult> Edit(int id, [Bind("UchPosobieId,UchPosobieVidId,GodIzdaniya,UchPosobieName,BiblOpisanie,UchPosobieFormaIzdaniyaId,FileModelId")] UchPosobie uchPosobie, IFormFile uploadedFile)
        {
            if (id != uchPosobie.UchPosobieId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                FileDataTypeEnum fileDataTypeEnum  = FileDataTypeEnum.UchebnoePosobie;
                string           uchPosobieVidName = (await _context.UchPosobieVid.SingleOrDefaultAsync(v => v.UchPosobieVidId == uchPosobie.UchPosobieVidId)).UchPosobieVidName;
                var fileDataType = await _context.FileDataTypes.SingleOrDefaultAsync(fdt => fdt.FileDataTypeName == uchPosobieVidName);

                if (fileDataType != null)
                {
                    fileDataTypeEnum = (FileDataTypeEnum)fileDataType.FileDataTypeId;
                }

                if (uploadedFile != null)
                {
                    FileModel fileModel = await KisVuzDotNetCore2.Models.Files.Files.LoadFile(_context, _appEnvironment, uploadedFile, uchPosobie.UchPosobieName, fileDataTypeEnum);

                    await _context.SaveChangesAsync();

                    int?fileToRemoveId = uchPosobie.FileModelId;
                    uchPosobie.FileModelId = fileModel.Id;
                    await _context.SaveChangesAsync();

                    KisVuzDotNetCore2.Models.Files.Files.RemoveFile(_context, _appEnvironment, fileToRemoveId);
                }

                try
                {
                    _context.Update(uchPosobie);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!UchPosobieExists(uchPosobie.UchPosobieId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FileModelId"] = new SelectList(_context.Files, "Id", "Id", uchPosobie.FileModelId);
            ViewData["UchPosobieFormaIzdaniyaId"] = new SelectList(_context.UchPosobieFormaIzdaniya, "UchPosobieFormaIzdaniyaId", "UchPosobieFormaIzdaniyaId", uchPosobie.UchPosobieFormaIzdaniyaId);
            ViewData["UchPosobieVidId"]           = new SelectList(_context.UchPosobieVid, "UchPosobieVidId", "UchPosobieVidId", uchPosobie.UchPosobieVidId);
            return(View(uchPosobie));
        }
        /// <summary>
        /// Добавление / редактирование учебного пособия
        /// </summary>
        /// <param name="uchPosobieEditViewModel"></param>
        /// <returns></returns>
        public async Task <IActionResult> UchPosobieCreateOrEdit(int id, string filter)
        {
            ViewBag.filter = filter;

            UchPosobie uchPosobie = await _uchPosobiyaRepository.GetUchPosobieByIdAsync(id);

            ViewBag.UchPosobieVidList           = _selectListRepository.GetSelectListUchPosobieVid();
            ViewBag.UchPosobieFormaIzdaniyaList = _selectListRepository.GetSelectListUchPosobieFormaIzdaniya();
            return(View(new UchPosobieEditViewModel {
                UchPosobie = uchPosobie
            }));
        }