public async Task <IActionResult> Create(DataRealTime data, CancellationToken cancellationToken)
        {
            if (data.Id > 0)
            {
                DataRealTime result =
                    await InMemoryDbContext.DataRealTime
                    .AsNoTracking().SingleOrDefaultAsync(c => c.Id == data.Id, cancellationToken);

                result.Title = data.Title;
                result.Price = data.Price;

                InMemoryDbContext.DataRealTime.Update(result);
                await InMemoryDbContext.SaveChangesAsync(cancellationToken);

                return(View());
            }
            else
            {
                //int resultId =
                //	await InMemoryDbContext.DataRealTime.AsNoTracking()
                //			.OrderByDescending(c => c.Id)
                //			.Select(c => c.Id)
                //			.FirstOrDefaultAsync(cancellationToken);

                DataRealTime dataRealTime = new DataRealTime
                {
                    Id = new Random().Next(1, 9999),
                    //Id = resultId++,
                    Title = data.Title,
                    Price = data.Price,
                };

                await InMemoryDbContext.DataRealTime.AddAsync(dataRealTime, cancellationToken);

                await InMemoryDbContext.SaveChangesAsync(cancellationToken);

                return(View());
            }
        }
        public When_ProviderVenueRepository_GetVenueWithQualifications_Is_Called()
        {
            var logger = Substitute.For <ILogger <ProviderVenueRepository> >();

            using var dbContext = InMemoryDbContext.Create();
            dbContext.Add(new Domain.Models.ProviderVenue
            {
                Id                   = Id,
                Name                 = VenueName,
                Postcode             = Postcode,
                IsEnabledForReferral = IsEnabledForReferral,
                IsRemoved            = IsRemoved,
                Provider             = new Domain.Models.Provider
                {
                    Id            = ProviderId,
                    Name          = ProviderName,
                    IsCdfProvider = IsCdfProvider
                },
                ProviderQualification = new List <Domain.Models.ProviderQualification>
                {
                    new Domain.Models.ProviderQualification
                    {
                        Qualification = new Domain.Models.Qualification
                        {
                            Id         = QualificationId,
                            LarId      = LarId,
                            Title      = Title,
                            ShortTitle = ShortTitle
                        }
                    }
                }
            });
            dbContext.SaveChanges();

            var repository = new ProviderVenueRepository(logger, dbContext);

            _result = repository.GetVenueWithQualificationsAsync(Id)
                      .GetAwaiter().GetResult();
        }
Exemple #3
0
    public void DeleteIngredient()
    {
        using var inMemoryDbContext = new InMemoryDbContext();
        var vegetables = new ArticleGroup("Vegetables");
        var tomato     = new Article {
            Name = "Tomato", ArticleGroup = vegetables, IsInventory = false
        };
        var piece = new Unit("Piece");

        inMemoryDbContext.ArticleGroups.Add(vegetables);
        inMemoryDbContext.Articles.Add(tomato);
        inMemoryDbContext.Units.Add(piece);
        var ingredient = inMemoryDbContext.Ingredients.Add(new Ingredient(tomato, 2, piece));

        inMemoryDbContext.SaveChanges();
        var testee = new IngredientDbAccess(inMemoryDbContext);

        testee.DeleteIngredient(ingredient.Entity);
        inMemoryDbContext.SaveChanges();

        inMemoryDbContext.Ingredients.Should().NotContain(ingredient.Entity);
    }
Exemple #4
0
        public async void AllReturnsEntitiesWithSubEntities()
        {
            var options = InMemoryDbContextUtil.CreateInMemoryDatabaseOption(
                nameof(this.AllReturnsEntitiesWithSubEntities));

            using (var dbContext = new InMemoryDbContext(options))
                Customer.Seed(dbContext);

            using (var dbContext = new InMemoryDbContext(options))
            {
                var numberOfCustomers = dbContext.Customers.Count();
                var repository        = new Repository <Customer>(dbContext);
                var specification     = new Specification <Customer>();
                specification.Include(x => x.Address);
                var customers = await repository.All(
                    specification
                    );

                Assert.Equal(numberOfCustomers, customers.Count);
                Assert.NotNull(customers.ElementAt(0).Address);
            }
        }
