/// <summary>
        /// Удаляет образовательную программу,
        /// если она доступна пользователю
        /// </summary>
        /// <param name="eduProgram"></param>
        /// <param name="userName"></param>
        public async Task RemoveEduProgramByUserNameAsync(EduProgram eduProgram, string userName)
        {
            var p = await GetEduProgramByUserNameAsync(eduProgram.EduProgramId, userName);

            if (p != null && p.Equals(eduProgram))
            {
                _context.EduPrograms.Remove(eduProgram);
                Files.Files.RemoveFile(_context, _appEnvironment, eduProgram?.FileModelId);
                await _context.SaveChangesAsync();
            }
        }
        public async Task <IActionResult> Create([Bind("EduProgramId,EduProfileId,EduProgramPodgId,IsAdopt,UsingElAndDistEduTech,DateUtverjd")] EduProgram eduProgram,
                                                 IFormFile uploadedFile,
                                                 int[] eduFormIds,
                                                 int[] eduYearIds)
        {
            if (ModelState.IsValid && uploadedFile != null)
            {
                FileModel fileModel = await KisVuzDotNetCore2.Models.Files.Files.LoadFile(_context, _appEnvironment, uploadedFile, "Образовательная программа", FileDataTypeEnum.OPOP);

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

                if (eduFormIds != null)
                {
                    var eduProgramEduFormList = new List <EduProgramEduForm>();
                    foreach (int eduFormId in eduFormIds)
                    {
                        EduProgramEduForm eduProgramEduForm = new EduProgramEduForm
                        {
                            EduProgramId = eduProgram.EduProgramId,
                            EduFormId    = eduFormId
                        };
                        eduProgramEduFormList.Add(eduProgramEduForm);
                    }
                    await _context.EduProgramEduForms.AddRangeAsync(eduProgramEduFormList);

                    await _context.SaveChangesAsync();
                }

                if (eduYearIds != null)
                {
                    var eduProgramEduYearList = new List <EduProgramEduYear>();
                    foreach (int eduYearId in eduYearIds)
                    {
                        EduProgramEduYear eduProgramEduYear = new EduProgramEduYear
                        {
                            EduProgramId = eduProgram.EduProgramId,
                            EduYearId    = eduYearId
                        };
                        eduProgramEduYearList.Add(eduProgramEduYear);
                    }
                    await _context.EduProgramEduYears.AddRangeAsync(eduProgramEduYearList);

                    await _context.SaveChangesAsync();
                }

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EduProfileId"]     = new SelectList(_context.EduProfiles.Include(p => p.EduNapravl.EduUgs.EduLevel), "EduProfileId", "GetEduProfileFullName", eduProgram.EduProfileId);
            ViewData["EduProgramPodgId"] = new SelectList(_context.EduProgramPodg, "EduProgramPodgId", "EduProgramPodgName", eduProgram.EduProgramPodgId);
            //ViewData["FileModelId"] = new SelectList(_context.Files, "Id", "Id", eduProgram.FileModelId);
            return(View(eduProgram));
        }
        public async Task <IActionResult> EduProgramEdit([Bind("EduProgramId,EduProfileId,EduProgramPodgId,IsAdopt,UsingElAndDistEduTech,FileModelId,DateUtverjd")] EduProgram eduProgram,
                                                         IFormFile uploadedFile,
                                                         int[] eduFormIds,
                                                         int[] eduYearBeginningTrainingIds,
                                                         int[] eduYearIds)
        {
            if (ModelState.IsValid)
            {
                await _metodKomissiyaRepository.UpdateEduProgramByUserNameAsync(User.Identity.Name, eduProgram, uploadedFile, eduFormIds, eduYearBeginningTrainingIds, eduYearIds);

                return(RedirectToAction(nameof(EduPrograms)));
            }
            ViewData["EduProfileId"]     = _selectListRepository.GetSelectListEduProfileFullNames(eduProgram.EduProfileId);
            ViewData["EduProgramPodgId"] = _selectListRepository.GetSelectListEduProgramPodg(eduProgram.EduProgramPodgId);

            return(View(eduProgram));
        }
Beispiel #4
0
        public async Task <bool> UploadPUDToDatabase(IFormFile file)
        {
            _context.Database.SetCommandTimeout(100000);

            List <PUDInfoViewModel> pudModels = this.ReadPUD(file);
            bool success = true;

            var all_puds = await _context.PUDs.Include(i => i.EduProgram).Include(i => i.Department).ToListAsync();

            var all_eduprog = await _context.EduPrograms.Include(i => i.Faculty).ToListAsync();

            var all_depart = await _context.Departments.ToListAsync();

            var all_faculty = await _context.Faculties.Include(i => i.Campus).ToListAsync();

            var all_campus = await _context.Campuses.ToListAsync();

            foreach (PUDInfoViewModel model in pudModels)
            {
                PUD pud = new PUD()
                {
                    LinkId         = model.LinkID,
                    EducationStage = model.EducationStage,
                    CourseName     = model.Name,
                    Language       = model.Language,
                    Details        = model.Details
                };

                var campus = all_campus.Find(item => item.Name == model.Campus);
                if (campus == null)
                {
                    campus = new Campus {
                        Name = model.Campus
                    };
                    _context.Add(campus);
                }

                var falulty = all_faculty.Find(item => item.Name == model.Faculty);
                if (falulty == null)
                {
                    falulty = new Faculty {
                        Name = model.Faculty, Campus = campus
                    };
                    _context.Add(falulty);
                }

                var edu_prog = all_eduprog.Find(item => item.Name == model.OP);
                if (edu_prog == null)
                {
                    edu_prog = new EduProgram {
                        Name = model.OP, Faculty = falulty
                    };
                    _context.Add(edu_prog);
                }
                pud.EduProgram = edu_prog;

                var department = all_depart.Find(item => item.Name == model.Department);
                if (department == null)
                {
                    department = new Department {
                        Name = model.Department
                    };
                    _context.Add(department);
                }
                pud.Department = department;

                var db_pud = all_puds.Find(item =>
                {
                    return(item.CourseName == pud.CourseName &&
                           item.EduProgram.Name == pud.EduProgram.Name &&
                           item.EducationStage == pud.EducationStage &&
                           item.EduProgram.Faculty.Name == pud.EduProgram.Faculty.Name &&
                           item.EduProgram.Faculty.Campus.Name == pud.EduProgram.Faculty.Campus.Name);
                });
                if (db_pud == null)
                {
                    _context.Add(pud);
                }
            }

            await _context.SaveChangesAsync();

            return(success);
        }
        /// <summary>
        /// Обновляет образовательную программу, если она доступна пользователю
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="eduProgram"></param>
        /// <param name="uploadedFile"></param>
        /// <param name="eduFormIds"></param>
        /// <param name="eduYearIds"></param>
        public async Task UpdateEduProgramByUserNameAsync(string userName, EduProgram eduProgram, IFormFile uploadedFile, int[] eduFormIds, int[] eduYearBeginningTrainingIds, int[] eduYearIds)
        {
            ///////
            try
            {
                if (uploadedFile != null)
                {
                    FileModel fileModel = await KisVuzDotNetCore2.Models.Files.Files.LoadFile(_context, _appEnvironment, uploadedFile, "Образовательная программа", FileDataTypeEnum.OPOP);

                    await _context.SaveChangesAsync();

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

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

                _context.Update(eduProgram);
                await _context.SaveChangesAsync();

                if (eduFormIds != null)
                {
                    _context.EduProgramEduForms.RemoveRange(_context.EduProgramEduForms.Where(f => f.EduProgramId == eduProgram.EduProgramId));
                    await _context.SaveChangesAsync();

                    var eduProgramEduFormList = new List <EduProgramEduForm>();
                    foreach (int eduFormId in eduFormIds)
                    {
                        EduProgramEduForm eduProgramEduForm = new EduProgramEduForm
                        {
                            EduProgramId = eduProgram.EduProgramId,
                            EduFormId    = eduFormId
                        };
                        eduProgramEduFormList.Add(eduProgramEduForm);
                    }
                    await _context.EduProgramEduForms.AddRangeAsync(eduProgramEduFormList);

                    await _context.SaveChangesAsync();
                }

                if (eduYearBeginningTrainingIds != null)
                {
                    _context.EduProgramEduYearBeginningTraining.RemoveRange(_context.EduProgramEduYearBeginningTraining.Where(f => f.EduProgramId == eduProgram.EduProgramId));
                    await _context.SaveChangesAsync();

                    var eduProgramEduYearBeginningTrainingList = new List <EduProgramEduYearBeginningTraining>();
                    foreach (int eduYearBeginningTrainingId in eduYearBeginningTrainingIds)
                    {
                        EduProgramEduYearBeginningTraining eduProgramEduYearBeginningTraining = new EduProgramEduYearBeginningTraining
                        {
                            EduProgramId = eduProgram.EduProgramId,
                            EduYearBeginningTrainingId = eduYearBeginningTrainingId
                        };
                        eduProgramEduYearBeginningTrainingList.Add(eduProgramEduYearBeginningTraining);
                    }
                    await _context.EduProgramEduYearBeginningTraining.AddRangeAsync(eduProgramEduYearBeginningTrainingList);

                    await _context.SaveChangesAsync();
                }

                if (eduYearIds != null)
                {
                    _context.EduProgramEduYears.RemoveRange(_context.EduProgramEduYears.Where(f => f.EduProgramId == eduProgram.EduProgramId));
                    await _context.SaveChangesAsync();

                    var eduProgramEduYearList = new List <EduProgramEduYear>();
                    foreach (int eduYearId in eduYearIds)
                    {
                        EduProgramEduYear eduProgramEduYear = new EduProgramEduYear
                        {
                            EduProgramId = eduProgram.EduProgramId,
                            EduYearId    = eduYearId
                        };
                        eduProgramEduYearList.Add(eduProgramEduYear);
                    }
                    await _context.EduProgramEduYears.AddRangeAsync(eduProgramEduYearList);

                    await _context.SaveChangesAsync();
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }
            ///////
        }
        public async Task <IActionResult> Edit(int id, [Bind("EduProgramId,EduProfileId,EduProgramPodgId,IsAdopt,UsingElAndDistEduTech,FileModelId,DateUtverjd")] EduProgram eduProgram,
                                               IFormFile uploadedFile,
                                               int[] eduFormIds,
                                               int[] eduYearIds)
        {
            if (id != eduProgram.EduProgramId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (uploadedFile != null)
                    {
                        FileModel fileModel = await KisVuzDotNetCore2.Models.Files.Files.LoadFile(_context, _appEnvironment, uploadedFile, "Образовательная программа", FileDataTypeEnum.OPOP);

                        await _context.SaveChangesAsync();

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

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

                    _context.Update(eduProgram);
                    await _context.SaveChangesAsync();

                    if (eduFormIds != null)
                    {
                        _context.EduProgramEduForms.RemoveRange(_context.EduProgramEduForms.Where(f => f.EduProgramId == eduProgram.EduProgramId));
                        await _context.SaveChangesAsync();

                        var eduProgramEduFormList = new List <EduProgramEduForm>();
                        foreach (int eduFormId in eduFormIds)
                        {
                            EduProgramEduForm eduProgramEduForm = new EduProgramEduForm
                            {
                                EduProgramId = eduProgram.EduProgramId,
                                EduFormId    = eduFormId
                            };
                            eduProgramEduFormList.Add(eduProgramEduForm);
                        }
                        await _context.EduProgramEduForms.AddRangeAsync(eduProgramEduFormList);

                        await _context.SaveChangesAsync();
                    }

                    if (eduYearIds != null)
                    {
                        _context.EduProgramEduYears.RemoveRange(_context.EduProgramEduYears.Where(f => f.EduProgramId == eduProgram.EduProgramId));
                        await _context.SaveChangesAsync();

                        var eduProgramEduYearList = new List <EduProgramEduYear>();
                        foreach (int eduYearId in eduYearIds)
                        {
                            EduProgramEduYear eduProgramEduYear = new EduProgramEduYear
                            {
                                EduProgramId = eduProgram.EduProgramId,
                                EduYearId    = eduYearId
                            };
                            eduProgramEduYearList.Add(eduProgramEduYear);
                        }
                        await _context.EduProgramEduYears.AddRangeAsync(eduProgramEduYearList);

                        await _context.SaveChangesAsync();
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EduProgramExists(eduProgram.EduProgramId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EduProfileId"]     = new SelectList(_context.EduProfiles.Include(p => p.EduNapravl.EduUgs.EduLevel), "EduProfileId", "GetEduProfileFullName", eduProgram.EduProfileId);
            ViewData["EduProgramPodgId"] = new SelectList(_context.EduProgramPodg, "EduProgramPodgId", "EduProgramPodgName", eduProgram.EduProgramPodgId);
            //ViewData["FileModelId"] = new SelectList(_context.Files, "Id", "Id", eduProgram.FileModelId);
            return(View(eduProgram));
        }