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); }
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)); } }
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); }
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; } }