Ejemplo n.º 1
0
 private FanficDTO GetFanficDTOForUpdating(FanficDTO fanfic, FanficModel item)
 {
     fanfic.Id                = null;
     fanfic.Title             = item.title;
     fanfic.Description       = item.description;
     fanfic.PictureURL        = item.picture_url;
     fanfic.GenreId           = _genreService.GetByName(item.genre).Id;
     fanfic.DateOfCreation    = DateTime.Parse(item.creation_date);
     fanfic.LastModifyingDate = DateTime.Now;
     return(fanfic);
 }
Ejemplo n.º 2
0
        public UpdateResult UpdateFanfic(FanficModel model)
        {
            var fanfic = Bookmarks.FirstOrDefault(x => x.Id == model.Id);

            var guid   = new Guid(model.ParentFolder);
            var folder = Folders.FirstOrDefault(x => x.Id == guid);

            if (folder == default)
            {
                folder = null;
            }

            if (fanfic != default)
            {
                if (fanfic.Parent != folder)
                {
                    fanfic.FicLink     = model.FanficUrl;
                    fanfic.Description = model.Description;
                    fanfic.DisplayName = model.Name;
                    fanfic.Title       = model.FanficTitle;
                    var old = fanfic.Parent;
                    fanfic.Parent = folder;

                    return(UpdatePosition(fanfic, model.Index, old));
                }
                else
                {
                    fanfic.FicLink     = model.FanficUrl;
                    fanfic.Description = model.Description;
                    fanfic.DisplayName = model.Name;
                    fanfic.Title       = model.FanficTitle;

                    if (model.Index >= 0)
                    {
                        return(UpdatePosition(fanfic, model.Index));
                    }
                    else
                    {
                        return new UpdateResult()
                               {
                                   Success = true,
                                   Message = "Bookmark Data Updated"
                               }
                    };
                }
            }
            else
            {
                var newFic = new FanficBookmark(model.FanficUrl, model.FanficTitle, model.Description, model.Name, folder);
                Bookmarks.Add(newFic);
                return(AddFanfic(newFic));
            }
        }
Ejemplo n.º 3
0
        private async Task <IEnumerable <FanficModel> > GetFanficModelsFromListDTO(List <FanficDTO> fanfics)
        {
            fanfics.Sort((a, b) => b.LastModifyingDate.CompareTo(a.LastModifyingDate));
            List <FanficModel> fanficsModels = new List <FanficModel>();

            foreach (var fanfic in fanfics)
            {
                FanficModel model = await GetFanficModelFromDTO(fanfic);

                fanficsModels.Add(model);
            }
            return(fanficsModels);
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Put([FromBody] FanficModel item)
        {
            if (ModelState.IsValid && User.Identity.IsAuthenticated)
            {
                ApplicationUser user = await _authenticationManager.UserManager.FindByNameAsync(User.Identity.Name);

                FanficDTO fanfic = await _fanficService.GetById(item.id);

                if (fanfic.ApplicationUserId == user.Id || await _authenticationManager.UserManager.IsInRoleAsync(user, "Admin"))
                {
                    fanfic = GetFanficDTOForUpdating(fanfic, item);
                    await DeleteFanficTagsByFanficId(item.id);
                    await CreateTags(item.tags.ToList(), item.id);

                    await _fanficService.Update(fanfic);

                    return(Ok(fanfic));
                }
            }

            return(BadRequest(ModelState));
        }
        private static void DroppedFic(FolderSystem data, FanficBookmark fic, BaseBookmarkData droppedOn, int indexMod)
        {
            var         index = GetIndex(data, droppedOn) + (indexMod > 0 ? 1 : 0);
            FanficModel ficModel;

            switch (droppedOn)
            {
            case InteractiveFolder droppedOnFolder:
                ficModel = new FanficModel(fic, 0)
                {
                    ParentFolder = droppedOnFolder.Id.ToString()
                };
                data.UpdateFanfic(ficModel);
                break;

            case FanficBookmark droppedOnFic:
                ficModel = new FanficModel(fic, index)
                {
                    ParentFolder = droppedOnFic.Parent?.Id.ToString() ?? Guid.Empty.ToString()
                };
                data.UpdateFanfic(ficModel);
                break;
            }
        }