Пример #1
0
        public async Task <BandDTO> CreateBandAsync(CreateBandDTO createBandDTO)
        {
            var genres = await _DBContext.Genres.Where(g => createBandDTO.GenreIds.Contains(g.Id)).ToListAsync();

            if (genres.Count < 1)
            {
                throw new BadArgumentException("No genres found. Band can not exist without a genre.");
            }

            var band = new BandEntity
            {
                Name        = createBandDTO.Name,
                Description = createBandDTO.Description,
                PhotoURL    = createBandDTO.PhotoURL,
                BandGenres  = genres.Select(genre => new BandGenreEntity {
                    GenreId = genre.Id
                }).ToList()
            };

            await _DBContext.Bands.AddAsync(band);

            await _DBContext.SaveChangesAsync();

            var bandDTO = _mapper.Map <BandDTO>(band);

            return(bandDTO);
        }
Пример #2
0
    public void WhereLiteEquals()
    {
        ArtistEntity wretzky = Database.Query <ArtistEntity>().SingleEx(a => a.Sex == Sex.Female);

        BandEntity smashing = (from b in Database.Query <BandEntity>()
                               from a in b.Members
                               where a.ToLite().Is(wretzky.ToLite())
                               select b).SingleEx();
    }
Пример #3
0
        public void MapBand()
        {
            //Arrange
            var id = Guid.NewGuid();

            var entity = new BandEntity
            {
                Id               = id,
                Country          = "Country",
                Events           = new List <EventEntity>(),
                Genre            = "Genre",
                ImagePath        = "ImagePath",
                LongDescription  = "Long Description",
                Name             = "Name",
                ShortDescription = "Short Description"
            };

            var model = new BandDetailModel
            {
                Id               = id,
                Country          = "Country",
                Events           = new List <EventDetailModel>(),
                Genre            = "Genre",
                ImagePath        = "ImagePath",
                LongDescription  = "Long Description",
                Name             = "Name",
                ShortDescription = "Short Description"
            };


            //Act
            var entityAdapted = model.Adapt <BandEntity>();

            entityAdapted.Events = model.Events.Adapt <List <EventEntity> >();

            var modelAdapted = entity.Adapt <BandDetailModel>();

            modelAdapted.Events = entity.Events.Adapt <List <EventDetailModel> >();

            //Assert
            Assert.Equal(entity, entityAdapted, BandEntity.BandEntityComparer);
            Assert.Equal(model, modelAdapted, BandDetailModel.BandDetailModelComparer);
        }
Пример #4
0
        public IList <BandEntity> SeedDataBands()
        {
            using var dbContext = DbContextFactory.CreateDbContext();
            var bandList = new List <BandEntity>();

            for (var i = 0; i < 50; i++)
            {
                var band = new BandEntity
                {
                    Country          = $"Czech{i}",
                    Genre            = $"Rock{i}",
                    Name             = $"Name{i}",
                    ImagePath        = $"C:/Users/testUser/Images/image{i}.jpg",
                    LongDescription  = $"Long description of band{i}",
                    ShortDescription = $"Short description of band{i}"
                };
                bandList.Add(band);
                dbContext.Bands.Add(band);
            }

            dbContext.SaveChanges();
            return(bandList);
        }
