public async Task <IActionResult> Details(int?id, AlbumStatus status) { if (id == null) { return(NotFound()); } var album = await _context.Albums .Include(a => a.Artist).Include(a => a.Reviews) .FirstOrDefaultAsync(m => m.AlbumId == id); if (album == null) { return(NotFound()); } var contactOperation = (status == AlbumStatus.Approved) ? Operations.Approve : Operations.Reject; var isAuthorized = await _authorizationService.AuthorizeAsync(User, album, contactOperation); if (!isAuthorized.Succeeded) { return(Forbid()); } album.Status = status; _context.Albums.Update(album); await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Albums", new { id = album.AlbumId })); }
public Index(MikuDbAlbumContract[] albums, string titleFilter, AlbumStatus status) { ParamIs.NotNull(() => albums); Albums = albums; AllStatuses = new Dictionary<AlbumStatus, string> { { AlbumStatus.New, "Unprocessed (new)" }, { AlbumStatus.Skipped, "Rejected" }, { AlbumStatus.Approved, "Processed" } }; Status = status; TitleFilter = titleFilter; }
public Index(MikuDbAlbumContract[] albums, string titleFilter, AlbumStatus status) { ParamIs.NotNull(() => albums); Albums = albums; AllStatuses = new Dictionary <AlbumStatus, string> { { AlbumStatus.New, "Unprocessed (new)" }, { AlbumStatus.Skipped, "Rejected" }, { AlbumStatus.Approved, "Processed" } }; Status = status; TitleFilter = titleFilter; }
public MikuDbAlbumContract[] GetAlbums(string title, AlbumStatus status, PagingProperties paging) { return(HandleQuery(session => session .Query <MikuDbAlbum>() .Where(a => (string.IsNullOrEmpty(title) || a.Title.Contains(title)) && a.Status == status) .OrderByDescending(a => a.Created) .Skip(paging.Start) .Take(paging.MaxEntries) .ToArray() .Select(a => new MikuDbAlbumContract(a)) .ToArray())); }
/// <summary> /// Constructor for a LayoutManager instance. /// </summary> /// <param name="pTarget">Target canvas which will hold all photo slices and this manager will take effect on.</param> /// <param name="pDataSource">Data source for this manager instance.</param> /// <param name="pBtnSortCanvas">Sort layout trigger canvas.</param> /// <param name="pBtnRandomCanvas">Random layout trigger canvas.</param> /// <param name="pZoomOutTrigger">Zoomout trigter canvas.</param> /// <param name="pSortNavi">Sort navigator.</param> public LayoutManager(Canvas pTarget, PhotoDataSet pDataSource, Canvas pBtnSortCanvas, Canvas pBtnRandomCanvas, Canvas pZoomOutTrigger, SortNavigator pSortNavi, GenuineSlice pGenuineSlice, TracingIcon pTracingIcon, Image pScreenArrowLeft, Image pScreenArrowRight) { _target = pTarget; _targetShadow = pTarget.FindName("PhotoHolderShadow") as Canvas; _sortNavi = pSortNavi; _dataSource = pDataSource; _zoomOutTrigger = pZoomOutTrigger; _btnSort = pBtnSortCanvas; _btnSort.Cursor = Cursors.Hand; _btnRandom = pBtnRandomCanvas; _btnRandom.Cursor = Cursors.Hand; _genuineSlice = pGenuineSlice; _isSliceRequest = false; _tracingMouse = pTracingIcon; _screenArrowLeft = pScreenArrowLeft; _screenArrowRight = pScreenArrowRight; // Generate random & sort params GenerateLayoutPostion(); // Fill thums to thumHolder FillThumHolder(); // Event register. _target.MouseLeftButtonUp += new MouseEventHandler(_target_MouseLeftButtonUp); _zoomOutTrigger.MouseLeftButtonUp += new MouseEventHandler(_zoomOutTrigger_MouseLeftButtonUp); _zoomInStoryboard = _target.FindName("ZoomIn") as Storyboard; _zoomOutStoryboard = _target.FindName("ZoomOut") as Storyboard; _rotateToAngleStoryboard = _target.FindName("RotateToAngle") as Storyboard; _animateToPositionStoryboard = _target.FindName("AnimateToPosition") as Storyboard; _zoomInStoryboard.Completed += new EventHandler(_zoomInStoryboard_Completed); _zoomOutStoryboard.Completed += new EventHandler(_zoomOutStoryboard_Completed); _layoutStandByStoryboard = _target.FindName("LayoutStandBy") as Storyboard; _layoutStandByStoryboard.Completed += new EventHandler(_layoutStandByStoryboard_Completed); _btnSort.MouseLeftButtonUp += new MouseEventHandler(_btnSort_MouseLeftButtonUp); _btnSort.MouseEnter += new MouseEventHandler(_btnSort_MouseEnter); _btnSort.MouseLeave += new EventHandler(_btnSort_MouseLeave); _btnRandom.MouseLeftButtonUp += new MouseEventHandler(_btnRandom_MouseLeftButtonUp); _btnRandom.MouseEnter += new MouseEventHandler(_btnRandom_MouseEnter); _btnRandom.MouseLeave += new EventHandler(_btnRandom_MouseLeave); _screenArrowLeft.MouseLeftButtonUp += new MouseEventHandler(_screenArrowLeft_MouseLeftButtonUp); _screenArrowRight.MouseLeftButtonUp += new MouseEventHandler(_screenArrowRight_MouseLeftButtonUp); // By default, enter sorted layout. _status = AlbumStatus.Hanging; // clear status Status = AlbumStatus.Sorted; _zoomStatus = ZoomStatus.Out; }
// // GET: /MikuDb/ public ActionResult Index(string titleFilter, AlbumStatus? status) { var s = status ?? AlbumStatus.New; var albums = Service.GetAlbums(titleFilter, s, new PagingProperties(0, entriesPerPage, false)); var model = new Index(albums, titleFilter, s); return View(model); }
public MikuDbAlbumContract[] GetAlbums(string title, AlbumStatus status, PagingProperties paging) { return HandleQuery(session => session .Query<MikuDbAlbum>() .Where(a => (string.IsNullOrEmpty(title) || a.Title.Contains(title)) && a.Status == status) .OrderByDescending(a => a.Created) .Skip(paging.Start) .Take(paging.MaxEntries) .ToArray() .Select(a => new MikuDbAlbumContract(a)) .ToArray()); }