Exemple #5
0
        public When_QualificationService_Is_Called_To_SearchQualifications()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

            var qlogger   = Substitute.For <ILogger <GenericRepository <Domain.Models.Qualification> > >();
            var qrmlogger = Substitute.For <ILogger <GenericRepository <QualificationRouteMapping> > >();

            using var dbContext = InMemoryDbContext.Create();
            dbContext.AddRange(new ValidQualificationListBuilder().Build());
            dbContext.AddRange(
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 1
            },
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 2
            },
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 3
            });

            dbContext.SaveChanges();

            var qualificationRepo = new GenericRepository <Domain.Models.Qualification>(qlogger, dbContext);
            var routeMappingRepo  = new GenericRepository <QualificationRouteMapping>(qrmlogger, dbContext);

            var learningAimReferenceRepository = Substitute.For <IRepository <LearningAimReference> >();

            var service = new QualificationService(mapper, qualificationRepo, routeMappingRepo, learningAimReferenceRepository);

            _searchResults = service.SearchQualificationAsync("Scientific Reasoning").GetAwaiter().GetResult();
        }
Exemple #6
0
        public async Task GetPostCommentsAsync_WithValidPostId_ShouldReturnPostComments()
        {
            // Arrange
            this.InitilaizeMapper();
            var context            = InMemoryDbContext.Initiliaze();
            var commentsRepository = new EfDeletableEntityRepository <Comment>(context);
            var postsRepository    = new EfRepository <Post>(context);
            var service            = new CommentsService(commentsRepository, postsRepository);

            await this.SeedUsersAndPost(context);

            await this.SeedComments(context);

            // Act
            int takeCount = 10;
            var comments  = await service.GetPostCommentsAsync(52, 0, takeCount);

            int expectedCount = context.Comments.Where(x => x.PostId == 52).Take(takeCount).Count();
            int actualCount   = comments.Take(takeCount).Count();

            // Assert
            Assert.Equal(expectedCount, actualCount);
        }
        public When_QualificationRepository_Update_Is_Called()
        {
            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.Qualification> > >();

            using var dbContext = InMemoryDbContext.Create();
            var entity = new ValidQualificationBuilder().Build();

            dbContext.Add(entity);
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.Qualification>(logger, dbContext);

            entity.Title      = "Updated Title";
            entity.ShortTitle = "Updated Short Title";

            entity.ModifiedOn = new DateTime(2019, 11, 01, 12, 30, 00);
            entity.ModifiedBy = "UpdateTestUser";

            repository.UpdateAsync(entity).GetAwaiter().GetResult();

            _result = repository.GetSingleOrDefaultAsync(x => x.Id == 1)
                      .GetAwaiter().GetResult();
        }
Exemple #8
0
        public async Task GetAllChatRoomsAsync_WithValidUserId_ShouldReturnAllUserChatRooms()
        {
            // Arrange
            this.InitilaizeMapper();
            var context             = InMemoryDbContext.Initiliaze();
            var messagesRepository  = new EfRepository <Message>(context);
            var chatRoomsRepository = new EfRepository <ChatRoom>(context);
            var usersRepository     = new EfRepository <ApplicationUser>(context);
            var service             = new MessagesService(messagesRepository, chatRoomsRepository, usersRepository);

            await this.SeedUsers(context);

            await this.SeedChatRooms(context);

            // Act
            var rooms = await service.GetAllChatRoomsAsync("userId"); // Should return both rooms from the seeding.

            int expectedCount = context.ChatRooms.Count();
            int actualCount   = rooms.Count();

            // Assert
            Assert.Equal(expectedCount, actualCount);
        }
Exemple #9
0
        public When_EmailTemplateRepository_Update_Is_Called()
        {
            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.EmailTemplate> > >();

            using var dbContext = InMemoryDbContext.Create();
            var entity = new ValidEmailTemplateBuilder().Build();

            dbContext.Add(entity);
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.EmailTemplate>(logger, dbContext);

            entity.TemplateId   = new Guid("98706811-DCE7-4938-87D4-CD14CB6F86A4").ToString();
            entity.TemplateName = "UpdatedTemplate";

            entity.ModifiedOn = new DateTime(2019, 11, 01, 12, 30, 00);
            entity.ModifiedBy = "UpdateTestUser";

            repository.UpdateAsync(entity).GetAwaiter().GetResult();

            _result = repository.GetSingleOrDefaultAsync(x => x.Id == 1)
                      .GetAwaiter().GetResult();
        }
Exemple #10
0
        public When_BankHolidayRepository_Update_Is_Called()
        {
            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.BankHoliday> > >();

            using var dbContext = InMemoryDbContext.Create();
            var entity = new ValidBankHolidayListBuilder().Build().First();

            dbContext.Add(entity);
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.BankHoliday>(logger, dbContext);

            entity.Date  = DateTime.Parse("2019-08-29");
            entity.Title = "Updated bank holiday";

            entity.ModifiedOn = new DateTime(2019, 11, 01, 12, 30, 00);
            entity.ModifiedBy = "UpdateTestUser";

            repository.UpdateAsync(entity).GetAwaiter().GetResult();

            _result = repository.GetSingleOrDefaultAsync(x => x.Id == 1)
                      .GetAwaiter().GetResult();
        }
