Пример #1
0
        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 }));
        }
Пример #2
0
        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;
        }
Пример #3
0
        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;
        }
Пример #4
0
 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()));
 }
Пример #5
0
        /// <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;
        }
Пример #6
0
        /// <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;
        }
Пример #7
0
        //
        // 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);
        }
Пример #8
0
		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());

		}