public async Task <IActionResult> CreateFanfic(CreateFanficViewModel createFanficViewModel) { try { var user = await _userManager.FindByEmailAsync(User.Identity.Name); var model = new Fanfic { NameFanfic = createFanficViewModel.NameFanfic, Description = createFanficViewModel.Description, DateTimePublish = createFanficViewModel.DateTimePublish, ApplicationUser = user, FandomId = createFanficViewModel.selectedFandom, CategoryId = createFanficViewModel.selectedCategory }; foreach (var tags in createFanficViewModel.SelectedTags) { model.FanficsTags.Add(new FanficTag() { TagId = Int32.Parse(tags) }); } await _unitOfWork.Fanfic.InsertAsync(model); await _unitOfWork.SaveAsync(); return(RedirectToAction("FanficList", "Fanfic")); } catch { return(View(nameof(FanficList))); } }
public IActionResult EditFanfic(ProfileViewModel model) { for (int i = 0; i < model.fanfics.Length; i++) { if (model.fanfics[i].selected) { Fanfic fanfic = _db.Fanfics.FirstOrDefault(item => item.id == model.fanfics[i].id); string[] tags = _db.TagsToFanfics.Where(item => item.Fanfic == fanfic).Select(item => item.tag.name).ToArray(); string tag = ""; foreach (string buf in tags) { tag += buf + " "; } return(View(new FanficViewModel { id = fanfic.id, Text = fanfic.text, FanficName = fanfic.name, EndDate = fanfic.endDate, requiredCh = fanfic.requiredCh, Tags = tag, Image = fanfic.image })); } } return(RedirectToAction("Index", "Profile")); }
public async Task <IActionResult> Index(int id) { Fanfic fanfic = _db.Fanfics.FirstOrDefault(item => item.id == id); if (fanfic != null) { User user = await _userManager.GetUserAsync(User); string userName = _userManager.Users.FirstOrDefault(item => item.Id == fanfic.userId).UserName; ChaptersView[] chapters = _db.Chapters.Where(item => item.fanfic == fanfic) .Select(item => new ChaptersView { Name = item.name, Text = item.text, Image = item.image, id = item.id }).ToArray(); CommentsView[] comments = _db.Comments.Where(item => item.fanfic == fanfic) .Select(item => new CommentsView { id = item.id, Author = item.user.UserName, Text = item.text }).ToArray(); return(View(new ShowFanficViewModel { Id = fanfic.id, Name = fanfic.name, Image = fanfic.image, Text = fanfic.text, User = userName, comments = comments, Chapters = chapters, addChapter = new ChaptersView() })); } else { return(View("NotFound")); } }
public async Task <FanficDTO> Create(FanficDTO item) { Fanfic fanfic = _mapper.Map <FanficDTO, Fanfic>(item); fanfic.DateOfCreation = DateTime.Now; fanfic.LastModifyingDate = DateTime.Now; fanfic = await _database.FanficRepository.Create(fanfic); return(_mapper.Map <Fanfic, FanficDTO>(fanfic)); }
public async Task <IActionResult> DeleteFanfic(ProfileViewModel model) { for (int i = 0; i < model.fanfics.Length; i++) { if (model.fanfics[i].selected) { Fanfic fanfic = _db.Fanfics.FirstOrDefault(item => item.id == model.fanfics[i].id); _db.Fanfics.Remove(fanfic); await _db.SaveChangesAsync(); } } return(RedirectToAction("Index", "Profile")); }
public async Task <IActionResult> EditFanfic(FanficViewModel model) { Fanfic fanfic = _db.Fanfics.FirstOrDefault(item => item.id == model.id); if (_db.TagsToFanfics.FirstOrDefault(item => item.Fanfic == fanfic) != null) { _db.TagsToFanfics.RemoveRange(_db.TagsToFanfics.Where(item => item.Fanfic == fanfic)); } await _db.SaveChangesAsync(); fanfic.name = model.FanficName; fanfic.text = model.Text; fanfic.requiredCh = model.requiredCh; fanfic.endDate = model.EndDate; fanfic.image = model.Image; if (model.Tags != null) { model.Tags = model.Tags.Replace(" ", " "); string[] tags = model.Tags.Split(" "); _db.Fanfics.Update(fanfic); for (int i = 0; i < tags.Length; i++) { if (tags[i] != "") { Tag tag = _db.Tag.FirstOrDefault(item => item.name == tags[i]); if (tag == null) { _db.Tag.Add(new Tag { name = tags[i] }); await _db.SaveChangesAsync(); _db.TagsToFanfics.Add(new TagsToFanfics { Fanfic = fanfic, tag = _db.Tag.FirstOrDefault(item => item.name == tags[i]) }); } else { _db.TagsToFanfics.Add(new TagsToFanfics { Fanfic = fanfic, tag = tag }); } } } } await _db.SaveChangesAsync(); return(RedirectToAction("Index", "Profile")); }
public async Task <FanficDTO> Update(FanficDTO item) { Fanfic fanfic = _mapper.Map <FanficDTO, Fanfic>(item); string oldGenreId = fanfic.GenreId; fanfic.LastModifyingDate = DateTime.Now; fanfic = await _database.FanficRepository.Update(fanfic); if (fanfic.GenreId != oldGenreId) { // ToQueueElasticUpdate } return(_mapper.Map <Fanfic, FanficDTO>(fanfic)); }
public static FanficDTO ToModel(this Fanfic fanfic) { return(new FanficDTO { Id = fanfic.Id, Name = fanfic.Name, Description = fanfic.Description, CreationDate = fanfic.CreationTimestamp, LastUpdateTimestamp = fanfic.LastUpdateTimestamp, RatingValue = fanfic.RatingValue }); /* * var config = new MapperConfiguration(cfg => cfg.CreateMap<Fanfic, FanficDTO>()); * return new Mapper(config).Map<Fanfic, FanficDTO>(fanfic); */ }
public async Task <IActionResult> AddChapter(ShowFanficViewModel model) { Fanfic fanfics = _db.Fanfics.FirstOrDefault(item => item.id == model.Id); if (fanfics != null) { _db.Chapters.Add(new Chapters { fanfic = fanfics, name = model.addChapter.Name, text = model.addChapter.Text, image = model.addChapter.Image }); await _db.SaveChangesAsync(); } return(RedirectToAction(model.Id + "", "Fanfic")); }
public void CreateFanfic([FromBody] FanficScriptModel data) { string userId = User.Identity.GetUserId(); PreviewUserViewModel user = Mapper .Map <PreviewUserViewModel>(ApplicationUserRepository.GetApplicationUserById(data.UserId)); if (user != null && User.IsInRole("admin")) { userId = user.Id; } Fanfic fanfic = new Fanfic { ApplicationUserId = userId, AverageRating = 0, CategoryId = data.Category, CreateDate = DateTime.Now, Description = data.Description, ImgUrl = data.ImgUrl, Name = data.Name }; int id = FanficRepository.AddFanfic(fanfic); foreach (var topicScript in data.Topics) { Topic topic = new Topic { Name = topicScript.Name, Number = topicScript.Number, FanficId = id, Text = topicScript.Text, ImgUrl = topicScript.ImgUrl, AverageRating = 0 }; TopicRepository.AddTopic(topic); } foreach (var tag in data.Tags) { FanficTagRepository.AddNewFanficTag(id, TagRepository.FindOrAdd(tag.Name)); } }
public async Task <FanficDTO> GetById(string id) { Fanfic fanfic = await _database.FanficRepository.GetById(id); return(_mapper.Map <Fanfic, FanficDTO>(fanfic)); }
public void Delete(Fanfic fanfic) { _applicationUserDbContext.Fanfics.Remove(fanfic); }
public void Update(Fanfic fanfic) { _applicationUserDbContext.Fanfics.Update(fanfic); }
public async Task InsertAsync(Fanfic fanfic) { await _applicationUserDbContext.Fanfics.AddAsync(fanfic); }
public IEnumerable <Chapter> GetChapters(Fanfic fanfic) { return(_applicationUserDbContext.Chapters.ToList() .Where(n => n.FanficId == fanfic.FanficId)); }