Exemple #11
0
        public async Task GetProfilePostsAsync_WithValidData_ShouldReturnProfilePosts()
        {
            // Arrange
            this.InitilaizeMapper();
            var context        = InMemoryDbContext.Initiliaze();
            var postRepository = new EfDeletableEntityRepository <Post>(context);
            var postService    = new PostsService(postRepository);

            await this.SeedUserFollower(context);

            await postRepository.AddAsync(new Post { Id = 52, Creator = context.Users.FirstOrDefault() });

            await postRepository.SaveChangesAsync();

            // Act
            var posts = await postService.GetProfilePostsAsync("testUser"); // "testUser" is seeded with SeedUserFollower.

            var expectedPostId = postRepository.All().FirstOrDefault().Id;
            var actualPostId   = posts.FirstOrDefault().Id;

            // Assert
            Assert.Equal(expectedPostId, actualPostId);
        }
Exemple #12
0
        public async Task RemoveAsync_WithValidData_ShouldReturnTrue()
        {
            // Arrange
            var context         = InMemoryDbContext.Initiliaze();
            var likesRepository = new EfRepository <Like>(context);
            var usersRepository = new EfRepository <ApplicationUser>(context);
            var postsRepository = new EfRepository <Post>(context);
            var service         = new LikesService(likesRepository, usersRepository, postsRepository);

            await this.SeedUserAndPost(context);

            await this.SeedLikes(context);

            var model = new AddLikeModel {
                UserId = "userId", PostId = 52
            };

            // Act
            bool isLikeDeleted = await service.RemoveAsync(model);

            // Assert
            Assert.True(isLikeDeleted);
        }
Exemple #13
0
        public async Task GetFeedAsync_WithValidData_ShouldReturnFeedPosts()
        {
            // Arrange
            this.InitilaizeMapper();
            var context        = InMemoryDbContext.Initiliaze();
            var postRepository = new EfDeletableEntityRepository <Post>(context);
            var postService    = new PostsService(postRepository);

            await this.SeedUserFollower(context);

            await postRepository.AddAsync(new Post { Creator = context.Users.FirstOrDefault(), Description = "feedDescription" });

            await postRepository.SaveChangesAsync();

            // Act
            var feedPosts = await postService.GetFeedAsync("followerId", 0, 2);

            var expectedPostDescription = postRepository.All().FirstOrDefault().Description;
            var actualPostDescription   = feedPosts.FirstOrDefault().Description;

            // Assert
            Assert.Equal(expectedPostDescription, actualPostDescription);
        }
        public When_Provider_BackFillProviderDisplayName_Function_Timer_Trigger_Fires()
        {
            var logger = Substitute.For <ILogger <ProviderRepository> >();

            using var dbContext = InMemoryDbContext.Create();
            dbContext.AddRange(new List <Domain.Models.Provider>
            {
                new Domain.Models.Provider
                {
                    Id          = 1,
                    Name        = "War and Peace College",
                    DisplayName = null
                },
                new Domain.Models.Provider
                {
                    Id          = 2,
                    Name        = "Provider 2",
                    DisplayName = "Display Name"
                }
            });

            dbContext.SaveChanges();

            IRepository <Domain.Models.Provider> providerRepository = new ProviderRepository(logger, dbContext);

            _functionLogRepository = Substitute.For <IRepository <FunctionLog> >();

            var providerFunctions = new Functions.Provider(providerRepository, _functionLogRepository);

            providerFunctions.BackFillProviderDisplayNameAsync(
                new TimerInfo(new ConstantSchedule(TimeSpan.Zero), null),
                new ExecutionContext(),
                new NullLogger <Functions.Provider>()
                ).GetAwaiter().GetResult();

            _results = dbContext.Provider.ToList();
        }
Exemple #15
0
        public async void GetByIdAsync_Cliente_Test()
        {
            // Arrange
            var cliente = new Cliente
            {
                Id             = Guid.Parse("8b90ec7b-20ea-413a-a4fc-2dbd40f7d2ed"),
                Nome           = "Siclano de Tal",
                DataNascimento = new DateTime(1990, 6, 18),
                Cpf            = "95721344008",
                Endereco       = new Endereco
                {
                    Id         = Guid.Parse("f245a61e-dd49-44c8-a1fb-f57247d244c2"),
                    Logradouro = "Rua Haddock Lobo, 27",
                    Bairro     = "Tijuca",
                    Cidade     = "Rio de Janeiro",
                    Estado     = "Rio de Janeiro",
                    ClienteId  = Guid.Parse("8b90ec7b-20ea-413a-a4fc-2dbd40f7d2ed")
                }
            };

            // Valid
            clienteValidation.Validate(cliente).Errors.Should().BeNullOrEmpty();

            using (var database = new InMemoryDbContext())
            {
                // Moq
                var dbContext = database.DbContext();
                database.Seed(cliente);

                // Act
                var clienteRepository = new ClienteRepository(dbContext);
                var result            = await clienteRepository.GetByIdAsync(cliente.Id);

                // Assert
                result.Nome.Should().Be(cliente.Nome);
            }
        }
