Ejemplo n.º 1
0
        public async void UpdateItemsInPreExistantList()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);

            // ensure is a new database
            await context.Database.EnsureDeletedAsync();

            // ensure the database has been created
            await context.Database.EnsureCreatedAsync();

            RandomizerList list = (await unitOfWork.Repository <SimpleRandomizerList>().Get(1));

            list.AddItem(new TextRandomizerItem("Chouffe"));
            list.AddItem(new TextRandomizerItem("Goudale"));
            list.AddItem(new TextRandomizerItem("Leffe"));

            await unitOfWork.Repository <RandomizerList>().Update(list.Id, list);

            await unitOfWork.SaveChangesAsync();

            list = (await unitOfWork.Repository <RandomizerList>().Get(list.Id));
            list.Items.Count().Should().Be(0);

            list = (await unitOfWork.Repository <RandomizerList>().Set.Include(l => l.Items).Where(i => i.Id == list.Id).FirstOrDefaultAsync());
            list.Items.Count().Should().Be(3);

            (await unitOfWork.Repository <RandomizerItem>().GetItems(0, 10)).Count().Should().Be(3);
        }
Ejemplo n.º 2
0
        public void TypiconEntity_Delete()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            TypiconEntity typiconEntity = new TypiconEntity()
            {
                Name = "Устав для удаления"
            };

            //typiconEntity.RulesFolder.AddFolder(new TypiconFolderEntity()
            //{
            //    Name = "Папка для удаления",
            //    Owner = typiconEntity
            //});

            _unitOfWork.Repository <TypiconEntity>().Insert(typiconEntity);

            _unitOfWork.SaveChanges();

            _unitOfWork.Repository <TypiconEntity>().Delete(typiconEntity);

            _unitOfWork.SaveChanges();

            Assert.Pass("Deleted.");
        }
Ejemplo n.º 3
0
        //Create [email protected] with password=Admin@123456 in the Admin role
        public static void InitializeIdentityForEF(ApplicationDbContext db)
        {
            IUnitOfWork uow = new EFUnitOfWork(new BaseProjectEntities());

            var          userManager    = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var          roleManager    = HttpContext.Current.GetOwinContext().Get <ApplicationRoleManager>();
            const string userName       = "******";
            const string realName       = "管理者";
            const bool   isEnable       = true;
            DateTime     createDateTime = DateTime.Now;
            const string createBy       = "admin";
            const string name           = "*****@*****.**";
            const string password       = "******";
            const string roleName       = "Admin";

            //Create Role Admin if it does not exist
            var role = roleManager.FindByName(roleName);

            if (role == null)
            {
                role = new IdentityRole(roleName);
                var roleresult = roleManager.Create(role);
            }

            var user = userManager.FindByName(name);

            if (user == null)
            {
                user = new ApplicationUser {
                    UserName = userName, Email = name, Name = realName, IsEnabled = isEnable, CreateDate = createDateTime, CreateBy = createBy
                };
                var result = userManager.Create(user, password);
                result = userManager.SetLockoutEnabled(user.Id, false);
            }

            var operationPermission = uow.Repository <RolesOperationPermission>().Reads().Where(x => x.RoleId == role.Id);

            if (operationPermission.Count() == 0)
            {
                var permission = new RolesOperationPermission()
                {
                    Operation    = Core.Common.Security.ResourceOperationEnum.Read | Core.Common.Security.ResourceOperationEnum.Delete,
                    ResourceName = "CodeMain",
                    RoleId       = role.Id
                };

                uow.Repository <RolesOperationPermission>().Create(permission);
                uow.Save();
            }

            // Add user admin to Role Admin if not already added
            var rolesForUser = userManager.GetRoles(user.Id);

            if (!rolesForUser.Contains(role.Name))
            {
                var result = userManager.AddToRole(user.Id, role.Name);
            }
        }
Ejemplo n.º 4
0
        public async void GetTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            (await unitOfWork.Repository <SimpleRandomizerList>().Get(3)).Name.Should().Be("People");
            (await unitOfWork.Repository <SimpleRandomizerList>().Get(4)).Should().BeNull();
        }
Ejemplo n.º 5
0
        public async void GetItemsTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(3);
            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 2)).Count().Should().Be(2);
            (await unitOfWork.Repository <RandomizerList>().GetItems(1, 2)).Count().Should().Be(1);
        }