Пример #5
0
        public static void Initialize(MediaPlayerContext context)
        {
            if (initialized)
            {
                return;
            }

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            ArtistEntity DevonPortielje = new ArtistEntity()
            {
                Name = "Devon Portielje"
            };

            ArtistEntity ConnerMolander = new ArtistEntity()
            {
                Name = "Conner Molander"
            };

            ArtistEntity DylanPhillips = new ArtistEntity()
            {
                Name = "Dylan Phillips"
            };

            ArtistEntity IsaacSymonds = new ArtistEntity()
            {
                Name = "Isaac Symonds"
            };

            ArtistEntity TylerJoseph = new ArtistEntity()
            {
                Name = "Tyler Joseph"
            };

            ArtistEntity JoshDun = new ArtistEntity()
            {
                Name = "Josh Dun"
            };

            TrackEntity ThenAgain = new TrackEntity()
            {
                Name        = "Then Again",
                Length      = 199,
                ReleaseDate = new DateTime(2019, 11, 1)
            };

            TrackEntity FavouriteBoy = new TrackEntity()
            {
                Name        = "Favourite Boy",
                Length      = 242,
                ReleaseDate = new DateTime(2019, 11, 1)
            };

            TrackEntity Jumpsuit = new TrackEntity()
            {
                Name        = "Jumpsuit",
                Length      = 239,
                ReleaseDate = new DateTime(2018, 10, 5)
            };

            TrackEntity Levitate = new TrackEntity()
            {
                Name        = "Levitate",
                Length      = 146,
                ReleaseDate = new DateTime(2018, 10, 5)
            };

            TrackEntity Morph = new TrackEntity()
            {
                Name        = "Morph",
                Length      = 259,
                ReleaseDate = new DateTime(2018, 10, 5)
            };

            AlbumEntity ABlemishInTheGreatLight = new AlbumEntity()
            {
                Name          = "A Blemish in the Great Light",
                TrackEntities = new List <TrackEntity>()
                {
                    ThenAgain, FavouriteBoy
                }
            };

            AlbumEntity Trench = new AlbumEntity()
            {
                Name          = "Trench",
                TrackEntities = new List <TrackEntity>()
                {
                    Jumpsuit, Levitate, Morph
                }
            };

            BandEntity HalfMoonRun = new BandEntity()
            {
                Name          = "Half Moon Run",
                AlbumEntities = new List <AlbumEntity>()
                {
                    ABlemishInTheGreatLight
                },
                ArtistEntities = new List <ArtistEntity>()
                {
                    DevonPortielje, ConnerMolander, DylanPhillips, IsaacSymonds
                }
            };

            BandEntity TwentyOnePilots = new BandEntity()
            {
                Name          = "twenty one pilots",
                AlbumEntities = new List <AlbumEntity>()
                {
                    Trench
                },
                ArtistEntities = new List <ArtistEntity>()
                {
                    TylerJoseph, JoshDun
                }
            };

            context.BandContextEntities.Add(HalfMoonRun);
            context.BandContextEntities.Add(TwentyOnePilots);

            context.SaveChanges();

            initialized = true;
        }
 public void RetrieveBand()
 {
     BandEntity sigur = Database.Query <BandEntity>().SingleEx(b => b.Name.StartsWith("Sigur"));
 }
 public void AllSql()
 {
     BandEntity sigur = Database.Query <BandEntity>().SingleEx(b => b.Members.All(a => a.Sex == Sex.Male));
 }
 public void NoneSql()
 {
     BandEntity smashing = Database.Query <BandEntity>().SingleEx(b => b.Members.None(a => a.Sex == Sex.Female));
 }
