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)));
            }
        }
Exemple #2
0
 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"));
 }
Exemple #3
0
        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"));
            }
        }
Exemple #4
0
        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));
        }
Exemple #5
0
 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"));
 }
Exemple #6
0
        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"));
        }
Exemple #7
0
        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);
             */
        }
Exemple #9
0
        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"));
        }
Exemple #10
0
        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));
            }
        }
Exemple #11
0
        public async Task <FanficDTO> GetById(string id)
        {
            Fanfic fanfic = await _database.FanficRepository.GetById(id);

            return(_mapper.Map <Fanfic, FanficDTO>(fanfic));
        }
Exemple #12
0
 public void Delete(Fanfic fanfic)
 {
     _applicationUserDbContext.Fanfics.Remove(fanfic);
 }
Exemple #13
0
 public void Update(Fanfic fanfic)
 {
     _applicationUserDbContext.Fanfics.Update(fanfic);
 }
Exemple #14
0
 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));
 }