Exemple #16
0
        public async void DeleteAsync_Shopping_Test()
        {
            // Arrange
            var cliente = new Cliente
            {
                Id             = Guid.Parse("3ce3c638-88fb-492a-b6db-ae3ac3910d66"),
                Nome           = "Fulano de Tal",
                DataNascimento = new DateTime(1990, 6, 18),
                Cpf            = "59479708051",
                Endereco       = new Endereco
                {
                    Id         = Guid.Parse("c0b4493d-75dc-4f8f-8259-d10114831889"),
                    Logradouro = "Avenida Atlantica, 4",
                    Bairro     = "Copacabana",
                    Cidade     = "Rio de Janeiro",
                    Estado     = "Rio de Janeiro",
                    ClienteId  = Guid.Parse("3ce3c638-88fb-492a-b6db-ae3ac3910d66")
                }
            };

            // Valid
            clienteValidation.Validate(cliente).Errors.Should().BeNullOrEmpty();

            using (var database = new InMemoryDbContext())
            {
                // Moq
                var dbContext = database.DbContext();
                database.Seed(cliente);

                // Act
                var clienteRepository = new ClienteRepository(dbContext);
                var result            = await clienteRepository.DeleteAsync(cliente);

                // Assert
                result.Should().Be(cliente);
            }
        }
Exemple #17
0
        public When_OpportunityRepository_Update_Is_Called()
        {
            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.Opportunity> > >();

            using var dbContext = InMemoryDbContext.Create();
            var entity = new ValidOpportunityBuilder().Build();

            dbContext.Add(entity);
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.Opportunity>(logger, dbContext);

            entity.EmployerContact      = "Updated Employer Contact";
            entity.EmployerContactPhone = "020 123 9999";
            entity.EmployerContactEmail = "*****@*****.**";

            entity.ModifiedOn = new DateTime(2019, 11, 01, 12, 30, 00);
            entity.ModifiedBy = "UpdateTestUser";

            repository.UpdateAsync(entity).GetAwaiter().GetResult();

            _result = repository.GetSingleOrDefaultAsync(x => x.Id == 1)
                      .GetAwaiter().GetResult();
        }
        public When_ProvisionGapRepository_Update_Is_Called()
        {
            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.ProvisionGap> > >();

            using var dbContext = InMemoryDbContext.Create();
            var entity = new ValidProvisionGapBuilder().Build();

            dbContext.Add(entity);
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.ProvisionGap>(logger, dbContext);

            entity.NoSuitableStudent   = false;
            entity.HadBadExperience    = true;
            entity.ProvidersTooFarAway = false;

            entity.ModifiedOn = new DateTime(2019, 11, 01, 12, 30, 00);
            entity.ModifiedBy = "UpdateTestUser";

            repository.UpdateAsync(entity).GetAwaiter().GetResult();

            _result = repository.GetSingleOrDefaultAsync(x => x.Id == 1)
                      .GetAwaiter().GetResult();
        }
        public When_PathRepository_Update_Is_Called()
        {
            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.Path> > >();

            using var dbContext = InMemoryDbContext.Create();
            var entity = new ValidPathBuilder().Build();

            dbContext.Add(entity);
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.Path>(logger, dbContext);

            entity.Name     = "Updated Path Name";
            entity.Keywords = "Updated Keywords";
            entity.Summary  = "Updated Summary";

            entity.ModifiedOn = new DateTime(2019, 11, 01, 12, 30, 00);
            entity.ModifiedBy = "UpdateTestUser";

            repository.UpdateAsync(entity).GetAwaiter().GetResult();

            _result = repository.GetSingleOrDefaultAsync(x => x.Id == 1)
                      .GetAwaiter().GetResult();
        }