Ejemplo n.º 6
0
        public async void AddItemsToNewListWithUnitOfWork()
        {
            using var factory = new TestContextFactory();
            var context    = factory.CreateContext();
            var unitOfWork = new EFUnitOfWork(context);

            // ensure is a new database
            await context.Database.EnsureDeletedAsync();

            // ensure the database has been created
            await context.Database.EnsureCreatedAsync();

            // new list
            RandomizerList l = new SimpleRandomizerList {
                Name = "More Beers"
            };

            // the items to add
            var chouffe = new TextRandomizerItem("Chouffe", l);
            var goudale = new TextRandomizerItem("Goudale", l);
            var leffe   = new TextRandomizerItem("Leffe", l);

            // adding the items
            l.AddItem(chouffe);
            l.AddItem(goudale);
            l.AddItem(leffe);

            // adding the list
            l = await unitOfWork.Repository <RandomizerList>().Add(l);

            l.Should().NotBeNull();

            // item count should still be three
            l.Items.Count.Should().Be(3);

            // saving changes
            await unitOfWork.SaveChangesAsync();

            // total lists saved should now be 4
            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(4);

            // recovering the list in three different ways
            var moreBeers  = (await unitOfWork.Repository <RandomizerList>().Get(l.Id));
            var moreBeers2 = (await unitOfWork.Repository <RandomizerList>().Set.Include(l => l.Items).Where(i => i.Id == l.Id).FirstOrDefaultAsync());
            var moreBeers3 = await unitOfWork.Repository <SimpleRandomizerList>().Set.Include(l => l.Items).Where(i => i.Id == l.Id).FirstOrDefaultAsync();

            // should return the same list with three items
            moreBeers.Items.Count().Should().Be(3);
            moreBeers2.Items.Count().Should().Be(3);
            moreBeers3.Items.Count().Should().Be(3);
        }
Ejemplo n.º 7
0
        public async void Delete()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            var chewie = await unitOfWork.Repository <RandomizerList>().Get(1);

            await unitOfWork.Repository <RandomizerList>().Remove(chewie);

            await unitOfWork.SaveChangesAsync();

            Assert.Empty((await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Where(n => n.Name.Equals("Beers")));
        }
Ejemplo n.º 8
0
        public async void RejectChangesTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            await unitOfWork.Repository <RandomizerList>().Remove(1);

            await unitOfWork.CancelChangesAsync();

            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(3);
        }
Ejemplo n.º 9
0
        public void TypiconEntity_FromDB()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон");

            Assert.AreEqual(typiconEntity.Signs.Count, 16);
        }
Ejemplo n.º 10
0
        public async void UpdateTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            var myList = await unitOfWork.Repository <RandomizerList>().Get(1);

            myList.Name = "My list!";

            await unitOfWork.Repository <RandomizerList>().Update(myList);

            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerList>().Get(1)).Name.Should().Be("My list!");
            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Where(n => n.Name.Equals("Beers")).Should().BeEmpty();
        }
Ejemplo n.º 11
0
        public async void AddTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            RandomizerList l = new SimpleRandomizerList {
                Name = "My list"
            };

            l = await unitOfWork.Repository <RandomizerList>().Add(l);

            l.Should().NotBeNull();
            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(4);
        }
Ejemplo n.º 12
0
        public void DayServiceTest_Working()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            //BookStorage.Instance = BookStorageFactory.Create();

            TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон");

            MenologyRule menologyRule = typiconEntity.GetMenologyRule(new DateTime(2017, 09, 28));

            Assert.NotNull(menologyRule.GetRule(TestRuleSerializer.Root));
        }
Ejemplo n.º 13
0
        public async void DeleteItemsInPreExistantList()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            // ensure is a new database
            await context.Database.EnsureDeletedAsync();

            // ensure the database has been created
            await context.Database.EnsureCreatedAsync();


            (await unitOfWork.Repository <RandomizerItem>().GetItems(0, 10)).Count().Should().Be(0);
            RandomizerList list           = (await unitOfWork.Repository <SimpleRandomizerList>().Get(1));
            var            cuvéeDesTrolls = new TextRandomizerItem("Cuvée des trolls", list);

            list.AddItem(cuvéeDesTrolls);
            list.ContainsItem(cuvéeDesTrolls).Should().BeTrue();
            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerItem>().GetItems(0, 10)).Count().Should().Be(1);

            list = (await unitOfWork.Repository <RandomizerList>().Get(list.Id));

            list.Items.Count.Should().Be(1);

            list.RemoveItem(cuvéeDesTrolls);

            list.Items.Count.Should().Be(0);
            await unitOfWork.SaveChangesAsync();

            list = (await unitOfWork.Repository <RandomizerList>().Get(list.Id));
            list.Items.Count.Should().Be(0);
            (await unitOfWork.Repository <RandomizerItem>().GetItems(0, 10)).Count().Should().Be(0);
        }
Ejemplo n.º 14
0
        public async void AddRangeTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            RandomizerList l = new SimpleRandomizerList {
                Name = "Ma liste incroyable",
            };
            RandomizerList l2 = new SimpleRandomizerList {
                Name = "My list"
            };
            RandomizerList l3 = new SimpleRandomizerList {
                Name = "Mi lista genial"
            };

            var result = await unitOfWork.Repository <RandomizerList>().AddRange(l, l2, l3);

            result.Should().BeTrue();
            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(6);
        }
