예제 #1
0
 public Repository(BeblueDbContext context)
 {
     Db    = context;
     DbSet = Db.Set <TEntity>();
 }
예제 #2
0
 public CashbackRepository(BeblueDbContext context)
     : base(context)
 {
 }
예제 #3
0
 public SalesLineRepository(BeblueDbContext context)
     : base(context)
 {
 }
예제 #4
0
 public UnitOfWork(BeblueDbContext context)
 {
     _context = context;
 }
예제 #5
0
 public MusicGenderRepository(BeblueDbContext context)
     : base(context)
 {
 }
예제 #6
0
 public DiscMusicRepository(BeblueDbContext context)
     : base(context)
 {
 }
예제 #7
0
        /// <summary>
        /// Generate default clients, identity and api resources
        /// </summary>
        private static async Task EnsureSeedContextData(BeblueDbContext context)
        {
            foreach (var musicGender in EnsureSeedMusicGenderData())
            {
                if (!context.MusicGender.Any())
                {
                    await context.MusicGender.AddAsync(musicGender);
                }

                if (!context.Cashback.Any())
                {
                    for (int i = 0; i < 7; i++)
                    {
                        var     DayOfWeek = (DayOfWeek)i;
                        decimal percent   = 0;

                        #region Calculate percent of cashback
                        switch (DayOfWeek)
                        {
                        case DayOfWeek.Friday:
                            if (musicGender.Description == "POP")
                            {
                                percent = 0.15M;
                            }
                            else if (musicGender.Description == "MPB")
                            {
                                percent = 0.25M;
                            }
                            else if (musicGender.Description == "CLASSIC")
                            {
                                percent = 0.18M;
                            }
                            else if (musicGender.Description == "ROCK")
                            {
                                percent = 0.2M;
                            }
                            break;

                        case DayOfWeek.Monday:
                            if (musicGender.Description == "POP")
                            {
                                percent = 0.07M;
                            }
                            else if (musicGender.Description == "MPB")
                            {
                                percent = 0.05M;
                            }
                            else if (musicGender.Description == "CLASSIC")
                            {
                                percent = 0.03M;
                            }
                            else if (musicGender.Description == "ROCK")
                            {
                                percent = 0.1M;
                            }
                            break;

                        case DayOfWeek.Saturday:
                            if (musicGender.Description == "POP")
                            {
                                percent = 0.2M;
                            }
                            else if (musicGender.Description == "MPB")
                            {
                                percent = 0.3M;
                            }
                            else if (musicGender.Description == "CLASSIC")
                            {
                                percent = 0.25M;
                            }
                            else if (musicGender.Description == "ROCK")
                            {
                                percent = 0.4M;
                            }
                            break;

                        case DayOfWeek.Sunday:
                            if (musicGender.Description == "POP")
                            {
                                percent = 0.25M;
                            }
                            else if (musicGender.Description == "MPB")
                            {
                                percent = 0.3M;
                            }
                            else if (musicGender.Description == "CLASSIC")
                            {
                                percent = 0.35M;
                            }
                            else if (musicGender.Description == "ROCK")
                            {
                                percent = 0.4M;
                            }
                            break;

                        case DayOfWeek.Thursday:
                            if (musicGender.Description == "POP")
                            {
                                percent = 0.1M;
                            }
                            else if (musicGender.Description == "MPB")
                            {
                                percent = 0.2M;
                            }
                            else if (musicGender.Description == "CLASSIC")
                            {
                                percent = 0.13M;
                            }
                            else if (musicGender.Description == "ROCK")
                            {
                                percent = 0.15M;
                            }
                            break;

                        case DayOfWeek.Tuesday:
                            if (musicGender.Description == "POP")
                            {
                                percent = 0.06M;
                            }
                            else if (musicGender.Description == "MPB")
                            {
                                percent = 0.1M;
                            }
                            else if (musicGender.Description == "CLASSIC")
                            {
                                percent = 0.05M;
                            }
                            else if (musicGender.Description == "ROCK")
                            {
                                percent = 0.15M;
                            }
                            break;

                        case DayOfWeek.Wednesday:
                            if (musicGender.Description == "POP")
                            {
                                percent = 0.02M;
                            }
                            else if (musicGender.Description == "MPB")
                            {
                                percent = 0.15M;
                            }
                            else if (musicGender.Description == "CLASSIC")
                            {
                                percent = 0.08M;
                            }
                            else if (musicGender.Description == "ROCK")
                            {
                                percent = 0.15M;
                            }
                            break;
                        }



                        #endregion

                        await context.Cashback.AddAsync(new Cashback(new Guid(), musicGender.Id, DayOfWeek, percent));
                    }
                }

                if (!context.DiscMusic.Any())
                {
                    var listDisc = new List <DiscMusic>();
                    switch (musicGender.Description)
                    {
                    case "CLASSIC":
                        listDisc = await LoadAlbunsBySpotify(musicGender, "classical");

                        listDisc.ForEach(e => context.DiscMusic.AddAsync(e));
                        break;

                    case "MPB":
                        listDisc = await LoadAlbunsBySpotify(musicGender, "brazilian");

                        listDisc.ForEach(e => context.DiscMusic.AddAsync(e));
                        break;

                    case "POP":
                        listDisc = await LoadAlbunsBySpotify(musicGender, "pop");

                        listDisc.ForEach(e => context.DiscMusic.AddAsync(e));
                        break;

                    case "ROCK":
                        listDisc = await LoadAlbunsBySpotify(musicGender, "rock");

                        listDisc.ForEach(e => context.DiscMusic.AddAsync(e));
                        break;
                    }
                }
            }

            await context.SaveChangesAsync();
        }