Exemple #20
0
        public async Task CreateAsync_WithValidData_ShouldReturnUserIdOfCreator()
        {
            // Arrange
            var context            = InMemoryDbContext.Initiliaze();
            var commentsRepository = new EfDeletableEntityRepository <Comment>(context);
            var postsRepository    = new EfRepository <Post>(context);
            var service            = new CommentsService(commentsRepository, postsRepository);

            await this.SeedUsersAndPost(context);

            var model = new CommentCreateModel
            {
                CreatorId = "userId",
                PostId    = 52,
                Text      = "Comment Text",
            };

            // Act
            string expectedUserId = context.Users.FirstOrDefault().Id;
            string actualUserId   = await service.CreateAsync(model);

            // Assert
            Assert.Equal(expectedUserId, actualUserId);
        }
        public async Task GetGameByIdAsync_GetGameForTheIdPassed()
        {
            //Arrange
            var newGame = _fixture
                          .Build <GameEntity>()
                          .With(g => g.IsGameOver, false)
                          .Create();

            var dbContext = InMemoryDbContext.CreateDbContext();

            var gameRepository = new GameRepository(dbContext);

            await dbContext.AddAsync(newGame);

            await dbContext.SaveChangesAsync();

            //Act
            var result = await gameRepository.GetGameByIdAsync(newGame.GameId);

            //Assert
            result
            .Should()
            .NotBeNull();
        }
Exemple #22
0
        public async Task GetLastThreeAsync_WithValidData_ShouldReturnLast3Likes()
        {
            // Arrange
            this.InitilaizeMapper();
            var context         = InMemoryDbContext.Initiliaze();
            var likesRepository = new EfRepository <Like>(context);
            var usersRepository = new EfRepository <ApplicationUser>(context);
            var postsRepository = new EfRepository <Post>(context);
            var service         = new LikesService(likesRepository, usersRepository, postsRepository);

            await this.SeedUserAndPost(context);

            await this.SeedLikes(context);

            // Act
            var likes = await service.GetLastThreeAsync(52);

            bool firstLikeRetrieved  = likes.Any(x => x.Id == 26); // Should return false, since we require only the latest 3 likes.
            bool fourthLikeRetrieved = likes.Any(x => x.Id == 29); // Should return true.

            // Assert
            Assert.False(firstLikeRetrieved);
            Assert.True(fourthLikeRetrieved);
        }
Exemple #23
0
        public async Task AddAsync_WithValidData_ShouldAddLikeToDatabase()
        {
            // Arrange
            var context         = InMemoryDbContext.Initiliaze();
            var likesRepository = new EfRepository <Like>(context);
            var usersRepository = new EfRepository <ApplicationUser>(context);
            var postsRepository = new EfRepository <Post>(context);
            var service         = new LikesService(likesRepository, usersRepository, postsRepository);

            await this.SeedUserAndPost(context);

            var model = new AddLikeModel {
                UserId = "userId", PostId = 52
            };

            // Act
            int expectedCount = context.Likes.Count() + 1;
            await service.AddAsync(model);

            int actualCount = context.Likes.Count();

            // Assert
            Assert.Equal(expectedCount, actualCount);
        }
        public async Task DeleteRequestAsync_WithValidReqesterUsername_ShouldRemoveFromDatabase()
        {
            // Arrange
            var context                = InMemoryDbContext.Initiliaze();
            var userRepository         = new EfDeletableEntityRepository <ApplicationUser>(context);
            var userFollowerRepository = new EfRepository <UserFollower>(context);
            var profileService         = new ProfilesService(userRepository, userFollowerRepository);

            await this.SeedUsers(context);

            await userFollowerRepository.AddAsync(new UserFollower
                                                  { UserId = "userOneId", FollowerId = "userTwoId", IsApproved = false });

            await userFollowerRepository.SaveChangesAsync();

            // Act
            int expectedCount = userFollowerRepository.All().Count() - 1;
            await profileService.DeleteRequestAsync("userTwoUsername");

            int actualCount = userFollowerRepository.All().Count();

            // Assert
            Assert.Equal(expectedCount, actualCount);
        }
        public When_BackgroundProcessHistoryRepository_Update_Is_Called()
        {
            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.BackgroundProcessHistory> > >();

            using var dbContext = InMemoryDbContext.Create();
            var entity = new ValidBackgroundProcessHistoryBuilder().Build();

            dbContext.Add(entity);
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.BackgroundProcessHistory>(logger, dbContext);

            entity.RecordCount   = 10;
            entity.Status        = BackgroundProcessHistoryStatus.Complete.ToString();
            entity.StatusMessage = "UpdatedStatus Message";

            entity.ModifiedOn = new DateTime(2019, 11, 01, 12, 30, 00);
            entity.ModifiedBy = "UpdateTestUser";

            repository.UpdateAsync(entity).GetAwaiter().GetResult();

            _result = repository.GetSingleOrDefaultAsync(x => x.Id == 1)
                      .GetAwaiter().GetResult();
        }
        public async Task GetUserFollowingsAsync_WithValidData_ShouldReturnUserFollowings()
        {
            // Arrange
            this.InitilaizeMapper();
            var context                = InMemoryDbContext.Initiliaze();
            var userRepository         = new EfDeletableEntityRepository <ApplicationUser>(context);
            var userFollowerRepository = new EfRepository <UserFollower>(context);
            var profileService         = new ProfilesService(userRepository, userFollowerRepository);

            await this.SeedUsers(context);

            await userFollowerRepository.AddAsync(new UserFollower { UserId = "userOneId", FollowerId = "userTwoId", IsApproved = true });

            await userFollowerRepository.SaveChangesAsync();

            // Act
            var followings = await profileService.GetUserFollowingsAsync("userTwoUsername");

            string expectedUsername = userRepository.All().FirstOrDefault(u => u.Id == "userOneId").UserName;
            string actualUsername   = followings.FirstOrDefault().UserUserName;

            // Assert
            Assert.Equal(expectedUsername, actualUsername);
        }