Ejemplo n.º 15
0
        public void BerlukiRu_ComparingRequests()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            //BookStorage.Instance = BookStorageFactory.Create();

            TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон");

            DateTime date = new DateTime(2017, 9, 24);

            //сначала как в запросе в контроллере BerlukiRuController
            GetScheduleDayRequest dayRequest1 = new GetScheduleDayRequest()
            {
                Date            = date,
                Handler         = new ScheduleHandler(),
                Typicon         = typiconEntity,
                CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay)
            };

            ScheduleService scheduleService = ScheduleServiceFactory.Create();

            GetScheduleDayResponse dayResponse1 = scheduleService.GetScheduleDay(dayRequest1);

            //теперь как TypiconController
            GetScheduleDayRequest dayRequest2 = new GetScheduleDayRequest()
            {
                Date            = date,
                Typicon         = typiconEntity,
                Handler         = new ScheduleHandler(),
                CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay)
            };

            GetScheduleDayResponse dayResponse2 = scheduleService.GetScheduleDay(dayRequest2);

            GetScheduleWeekRequest weekRequest = new GetScheduleWeekRequest()
            {
                Date            = date,
                Typicon         = typiconEntity,
                Handler         = new ScheduleHandler(),
                CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay)
            };

            GetScheduleWeekResponse weekResponse = scheduleService.GetScheduleWeek(weekRequest);

            Assert.AreEqual(dayResponse1.Day.Name, dayResponse2.Day.Name);
            Assert.AreEqual(dayResponse1.Day.Name, weekResponse.Week.Days.Last().Name);
        }
Ejemplo n.º 16
0
        public void ServiceSequenceHandler_Working()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            //BookStorage.Instance = BookStorageFactory.Create();

            TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон");

            GetScheduleDayRequest request = new GetScheduleDayRequest()
            {
                Date            = new DateTime(2018, 5, 21),//DateTime.Today,
                Handler         = new ServiceSequenceHandler(),
                Typicon         = typiconEntity,
                CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay)
            };

            ScheduleService scheduleService = ScheduleServiceFactory.Create();

            GetScheduleDayResponse response = scheduleService.GetScheduleDay(request);
        }
Ejemplo n.º 17
0
        public void BerlukiRu_Test()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            //BookStorage.Instance = BookStorageFactory.Create();

            TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон");

            DateTime date = new DateTime(2017, 09, 03);//DateTime.Now;

            if ((date.DayOfWeek == DayOfWeek.Sunday) && (date.Hour > 17))
            {
                date = date.AddDays(1);
            }

            GetScheduleWeekRequest weekRequest = new GetScheduleWeekRequest()
            {
                Date            = date,
                Typicon         = typiconEntity,
                Handler         = new ScheduleHandler(),
                CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay)
            };

            ScheduleService scheduleService = ScheduleServiceFactory.Create();

            GetScheduleWeekResponse weekResponse = scheduleService.GetScheduleWeek(weekRequest);

            HtmlScheduleWeekViewer htmlViewer = new HtmlScheduleWeekViewer();

            htmlViewer.Execute(weekResponse.Week);

            string resultString = htmlViewer.ResultString;

            weekRequest.Date = date.AddDays(7);

            weekResponse = scheduleService.GetScheduleWeek(weekRequest);
            htmlViewer.Execute(weekResponse.Week);
            resultString += htmlViewer.ResultString;

            Assert.Pass(resultString);
        }
Ejemplo n.º 18
0
        public void ScheduleService_GetService()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            //BookStorage.Instance = BookStorageFactory.Create();

            TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон");

            ScheduleHandler handler = new ScheduleHandler();

            GetScheduleDayRequest request = new GetScheduleDayRequest()
            {
                Date            = new DateTime(2018, 5, 21),//DateTime.Today,
                Handler         = new ScheduleHandler(),
                Typicon         = typiconEntity,
                CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay)
            };

            ScheduleService scheduleService = ScheduleServiceFactory.Create();

            GetScheduleDayResponse response = scheduleService.GetScheduleDay(request);

            _unitOfWork.SaveChanges();

            Assert.AreEqual(3, response.Day.Schedule.Count);

            StringBuilder builder = new StringBuilder();

            builder.AppendLine(response.Day.Date.ToShortDateString() + " " + response.Day.Name);

            foreach (WorshipRuleViewModel service in response.Day.Schedule)
            {
                builder.AppendLine(service.Time + " " + service.Name);
            }

            Assert.Pass(builder.ToString());
        }
Ejemplo n.º 19
0
 public Task <int> Count()
 {
     return(UnitOfWork.Repository <RandomizerList>().Count());
 }