public async Task <IActionResult> Add([FromBody] AlbumGroup albumGroup)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    AlbumGroupDetail group = await _repository.AddAsync(albumGroup);

                    return(CreatedAtRoute(
                               new { controller = "album", action = nameof(Get), key = group.Key }, group));
                }
                catch (RepositoryException e)
                {
                    return(BadRequest(new ApiErrorRep(e.Message)));
                }
                catch (Exception e)
                {
                    _logger.LogError("AddAlbum", e, "Error adding album");
                    return(StatusCode(500, new ApiErrorRep("Unknown error")));
                }
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public async Task <AlbumGroupDetail> UpdateAsync(int groupId, AlbumGroup group)
        {
            var dbAlbumGroup = await _context.AlbumGroups.SingleOrDefaultAsync(x => x.Id == groupId);

            if (dbAlbumGroup != null)
            {
                dbAlbumGroup.Name       = group.Name;
                dbAlbumGroup.UpdatedUtc = DateTime.UtcNow;
                await _context.SaveChangesAsync();

                var numAlbums = await _context.AlbumGroups.Where(g => g.Id == dbAlbumGroup.Id).SelectMany(x => x.Items).CountAsync(x => x.Album.PublishStatus == DbPublishedStatus.PUBLISHED);

                return(new AlbumGroupDetail()
                {
                    Id = dbAlbumGroup.Id,
                    Key = dbAlbumGroup.Key,
                    Name = dbAlbumGroup.Name,
                    TotalAlbums = numAlbums,
                    Created = new DateTime(dbAlbumGroup.CreatedUtc.Ticks, DateTimeKind.Utc),
                    Updated = new DateTime(dbAlbumGroup.UpdatedUtc.Ticks, DateTimeKind.Utc)
                });
            }
            else
            {
                throw new EntityNotFoundRepositoryException($"Album group with ID {groupId} not found");
            }
        }
 public async Task <IActionResult> Update([FromRoute] int id, [FromBody] AlbumGroup albumGroup)
 {
     if (ModelState.IsValid)
     {
         try
         {
             return(Ok(await _repository.UpdateAsync(id, albumGroup)));
         }
         catch (EntityNotFoundRepositoryException e)
         {
             return(NotFound(new ApiErrorRep(e.Message)));
         }
         catch (RepositoryException e)
         {
             return(BadRequest(new ApiErrorRep(e.Message)));
         }
         catch (Exception e)
         {
             _logger.LogError("UpdateAlbumGroup", e, "Error updating album group");
             return(StatusCode(500, new ApiErrorRep("Unknown error")));
         }
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
Exemplo n.º 4
0
    public void Slide(int idx, float duration = -1)
    {
        isMoving = true;
        AlbumGroup group = albumGroups[idx];
        float      tx    = container.x + group.x;

        direction = tx > 0 ? -1 : 1;

        if (duration == -1)
        {
            tx = Mathf.Abs(tx);
            if (tx <= DISTANCE_X + 0.3)
            {
                duration = 0.6f;
            }
            else if (tx >= DISTANCE_X * 3 - 0.3)
            {
                duration = 1.2f;
            }
            else
            {
                duration = 0.8f;
            }

            container.TweenX(-group.x, duration).OnUpdate(UpdateHeaderPos)
            .OnComplete(() => group.Open());
        }
        else
        {
            container.TweenX(-group.x, duration, Ease.OutCubic).OnUpdate(UpdateHeaderPos)
            .OnComplete(() => group.Open());
        }

        focusIdx = idx;
    }
        public async void AddAlbumGroup_ReturnsNonNullResult_WithValidInput()
        {
            AlbumGroup       input  = CreateValidCreateModel();
            AlbumGroupDetail result = await this.repo.AddAsync(input);

            Assert.NotNull(result);
        }
        public async void AddAlbumGroup_ThrowsEntityAlreadyExistsRepositoryException_WhenAttemptingToCreateAnExistingGroupKey()
        {
            AlbumGroup       input  = CreateValidCreateModel();
            AlbumGroupDetail result = await this.repo.AddAsync(input);

            await Assert.ThrowsAsync <EntityAlreadyExistsRepositoryException>(() => this.repo.AddAsync(input));
        }
Exemplo n.º 7
0
        public static IList <AlbumGroup> ToAlbumGroups(this SoundCloudClone.Models.Api.Home home)
        {
            var albumGroups = new List <AlbumGroup>();

            foreach (var algumGroupsCollection in home.AlgumGroupsCollection)
            {
                var albumGroupApi = algumGroupsCollection.AlbumGroup;
                var albumGroupApp = new AlbumGroup(
                    albumGroupApi.Title,
                    albumGroupApi.Description
                    );

                var albumCollection = new AlbumCollection();

                foreach (var albumsApi in algumGroupsCollection.AlbumGroup.AlbumCollection.Albums)
                {
                    albumCollection.Add(
                        new Album(
                            albumsApi.ArtworkUrlTemplate,
                            albumsApi.ArtworkStyle,
                            albumsApi.Count,
                            albumsApi.ShortTitle,
                            albumsApi.ShortSubtitle
                            )
                        );
                }

                albumGroupApp.Add(albumCollection);
                albumGroups.Add(albumGroupApp);
            }

            return(albumGroups);
        }
        public async Task <AlbumGroupDetail> AddAsync(AlbumGroup group)
        {
            var dbAlbumGroup = await _context.AlbumGroups.SingleOrDefaultAsync(x => x.Key == group.Key);

            if (dbAlbumGroup == null)
            {
                dbAlbumGroup = new DbAlbumGroup()
                {
                    Key        = group.Key,
                    Name       = group.Name,
                    CreatedUtc = DateTime.UtcNow,
                    UpdatedUtc = DateTime.UtcNow
                };
                _context.AlbumGroups.Add(dbAlbumGroup);
                await _context.SaveChangesAsync();

                return(new AlbumGroupDetail()
                {
                    Id = dbAlbumGroup.Id,
                    Key = dbAlbumGroup.Key,
                    Name = dbAlbumGroup.Name,
                    TotalAlbums = 0,
                    Created = new DateTime(dbAlbumGroup.CreatedUtc.Ticks, DateTimeKind.Utc),
                    Updated = new DateTime(dbAlbumGroup.UpdatedUtc.Ticks, DateTimeKind.Utc)
                });
            }
            else
            {
                throw new EntityAlreadyExistsRepositoryException($"A group with the key '{group.Key}' already exists");
            }
        }
        public async void UpdateAlbumGroup_ThrowsEntityNotFoundRepositoryException_WithInvalidGroupId()
        {
            int groupId = await SetupValidRecordInDatabase();

            AlbumGroup input = CreateValidCreateModel();

            input.Name = "NewName";
            await Assert.ThrowsAsync <EntityNotFoundRepositoryException>(() => this.repo.UpdateAsync(99999, input));
        }
        public async void UpdateAlbumGroup_ReturnsMatchingName_WithValidInput()
        {
            int groupId = await SetupValidRecordInDatabase();

            AlbumGroup input = CreateValidCreateModel();

            input.Name = "NewName";
            AlbumGroupDetail result = await this.repo.UpdateAsync(groupId, input);

            Assert.Equal("NewName", result.Name);
        }
        public async void UpdateAlbumGroup_ReturnsAlbumGroupDetailResult_WithValidInput()
        {
            int groupId = await SetupValidRecordInDatabase();

            AlbumGroup input = CreateValidCreateModel();

            input.Name = "NewName";
            AlbumGroupDetail result = await this.repo.UpdateAsync(groupId, input);

            Assert.IsType <AlbumGroupDetail>(result);
        }
Exemplo n.º 12
0
    public void UpdateMenu(int idx)
    {
        if (idx == focusIdx)
        {
            return;
        }

        isMoving = true;
        AlbumGroup group = albumGroups[focusIdx];

        DisplayTitle(false);
        group.Close(idx);
    }
Exemplo n.º 13
0
    void OnMouseUp()
    {
        if (MusicMenu.isMoving || y < -1)
        {
            return;
        }

        MusicPlayer.instance.Stop();

        AlbumGroup group = parent as AlbumGroup;

        MusicMenu.instance.UpdateMenu(group.idx);
    }
Exemplo n.º 14
0
        public Paging <SimplifiedAlbum> GetArtistAlbums(string id, AlbumGroup includeGroups = AlbumGroup.single, string market = "PL", int limit = 20, int offset = 0)
        {
            var queryParameters = new Dictionary <string, string>()
            {
                { "include_groups", includeGroups.ToString().Replace(" ", string.Empty) },
                { "market", market },
                { "limit", limit.ToString() },
                { "offset", offset.ToString() },
            };
            var urlSegmentParameter = new KeyValuePair <string, string>("id", id);

            return(Rest.SendRequestAndGetData <Paging <SimplifiedAlbum> >("/v1/artists/{id}/albums", queryParameters, urlSegmentParameter));
        }
Exemplo n.º 15
0
    void OnMouseUp()
    {
        if (MusicMenu.isMoving || y < 0)
        {
            return;
        }

        MusicPlayer.instance.Stop();

        AlbumGroup group = parent as AlbumGroup;

        group.Slide(idx);
    }
        private void AddAlbumControls(SPList albumLibrary)
        {
            var albumsQuery = new SPQuery
            {
                Query = QueryResources.AlbumsQueryText,
            };

            var albumGroups =
                albumLibrary.GetItems(albumsQuery).Cast<SPListItem>().GroupBy(x => x["Start Date"] == null ? "Timeless" : x.GetFormattedValue("Album Year"))
                            .OrderByDescending(x => x.Key).ToList();

            //HACK: Get the albums with no date value at the end of the the list instead of the begining.
            var timelessPhotos = albumGroups.FirstOrDefault(x => x.Key == "Timeless");
            if(timelessPhotos != null)
            {
                albumGroups.Remove(timelessPhotos);
                albumGroups.Add(timelessPhotos);
            }

            var uploadControlHtml = GenerateUploadControlHtml(albumLibrary);
            var addAlbumControlHtml = GenerateAddAlbumControHtml(albumLibrary);
            var topHtml = String.Format(@"<div class='titleRow'>
                                            <span id='albumTitle'>Photos</span>
                                            {0}
                                            {1}
                                          </div>", uploadControlHtml, addAlbumControlHtml);
            Controls.Add(new LiteralControl(topHtml));

            var headerHtml = new StringBuilder(String.Format(@"<div class='albumHeader' data-albums-visible-for-groups='{0}'>Albums: ", AlbumsPerGroup), 250);
            foreach(var albumGroup in albumGroups.Select(x => x.Key))
            {
                headerHtml.AppendFormat(@"<span class='albumNav groupName selectable'>{0}</span>", albumGroup.Replace(",", String.Empty));
            }
            headerHtml.Append("</div>");
            Controls.Add(new LiteralControl(headerHtml.ToString()));

            foreach (var curAlbum in albumGroups)
            {
                var albumGroup = new AlbumGroup { GroupName = curAlbum.Key.Replace(",", String.Empty) };

                foreach(var album in curAlbum)
                {
                    //THANKS SHAREPOINT
                    var thumbNailUrlField = album["Album Thumbnail URL"];
                    var thumbNailUrl = thumbNailUrlField != null
                                           ? new SPFieldUrlValue(thumbNailUrlField.ToString()).Url
                                           : DefaultAlbumImage ?? String.Empty;

                    albumGroup.AddAlbum(new Album
                    {
                        AlbumName = album.Folder.Name,
                        ThumbNailUrl = thumbNailUrl,
                        LazyImageLoadEnabled = this.LazyLoadingEnabled,
                        Type = Album.AlbumType.Photo,
                        ItemsCount = album.Folder.ItemCount, //This will include sub-folders in the count, but they shouldn't be there.
                    });
                }

                Controls.Add(albumGroup);
            }
        }
Exemplo n.º 17
0
        private void BuildTestDatum()
        {
            AlbumGroup group1 = new AlbumGroup()
            {
                Name = "A"
            };
            Album al1 = new Album()
            {
                AlbumName = "Feed Your Soul", Artist = "Christa Wells"
            };
            Album al2 = new Album()
            {
                AlbumName = "The Female Boss", Artist = "Tulisa"
            };
            Album al3 = new Album()
            {
                AlbumName = "Only Human", Artist = "Delta Goodrem"
            };

            group1.Albums.AddRange(new[] { al1, al2, al3 });

            AlbumGroup group2 = new AlbumGroup()
            {
                Name = "B"
            };
            Album al4 = new Album()
            {
                AlbumName = "GreatestHits II (2011 remaster)", Artist = ""
            };

            group2.Albums.AddRange(new[] { al4 });


            AlbumGroup groupC = new AlbumGroup()
            {
                Name = "C"
            };
            Album alC1 = new Album()
            {
                AlbumName = "Music for Tourist", Artist = "Chris Garneau"
            };
            Album alC2 = new Album()
            {
                AlbumName = "Nick Johnas", Artist = ""
            };

            groupC.Albums.AddRange(new[] { alC1, alC2 });


            AlbumGroup groupD = new AlbumGroup()
            {
                Name = "D"
            };
            Album alD1 = new Album()
            {
                AlbumName = "Feed Your Soul", Artist = "Christa Wells"
            };
            Album alD2 = new Album()
            {
                AlbumName = "The Female Boss", Artist = "Tulisa"
            };
            Album alD3 = new Album()
            {
                AlbumName = "Only Human", Artist = "Delta Goodrem"
            };

            groupD.Albums.AddRange(new[] { alD1, alD2, alD3 });


            AlbumGroup groupE = new AlbumGroup()
            {
                Name = "E"
            };
            Album alE1 = new Album()
            {
                AlbumName = "Feed Your Soul", Artist = "Christa Wells"
            };
            Album alE2 = new Album()
            {
                AlbumName = "The Female Boss", Artist = "Tulisa"
            };
            Album alE3 = new Album()
            {
                AlbumName = "Only Human", Artist = "Delta Goodrem"
            };

            groupE.Albums.AddRange(new[] { alE1, alE2, alE3 });


            AlbumGroup groupF = new AlbumGroup()
            {
                Name = "F"
            };
            Album alF1 = new Album()
            {
                AlbumName = "Feed Your Soul", Artist = "Christa Wells"
            };
            Album alF2 = new Album()
            {
                AlbumName = "The Female Boss", Artist = "Tulisa"
            };
            Album alF3 = new Album()
            {
                AlbumName = "Only Human", Artist = "Delta Goodrem"
            };

            groupF.Albums.AddRange(new[] { alF1, alF2, alF3 });

            AlbumGroup groupG = new AlbumGroup()
            {
                Name = "G"
            };
            Album alG1 = new Album()
            {
                AlbumName = "Feed Your Soul", Artist = "Christa Wells"
            };
            Album alG2 = new Album()
            {
                AlbumName = "The Female Boss", Artist = "Tulisa"
            };
            Album alG3 = new Album()
            {
                AlbumName = "Only Human", Artist = "Delta Goodrem"
            };

            groupG.Albums.AddRange(new[] { alG1, alG2, alG3 });

            AlbumGroup groupH = new AlbumGroup()
            {
                Name = "H"
            };
            Album alH1 = new Album()
            {
                AlbumName = "Feed Your Soul", Artist = "Christa Wells"
            };
            Album alH2 = new Album()
            {
                AlbumName = "The Female Boss", Artist = "Tulisa"
            };
            Album alH3 = new Album()
            {
                AlbumName = "Only Human", Artist = "Delta Goodrem"
            };

            groupH.Albums.AddRange(new[] { alH1, alH2, alH3 });

            AlbumGroup groupI = new AlbumGroup()
            {
                Name = "I"
            };
            Album alI1 = new Album()
            {
                AlbumName = "Feed Your Soul", Artist = "Christa Wells"
            };
            Album alI2 = new Album()
            {
                AlbumName = "The Female Boss", Artist = "Tulisa"
            };
            Album alI3 = new Album()
            {
                AlbumName = "Only Human", Artist = "Delta Goodrem"
            };

            groupI.Albums.AddRange(new[] { alI1, alI2, alI3 });

            Groups = new ObservableCollection <AlbumGroup>();
            Groups.Add(group1);
            Groups.Add(group2);
            Groups.Add(groupC);
            Groups.Add(groupD);
            Groups.Add(groupE);
            Groups.Add(groupF);
            Groups.Add(groupG);
            Groups.Add(groupH);
            Groups.Add(groupI);

            Initials = new ObservableCollection <string>();
            Initials.Add("A");
            Initials.Add("B");
            Initials.Add("C");
            Initials.Add("D");
            Initials.Add("E");
            Initials.Add("F");
            Initials.Add("G");
            Initials.Add("H");
            Initials.Add("I");
            Initials.Add("J");
        }