/// <summary> /// Загружает файл монографии (с заменой ранее загруженного) /// </summary> /// <param name="patent"></param> /// <param name="uploadedFile"></param> /// <returns></returns> public async Task <FileModel> UploadMonografAsync(Monograf monograf, IFormFile uploadFile) { if (monograf == null || uploadFile == null) { return(null); } FileModel newFileModel = await UploadFileAsync(uploadFile, "Монография", FileDataTypeEnum.Monografiya); if (newFileModel != null) { int?existingFileModelId = monograf.FileModelId; monograf.FileModelId = newFileModel.Id; monograf.FileModel = newFileModel; await _context.SaveChangesAsync(); // Проверка наличия ранее загруженного файла if (existingFileModelId > 0) { await RemoveFileAsync(existingFileModelId); await _context.SaveChangesAsync(); } } else { return(null); } return(monograf.FileModel); }
/// <summary> /// Обновляет монографию пользователя userName /// </summary> /// <param name="monografEntry"></param> /// <param name="monograf"></param> public void UpdateMonograf(Monograf monografEntry, Monograf monograf) { monografEntry.MonografName = monograf.MonografName; monografEntry.FileModelId = monograf.FileModelId; monografEntry.YearId = monograf.YearId; monografEntry.RowStatusId = monograf.RowStatusId; //////// /// + списки направлений, авторов и пр. if (monograf.MonografNirSpecials != null && monograf.MonografNirSpecials.Count > 0) { foreach (var monografNirSpecial in monograf.MonografNirSpecials) { bool isExists = false; foreach (var monografNirSpecialEntry in monografEntry.MonografNirSpecials) { if (monografNirSpecialEntry.NirSpecialId == monografNirSpecial.NirSpecialId) { isExists = true; } } if (!isExists) { monografEntry.MonografNirSpecials.Add(monografNirSpecial); } } } if (monograf.MonografAuthors != null && monograf.MonografAuthors.Count > 0) { foreach (var monografAuthor in monograf.MonografAuthors) { bool isExists = false; foreach (var monografAuthorEntry in monografEntry.MonografAuthors) { if (monografAuthorEntry.MonografAuthorId == monografAuthor.MonografAuthorId) { isExists = true; } } if (!isExists) { monografEntry.MonografAuthors.Add(monografAuthor); } } decimal firstAuthorPart = 1; for (int i = 1; i < monografEntry.MonografAuthors.Count; i++) { firstAuthorPart -= monografEntry.MonografAuthors[i].AuthorPart; } if (firstAuthorPart < 0) { firstAuthorPart = 0; } monografEntry.MonografAuthors[0].AuthorPart = firstAuthorPart; } _context.SaveChanges(); }
public IActionResult DeleteMonografConfirmed(Monograf monograf) { if (monograf == null) { return(NotFound()); } var monografEntry = _userProfileRepository.RemoveMonograf(monograf.MonografId, User.Identity.Name); return(RedirectToAction("Monografs")); }
/// <summary> /// Возвращает монографию пользователя userName /// </summary> /// <param name="id"></param> /// <param name="userName"></param> /// <returns></returns> public Monograf GetMonograf(int?id, string userName) { Monograf monograf = new Monograf(); if (id == null) { return(monograf); } List <Monograf> userMonografs = GetMonografs(userName); monograf = userMonografs.SingleOrDefault(a => a.MonografId == id); return(monograf); }
public IActionResult CreateOrEditMonograf(int?id) { Monograf monograf = _userProfileRepository.GetMonograf(id, User.Identity.Name); if (monograf == null) { return(NotFound()); } ViewBag.Authors = _selectListRepository.GetSelectListAuthors(); ViewBag.Years = _selectListRepository.GetSelectListYears(monograf.YearId); ViewBag.NirSpecials = _selectListRepository.GetSelectListNirSpecials(); ViewBag.NirTemas = _selectListRepository.GetSelectListNirTemas(); return(View(monograf)); }
// GET: Monografs/CreateOrEdit public IActionResult CreateOrEdit(int?id) { Monograf monograf = _monografRepository.GetMonograf(id); if (monograf == null) { return(NotFound()); } ViewBag.Authors = _selectListRepository.GetSelectListAuthors(); ViewBag.Years = _selectListRepository.GetSelectListYears(monograf.YearId); ViewBag.NirSpecials = _selectListRepository.GetSelectListNirSpecials(); ViewBag.NirTemas = _selectListRepository.GetSelectListNirTemas(); //ViewData["FileModelId"] = new SelectList(_context.Files, "Id", "Name"); //ViewData["RowStatusId"] = new SelectList(_context.RowStatuses, "RowStatusId", "RowStatusName"); //ViewData["YearId"] = new SelectList(_context.Years, "YearId", "YearName"); return(View(monograf)); }
/// <summary> /// Добавляет статью пользователя userName /// </summary> /// <param name="monograf"></param> /// <param name="userName"></param> public void CreateMonograf(Monograf monograf, string userName) { if (monograf.MonografId != 0) { return; } AppUser appUser = GetAppUser(userName); Author author = appUser.Author.FirstOrDefault(); if (author == null) { author = new Author { AppUserId = appUser.Id, AuthorName = appUser.GetFullName }; _context.Author.Add(author); //_context.SaveChanges(); } if (author.AuthorId == 0) { return; } _context.Monografs.Add(monograf); MonografAuthor monografAuthor = new MonografAuthor { MonografId = monograf.MonografId, AuthorId = author.AuthorId, AuthorPart = 1 }; _context.MonografAuthors.Add(monografAuthor); _context.SaveChanges(); }
public async Task <IActionResult> CreateOrEditMonograf(Monograf monograf, string AuthorFilter, int AuthorIdAdd, int AuthorIdRemove, decimal AuthorPart, int NirSpecialIdAdd, int NirSpecialIdRemove, int NirTemaIdAdd, int NirTemaIdRemove, CreateOrEditNirDataModeEnum mode, IFormFile uploadedFile) { Monograf monografEntry = _userProfileRepository.GetMonograf(monograf.MonografId, User.Identity.Name); if (monografEntry == null) { if (uploadedFile != null) { FileModel f = await _fileModelRepository.UploadMonografAsync(monograf, uploadedFile); } _userProfileRepository.CreateMonograf(monograf, User.Identity.Name); monografEntry = monograf; } else { if (uploadedFile != null) { FileModel f = await _fileModelRepository.UploadMonografAsync(monografEntry, uploadedFile); monograf.FileModelId = monografEntry.FileModelId; } monograf.MonografNirSpecials = monografEntry.MonografNirSpecials; monograf.MonografAuthors = monografEntry.MonografAuthors; monograf.MonografNirTemas = monografEntry.MonografNirTemas; _userProfileRepository.UpdateMonograf(monografEntry, monograf); } switch (mode) { case CreateOrEditNirDataModeEnum.Saving: monograf.RowStatusId = (int)RowStatusEnum.NotConfirmed; _userProfileRepository.UpdateMonograf(monografEntry, monograf); return(RedirectToAction("Monografs")); case CreateOrEditNirDataModeEnum.Canceling: if (monograf.RowStatusId == null) { _userProfileRepository.RemoveMonograf(monografEntry.MonografId, User.Identity.Name); } return(RedirectToAction("Monografs")); case CreateOrEditNirDataModeEnum.AddingAuthor: if (AuthorIdAdd != 0) { var isExists = monograf.MonografAuthors.FirstOrDefault(a => a.AuthorId == AuthorIdAdd) != null; if (!isExists) { monograf.MonografAuthors.Add(new MonografAuthor { AuthorId = AuthorIdAdd, AuthorPart = AuthorPart }); _userProfileRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.EditingAuthor: break; case CreateOrEditNirDataModeEnum.RemovingAuthor: if (AuthorIdRemove != 0) { var monografAuthorsToRemove = monograf.MonografAuthors.FirstOrDefault(aa => aa.AuthorId == AuthorIdRemove); if (monografAuthorsToRemove != null) { monograf.MonografAuthors.Remove(monografAuthorsToRemove); _userProfileRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.ApplyAuthorFilter: break; case CreateOrEditNirDataModeEnum.AddingNirSpecial: if (NirSpecialIdAdd != 0) { var isExists = monograf.MonografNirSpecials.FirstOrDefault(s => s.NirSpecialId == NirSpecialIdAdd) != null; if (!isExists) { monograf.MonografNirSpecials.Add(new MonografNirSpecial { NirSpecialId = NirSpecialIdAdd }); _userProfileRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.EditingNirSpecial: break; case CreateOrEditNirDataModeEnum.RemovingNirSpecial: if (NirSpecialIdRemove != 0) { var monografToRemove = monograf.MonografNirSpecials.FirstOrDefault(s => s.NirSpecialId == NirSpecialIdRemove); if (monografToRemove != null) { monograf.MonografNirSpecials.Remove(monografToRemove); _userProfileRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.AddingNirTema: if (NirTemaIdAdd != 0) { var isExists = monograf.MonografNirTemas.FirstOrDefault(s => s.NirTemaId == NirTemaIdAdd) != null; if (!isExists) { monograf.MonografNirTemas.Add(new MonografNirTema { NirTemaId = NirTemaIdAdd }); _userProfileRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.EditingNirTema: break; case CreateOrEditNirDataModeEnum.RemovingNirTema: if (NirTemaIdRemove != 0) { var monografToRemove = monograf.MonografNirTemas.FirstOrDefault(s => s.NirTemaId == NirTemaIdRemove); if (monografToRemove != null) { monograf.MonografNirTemas.Remove(monografToRemove); _userProfileRepository.UpdateMonograf(monografEntry, monograf); } } break; default: break; } ViewBag.AuthorFilter = AuthorFilter; ViewBag.Authors = _selectListRepository.GetSelectListAuthors(AuthorFilter); ViewBag.Years = _selectListRepository.GetSelectListYears(monograf.YearId); ViewBag.NirSpecials = _selectListRepository.GetSelectListNirSpecials(); ViewBag.NirTemas = _selectListRepository.GetSelectListNirTemas(); return(View(monografEntry)); }
public async Task <IActionResult> CreateOrEdit(Monograf monograf, string AuthorFilter, int AuthorIdAdd, int AuthorIdRemove, decimal AuthorPart, int NirSpecialIdAdd, int NirSpecialIdRemove, int NirTemaIdAdd, int NirTemaIdRemove, CreateOrEditNirDataModeEnum mode, IFormFile uploadedFile) { Monograf monografEntry = _monografRepository.GetMonograf(monograf.MonografId); if (monografEntry == null) { if (uploadedFile != null) { FileModel f = await _fileModelRepository.UploadMonografAsync(monograf, uploadedFile); } _monografRepository.AddMonograf(monograf); monografEntry = monograf; } else { if (uploadedFile != null) { FileModel f = await _fileModelRepository.UploadMonografAsync(monografEntry, uploadedFile); monograf.FileModelId = monografEntry.FileModelId; } monograf.MonografNirSpecials = monografEntry.MonografNirSpecials; monograf.MonografAuthors = monografEntry.MonografAuthors; monograf.MonografNirTemas = monografEntry.MonografNirTemas; _monografRepository.UpdateMonograf(monografEntry, monograf); } switch (mode) { case CreateOrEditNirDataModeEnum.Saving: monograf.RowStatusId = (int)RowStatusEnum.NotConfirmed; _monografRepository.UpdateMonograf(monografEntry, monograf); return(RedirectToAction(nameof(Index))); case CreateOrEditNirDataModeEnum.Canceling: if (monograf.RowStatusId == null) { _monografRepository.RemoveMonografAsync(monografEntry.MonografId); } return(RedirectToAction(nameof(Index))); case CreateOrEditNirDataModeEnum.AddingAuthor: if (AuthorIdAdd != 0 && monograf.MonografAuthors != null) { var isExist = monografEntry.MonografAuthors.FirstOrDefault(a => a.AuthorId == AuthorIdAdd) != null; if (!isExist) { monograf.MonografAuthors.Add(new MonografAuthor { AuthorId = AuthorIdAdd, AuthorPart = AuthorPart }); _monografRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.EditingAuthor: break; case CreateOrEditNirDataModeEnum.RemovingAuthor: if (AuthorIdRemove != 0) { var monografAuthorsToRemove = monograf.MonografAuthors.FirstOrDefault(aa => aa.AuthorId == AuthorIdRemove); if (monografAuthorsToRemove != null) { monograf.MonografAuthors.Remove(monografAuthorsToRemove); _monografRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.ApplyAuthorFilter: break; case CreateOrEditNirDataModeEnum.AddingNirSpecial: if (NirSpecialIdAdd != 0) { var isExist = monograf.MonografNirSpecials.FirstOrDefault(s => s.NirSpecialId == NirSpecialIdAdd) != null; if (!isExist) { monograf.MonografNirSpecials.Add(new MonografNirSpecial { NirSpecialId = NirSpecialIdAdd }); _monografRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.EditingNirSpecial: break; case CreateOrEditNirDataModeEnum.RemovingNirSpecial: if (NirSpecialIdRemove != 0) { var monografToRemove = monograf.MonografNirSpecials.FirstOrDefault(s => s.NirSpecialId == NirSpecialIdRemove); if (monografToRemove != null) { monograf.MonografNirSpecials.Remove(monografToRemove); _monografRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.AddingNirTema: if (NirTemaIdAdd != 0) { var isExists = monograf.MonografNirTemas.FirstOrDefault(s => s.NirTemaId == NirTemaIdAdd) != null; if (!isExists) { monograf.MonografNirTemas.Add(new MonografNirTema { NirTemaId = NirTemaIdAdd }); _monografRepository.UpdateMonograf(monografEntry, monograf); } } break; case CreateOrEditNirDataModeEnum.EditingNirTema: break; case CreateOrEditNirDataModeEnum.RemovingNirTema: if (NirTemaIdRemove != 0) { var monografToRemove = monograf.MonografNirTemas.FirstOrDefault(s => s.NirTemaId == NirTemaIdRemove); if (monografToRemove != null) { monograf.MonografNirTemas.Remove(monografToRemove); _monografRepository.UpdateMonograf(monografEntry, monograf); } } break; default: break; } ViewBag.AuthorFilter = AuthorFilter; ViewBag.Authors = _selectListRepository.GetSelectListAuthors(AuthorFilter); ViewBag.Years = _selectListRepository.GetSelectListYears(monograf.YearId); ViewBag.NirSpecials = _selectListRepository.GetSelectListNirSpecials(); ViewBag.NirTemas = _selectListRepository.GetSelectListNirTemas(); return(View(monografEntry)); //if (ModelState.IsValid && uploadedFile != null) //{ // FileModel f = await _fileModelRepository.UploadMonografAsync(monograf, uploadedFile); //} //ViewData["FileModelId"] = new SelectList(_context.Files, "Id", "Name", monograf.FileModelId); //ViewData["RowStatusId"] = new SelectList(_context.RowStatuses, "RowStatusId", "RowStatusName", monograf.RowStatusId); //ViewData["YearId"] = new SelectList(_context.Years, "YearId", "YearName", monograf.YearId); //return View(monograf); }