Exemple #27
0
 public LiveDataController(InMemoryDbContext inMemoryDbContext) => InMemoryDbContext = inMemoryDbContext;
    public static void Initialize(IServiceProvider serviceProvider)
    {
        using (var context = new InMemoryDbContext(
                   serviceProvider.GetRequiredService <DbContextOptions <InMemoryDbContext> >()))
        {
            if (context.Parties.Any() && context.Characters.Any())
            {
                return;   // Data was already seeded
            }

            context.Characters.AddRange(
                new Models.Character()
            {
                Name         = "Melisandre",
                Race         = Enum.GetName(typeof(Race), Race.Human),
                Class        = Enum.GetName(typeof(Class), Class.Warlock),
                Health       = 1,
                Strength     = 4,
                Dexterity    = 2,
                Constitution = 2,
                Intelligence = 18,
                Wisdom       = 18,
                Charisma     = 18
            },
                new Models.Character()
            {
                Name         = "Barristan Selmy",
                Race         = Enum.GetName(typeof(Race), Race.Human),
                Class        = Enum.GetName(typeof(Class), Class.Paladin),
                Health       = 51,
                Strength     = 14,
                Dexterity    = 16,
                Constitution = 12,
                Intelligence = 7,
                Wisdom       = 15,
                Charisma     = 12
            },
                new Models.Character()
            {
                Name         = "Varys the Spider",
                Race         = Enum.GetName(typeof(Race), Race.Human),
                Class        = Enum.GetName(typeof(Class), Class.Bard),
                Health       = 24,
                Strength     = 4,
                Dexterity    = 2,
                Constitution = 2,
                Intelligence = 18,
                Wisdom       = 18,
                Charisma     = 18
            });

            // High Sparrow?
            // Melisandre?
            // Sandor Clegane?
            // Baratheons?
            // Dorne?
            // Essos characters?
            context.SaveChanges();

            context.Parties.AddRange(
                new Models.Party
            {
                Name       = "The Starks",
                Tagline    = "Winter is Coming.",
                LogoUrl    = "https://res.cloudinary.com/byronguina/image/upload/c_fit,f_auto,h_180,w_250/v1558197113/Stark.jpg",
                Characters = new List <Models.Character>()
                {
                    new Models.Character()
                    {
                        Name         = "Jon Snow",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192953/Jon_Snow.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Ranger),
                        Health       = 50,
                        Strength     = 16,
                        Dexterity    = 15,
                        Constitution = 14,
                        Intelligence = 8,
                        Wisdom       = 12,
                        Charisma     = 16
                    },
                    new Models.Character()
                    {
                        Name         = "Arya Stark",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192953/Arya_Stark.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Rogue),
                        Health       = 35,
                        Strength     = 10,
                        Dexterity    = 18,
                        Constitution = 8,
                        Intelligence = 12,
                        Wisdom       = 12,
                        Charisma     = 16
                    },
                    new Models.Character()
                    {
                        Name         = "Sansa Stark",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192954/Sansa_Stark.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Bard),
                        Health       = 28,
                        Strength     = 6,
                        Dexterity    = 6,
                        Constitution = 18,
                        Intelligence = 18,     // Apparently she's the smartest person Arya knows...
                        Wisdom       = 14,
                        Charisma     = 16
                    },
                    new Models.Character()
                    {
                        Name         = "Bran Stark",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192953/Bran_Stark.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Druid),
                        Health       = 1,
                        Strength     = 1,
                        Dexterity    = 1,
                        Constitution = 1,
                        Intelligence = 99,
                        Wisdom       = 99,
                        Charisma     = 1
                    },
                }
            },
                new Models.Party
            {
                Name       = "The Targaryens",
                Tagline    = "Fire and Blood.",
                LogoUrl    = "https://res.cloudinary.com/byronguina/image/upload/c_fit,f_auto,h_180,w_250/v1558196262/Targaryen.jpg",
                Characters = new List <Models.Character>()
                {
                    new Models.Character()
                    {
                        Name         = "Daenerys",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192953/Danaerys.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Sorcerer), // Her Targaryen linear allows her to be Mother of Dragons
                        Health       = 22,
                        Strength     = 12,
                        Dexterity    = 12,
                        Constitution = 18,
                        Intelligence = 8,
                        Wisdom       = 12,
                        Charisma     = 18
                    },
                    new Models.Character()
                    {
                        Name         = "Jorah Mormont",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192953/Jorah_Mormont.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Paladin),
                        Health       = 65,
                        Strength     = 16,
                        Dexterity    = 15,
                        Constitution = 14,
                        Intelligence = 8,
                        Wisdom       = 15,
                        Charisma     = 8
                    },
                    new Models.Character()
                    {
                        Name         = "Grey Worm",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192953/Grey_Worm.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Monk),
                        Health       = 65,
                        Strength     = 16,
                        Dexterity    = 18,
                        Constitution = 14,
                        Intelligence = 8,
                        Wisdom       = 12,
                        Charisma     = 1
                    },
                    new Models.Character()
                    {
                        Name         = "Tyrion Lannister",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558192954/Tyrion_Lannister.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Dwarf),
                        Class        = Enum.GetName(typeof(Class), Class.Bard),
                        Health       = 24,
                        Strength     = 4,
                        Dexterity    = 8,
                        Constitution = 8,
                        Intelligence = 18,
                        Wisdom       = 18,
                        Charisma     = 18
                    },
                }
            },
                new Models.Party
            {
                Name       = "The Lannisters",
                Tagline    = "Hear Me Roar!",
                LogoUrl    = "https://res.cloudinary.com/byronguina/image/upload/c_fit,f_auto,h_180,w_250/v1558197786/Lannister.png",
                Characters = new List <Models.Character>()
                {
                    new Models.Character()
                    {
                        Name         = "Jamie Lannister",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558198213/Jamie.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Paladin),
                        Health       = 50,
                        Strength     = 16,
                        Dexterity    = 12,
                        Constitution = 18,
                        Intelligence = 1,
                        Wisdom       = 12,
                        Charisma     = 18
                    },
                    new Models.Character()
                    {
                        Name         = "Cersei Lannister",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558198213/Cersei.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Bard),
                        Health       = 18,
                        Strength     = 8,
                        Dexterity    = 12,
                        Constitution = 5,
                        Intelligence = 8,     // "You're not half as smart as you think you are." - Tywin, to Cersei
                        Wisdom       = 12,
                        Charisma     = 9
                    },
                    new Models.Character()
                    {
                        Name         = "Gregor Clegane",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558198213/Gregor.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Barbarian),
                        Health       = 99,
                        Strength     = 18,
                        Dexterity    = 10,
                        Constitution = 18,
                        Intelligence = 1,
                        Wisdom       = 1,
                        Charisma     = 1
                    },
                    new Models.Character()
                    {
                        Name         = "Maester Qyburn",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558198213/Qyburn.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Warlock),
                        Health       = 24,
                        Strength     = 8,
                        Dexterity    = 8,
                        Constitution = 8,
                        Intelligence = 18,
                        Wisdom       = 18,
                        Charisma     = 14
                    },
                }
            },
                new Models.Party
            {
                Name       = "White Walkers",
                Tagline    = "Army of the Dead.",
                LogoUrl    = "https://res.cloudinary.com/byronguina/image/upload/c_fit,f_auto,h_180,w_250/v1558197787/White_Walkers.jpg",
                Characters = new List <Models.Character>()
                {
                    new Models.Character()
                    {
                        Name         = "The Night King",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Night_King.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.DeathKnight),
                        Class        = Enum.GetName(typeof(Class), Class.Sorcerer),
                        Health       = 85,
                        Strength     = 18,
                        Dexterity    = 18,
                        Constitution = 18,
                        Intelligence = 18,
                        Wisdom       = 18,
                        Charisma     = 18
                    },
                    new Models.Character()
                    {
                        Name         = "Wight Giant",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Wight_Giant.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Giant),
                        Class        = Enum.GetName(typeof(Class), Class.Barbarian),
                        Health       = 150,
                        Strength     = 18,
                        Dexterity    = 10,
                        Constitution = 18,
                        Intelligence = 1,
                        Wisdom       = 1,
                        Charisma     = 1
                    },
                    new Models.Character()
                    {
                        Name         = "Viserion",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Viserion.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.IceDragon),
                        Class        = Enum.GetName(typeof(Class), Class.Wizard),
                        Health       = 350,
                        Strength     = 18,
                        Dexterity    = 18,
                        Constitution = 18,
                        Intelligence = 18,
                        Wisdom       = 18,
                        Charisma     = 1
                    },
                    new Models.Character()
                    {
                        Name         = "Wight",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Wight.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Zombie),
                        Class        = Enum.GetName(typeof(Class), Class.Barbarian),
                        Health       = 25,
                        Strength     = 12,
                        Dexterity    = 18,
                        Constitution = 8,
                        Intelligence = 1,
                        Wisdom       = 1,
                        Charisma     = 1
                    }
                }
            },
                new Models.Party
            {
                Name       = "We Exist!",
                Tagline    = "The forgotten characters.",
                LogoUrl    = "https://res.cloudinary.com/byronguina/image/upload/c_fit,f_auto,h_180,w_250/v1558197786/Baelish.png",
                Characters = new List <Models.Character>()
                {
                    new Models.Character()
                    {
                        Name         = "Brienne of Tarth",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Brienne.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Paladin), // Closest thing to knight I think
                        Health       = 40,
                        Strength     = 17,
                        Dexterity    = 10,
                        Constitution = 18,
                        Intelligence = 10,
                        Wisdom       = 10,
                        Charisma     = 6    // Arguable
                    },
                    new Models.Character()
                    {
                        Name         = "Davos Seaworth",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Davos.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Rogue),
                        Health       = 24,
                        Strength     = 12,
                        Dexterity    = 16,
                        Constitution = 12,
                        Intelligence = 12,
                        Wisdom       = 18,
                        Charisma     = 12
                    },
                    new Models.Character()
                    {
                        Name         = "Bronn",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Bronn.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Rogue),
                        Health       = 48,
                        Strength     = 14,
                        Dexterity    = 16,
                        Constitution = 12,
                        Intelligence = 14,
                        Wisdom       = 14,
                        Charisma     = 14
                    },
                    new Models.Character()
                    {
                        Name         = "Petyr Baelish",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Littlefinger.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Wizard),
                        Health       = 24,
                        Strength     = 4,
                        Dexterity    = 2,
                        Constitution = 2,
                        Intelligence = 18,
                        Wisdom       = 18,
                        Charisma     = 18
                    }
                }
            },
                new Models.Party
            {
                Name       = "The Night's Watch",
                Tagline    = "And now our watch has ended...",
                LogoUrl    = "https://res.cloudinary.com/byronguina/image/upload/c_fit,f_auto,h_180,w_280/v1558197787/Night_Watch.png",
                Characters = new List <Models.Character>()
                {
                    new Models.Character()
                    {
                        Name         = "Samwell Tarly",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199541/Sam.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Bard),
                        Health       = 24,
                        Strength     = 14,
                        Dexterity    = 8,
                        Constitution = 8,
                        Intelligence = 18,
                        Wisdom       = 18,
                        Charisma     = 6
                    },
                    new Models.Character()
                    {
                        Name         = "Jeor Mormont",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Jeor.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Fighter),
                        Health       = 55,
                        Strength     = 15,
                        Dexterity    = 8,
                        Constitution = 18,
                        Intelligence = 12,
                        Wisdom       = 14,
                        Charisma     = 16
                    },
                    new Models.Character()
                    {
                        Name         = "Eddison Tollett",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Ed.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Fighter),
                        Health       = 38,
                        Strength     = 14,
                        Dexterity    = 12,
                        Constitution = 12,
                        Intelligence = 10,
                        Wisdom       = 10,
                        Charisma     = 10
                    },
                    new Models.Character()
                    {
                        Name         = "Maester Aemon",
                        ImageUrl     = "https://res.cloudinary.com/byronguina/image/upload/v1558199320/Aemon.jpg",
                        Race         = Enum.GetName(typeof(Race), Race.Human),
                        Class        = Enum.GetName(typeof(Class), Class.Wizard),
                        Health       = 24,
                        Strength     = 4,
                        Dexterity    = 2,
                        Constitution = 2,
                        Intelligence = 18,
                        Wisdom       = 18,
                        Charisma     = 18
                    }
                }
            });

            context.SaveChanges();

            foreach (var p in context.Parties)
            {
                p.Characters = context.Characters.Where(c => c.PartyId == p.Id);
            }
            ;

            context.SaveChanges();
        }
    }
Exemple #29
0
 public ShareHelper(InMemoryDbContext idb)
 {
     _idb = idb;
     ph   = new PortfolioHelper(idb);
 }
 public LiveDataController(InMemoryDbContext inMemoryDbContext, IHubContext <LiveDataHub> hubContext)
 {
     InMemoryDbContext = inMemoryDbContext;
     HubContext        = hubContext;
 }