Exemplo n.º 1
0
        public UpdateResult UpdatePosition(FanficBookmark fanfic, int index, BookmarkFolder oldParent)
        {
            List <string> errors = new List <string>();

            if (InteractiveFolder.TryGetFolder(Home, oldParent ?? Home, out InteractiveFolder old))
            {
                if (InteractiveFolder.TryGetFolder(Home, fanfic.Parent ?? Home, out InteractiveFolder newParent))
                {
                    return(UpdatePosition(fanfic, index, newParent, old));
                }
                else
                {
                    errors.Add("Failed to get new parent folder.");
                }
            }
            else
            {
                errors.Add("Failed to get old parent folder");
            }

            return(new UpdateResult()
            {
                Success = false,
                Errors = errors
            });
        }
Exemplo n.º 2
0
        public FanficModel(FanficBookmark b)
        {
            Name         = b?.DisplayName ?? "";
            FanficUrl    = b?.FicLink ?? "";
            Description  = b?.Description ?? "";
            ParentFolder = b?.Parent?.Id.ToString() ?? Guid.Empty.ToString();

            Id = b?.Id ?? default;
        }
Exemplo n.º 3
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));
            }
        }
Exemplo n.º 4
0
        public UpdateResult UpdatePosition(FanficBookmark fanfic, int index, InteractiveFolder newParent, InteractiveFolder oldParent)
        {
            List <string> errors = new List <string>();

            if (oldParent.Contents.Remove(fanfic))
            {
                try
                {
                    newParent.Contents.Insert(index, fanfic);

                    newParent.Contents.AssignIndexValues();

                    return(new UpdateResult()
                    {
                        Success = true,
                        Message = "Update Complete"
                    });
                }
                catch (ArgumentOutOfRangeException)
                {
                    newParent.Contents.Add(fanfic);

                    newParent.Contents.AssignIndexValues();

                    errors.Add("Failed to insert bookmark at position. Added folder to end of list.");
                    return(new UpdateResult()
                    {
                        Success = true,
                        Message = "Failed to instert bookmark at position, added folder to end of list.",
                        Errors = errors
                    });
                }
            }
            else
            {
                errors.Add("Failed to remove bookmark from start position");
            }

            return(new UpdateResult()
            {
                Errors = errors,
                Success = false
            });
        }
Exemplo n.º 5
0
        public UpdateResult UpdatePosition(FanficBookmark bookmark, int index)
        {
            List <string> errors = new List <string>();

            if (InteractiveFolder.TryGetFolder(Home, bookmark.Parent ?? Home, out InteractiveFolder iParent))
            {
                return(UpdatePosition(bookmark, index, iParent, iParent));
            }
            else
            {
                errors.Add("Failed to get bookmark parent.");
            }

            return(new UpdateResult()
            {
                Success = false,
                Errors = errors
            });
        }
Exemplo n.º 6
0
        public UpdateResult AddFanfic(FanficBookmark fanfic)
        {
            List <string> errors = new List <string>();

            if (InteractiveFolder.TryGetFolder(Home, fanfic.Parent ?? Home, out InteractiveFolder f))
            {
                f.Contents.Insert(0, fanfic);
                return(new UpdateResult()
                {
                    Success = true,
                    Message = "New Bookmark Added"
                });
            }
            else
            {
                errors.Add("Failed to get parent folder.");
            }

            return(new UpdateResult()
            {
                Success = false,
                Errors = errors
            });
        }
Exemplo n.º 7
0
 public FanficModel(FanficBookmark b, int newIndex) : this(b)
 {
     Index = newIndex;
 }