Пример #9
0
    public static void Load()
    {
        var ama = new AmericanMusicAwardEntity {
            Category = "Indie Rock", Year = 1991, Result = AwardResult.Nominated
        }
        .Execute(AwardOperation.Save);

        BandEntity smashingPumpkins = new BandEntity
        {
            Name    = "Smashing Pumpkins",
            Members = "Billy Corgan, James Iha, D'arcy Wretzky, Jimmy Chamberlin"
                      .Split(',').Select(s => new ArtistEntity {
                Name = s.Trim(), Sex = s.Contains("Wretzky") ? Sex.Female : Sex.Male, Status = s.Contains("Wretzky") ? Status.Married : (Status?)null
            }).ToMList(),
            LastAward = ama,
        }.Execute(BandOperation.Save);

        CountryEntity usa = new CountryEntity {
            Name = "USA"
        };
        CountryEntity japan = new CountryEntity {
            Name = Japan
        };

        smashingPumpkins.Members.ForEach(m => m.Friends = smashingPumpkins.Members.Where(a => a.Sex != m.Sex).Select(a => a.ToLiteFat()).ToMList());

        smashingPumpkins.Execute(BandOperation.Save);

        new NoteWithDateEntity {
            CreationTime = DateTime.Now.AddHours(+8), CreationDate = DateTime.Now.AddHours(+8).ToDateOnly(), Text = "American alternative rock band", Target = smashingPumpkins
        }
        .Execute(NoteWithDateOperation.Save);

        LabelEntity virgin = new LabelEntity {
            Name = "Virgin", Country = usa, Node = SqlHierarchyId.GetRoot().FirstChild()
        }
        .Execute(LabelOperation.Save);

        new AlbumEntity
        {
            Name   = "Siamese Dream",
            Year   = 1993,
            Author = smashingPumpkins,
            Songs  = { new SongEmbedded {
                           Name = "Disarm"
                       } },
            Label = virgin
        }.Execute(AlbumOperation.Save);

        AlbumEntity mellon = new AlbumEntity
        {
            Name   = "Mellon Collie and the Infinite Sadness",
            Year   = 1995,
            Author = smashingPumpkins,
            Songs  =
            {
                new SongEmbedded {
                    Name = "Zero", Duration = TimeSpan.FromSeconds(123)
                },
                new SongEmbedded {
                    Name = "1976"
                },
                new SongEmbedded {
                    Name = "Tonight, Tonight", Duration = TimeSpan.FromSeconds(376)
                }
            },
            BonusTrack = new SongEmbedded {
                Name = "Jellybelly"
            },
            Label = virgin
        }.Execute(AlbumOperation.Save);

        new NoteWithDateEntity {
            CreationTime = DateTime.Now.AddDays(-100).AddHours(-8), CreationDate = DateTime.Now.AddDays(-100).AddHours(-8).ToDateOnly(), Text = "The blue one with the angel", Target = mellon
        }
        .Execute(NoteWithDateOperation.Save);

        LabelEntity wea = new LabelEntity {
            Name = "WEA International", Country = usa, Owner = virgin.ToLite(), Node = virgin.Node.FirstChild()
        }
        .Execute(LabelOperation.Save);

        new AlbumEntity
        {
            Name   = "Zeitgeist",
            Year   = 2007,
            Author = smashingPumpkins,
            Songs  = { new SongEmbedded {
                           Name = "Tarantula"
                       } },
            BonusTrack = new SongEmbedded {
                Name = "1976"
            },
            Label = wea,
        }.Execute(AlbumOperation.Save);

        new AlbumEntity
        {
            Name   = "American Gothic",
            Year   = 2008,
            Author = smashingPumpkins,
            Songs  = { new SongEmbedded {
                           Name = "The Rose March", Duration = TimeSpan.FromSeconds(276)
                       } },
            Label = wea,
        }.Execute(AlbumOperation.Save);

        var pa = new PersonalAwardEntity {
            Category = "Best Artist", Year = 1983, Result = AwardResult.Won
        }.Execute(AwardOperation.Save);

        ArtistEntity michael  = new ArtistEntity
        {
            Name      = "Michael Jackson",
            Dead      = true,
            LastAward = pa,
            Status    = Status.Single,
            Friends   = { smashingPumpkins.Members.SingleEx(a => a.Name.Contains("Billy Corgan")).ToLite() }
        }.Execute(ArtistOperation.Save);;

        new NoteWithDateEntity {
            CreationTime = new DateTime(2009, 6, 25, 0, 0, 0), CreationDate = new DateOnly(2009, 6, 25), Text = "Death on June, 25th", Target = michael
        }
        .Execute(NoteWithDateOperation.Save);

        new NoteWithDateEntity {
            CreationTime = new DateTime(2000, 1, 1, 0, 0, 0), CreationDate = new DateOnly(2000, 1, 1), Text = null !, Target = michael
        }
Пример #10
0
        public void MapEvent()
        {
            //Arrange


            var stageEntity = new StageEntity()
            {
                Id        = Guid.NewGuid(),
                ImagePath = "ImagePath",
                Name      = "Name",
            };

            var stageModel = new StageListModel()
            {
                Id        = stageEntity.Id,
                ImagePath = "ImagePath",
                Name      = "Name",
            };

            var bandEntity = new BandEntity
            {
                Id        = Guid.NewGuid(),
                ImagePath = "ImagePath",
                Name      = "Name",
            };

            var bandModel = new BandListModel()
            {
                Id        = bandEntity.Id,
                ImagePath = "ImagePath",
                Name      = "Name",
            };


            var id = Guid.NewGuid();

            var entity = new EventEntity
            {
                Id      = id,
                Start   = new DateTime(2020, 11, 25, 12, 00, 00),
                End     = new DateTime(2020, 11, 25, 14, 00, 00),
                BandId  = bandEntity.Id,
                Band    = bandEntity,
                StageId = stageEntity.Id,
                Stage   = stageEntity
            };

            var model = new EventDetailModel
            {
                Id      = id,
                Start   = new DateTime(2020, 11, 25, 12, 00, 00),
                End     = new DateTime(2020, 11, 25, 14, 00, 00),
                BandId  = bandModel.Id,
                Band    = bandModel,
                StageId = stageModel.Id,
                Stage   = stageModel
            };


            //Act
            var entityAdapted = model.Adapt <EventEntity>();
            var modelAdapted  = entity.Adapt <EventDetailModel>();


            //Assert
            Assert.Equal(entity, entityAdapted, EventEntity.EventEntityComparer);
            Assert.Equal(model, modelAdapted, EventDetailModel.EventDetailModelComparer);
        }