示例#1
0
            IUnityContainer RegisterCommon(
                IUnityContainer container,
                IDictionary <RegistrationLookup, ContainerRegistration> registrations,
                bool isTest)
            {
                container
                //.RegisterTypeIfNot<IDatabaseInitializer<TestRepository>, MigrateDatabaseToLatestVersion<TestRepository, Configuration>>(registrations)
                .RegisterTypeIfNot <IDatabaseInitializer <TestRepository>, DropCreateDatabaseAlways <TestRepository> >(registrations)

                .UnsafeRegister(EFRepositoryBase.Registrar <TestRepository>(), registrations, isTest)

                // repositories registration
                // the repository used by the services
                .RegisterTypeIfNot <IRepository, TestRepository>(
                    registrations,
                    new HierarchicalLifetimeManager(),
                    new InjectionProperty(
                        nameof(IRepository.OptimisticConcurrencyStrategy),
                        Program.OptimisticConcurrencyStrategy))

                // a transient repository used by tests and anything else.
                .RegisterTypeIfNot <IRepository, TestRepository>(
                    registrations,
                    "transient",
                    new InjectionProperty(
                        nameof(IRepository.OptimisticConcurrencyStrategy),
                        Program.OptimisticConcurrencyStrategy))
                ;

                return(container);
            }
示例#2
0
            protected override void DoRegister(
                IUnityContainer container,
                IDictionary <RegistrationLookup, ContainerRegistration> registrations)
            {
                if (container == null)
                {
                    throw new ArgumentNullException(nameof(container));
                }
                if (registrations == null)
                {
                    throw new ArgumentNullException(nameof(registrations));
                }

                container
                .Register(EFRepositoryBase.Registrar <TestEFRepository>(), true)

                //.RegisterTypeIfNot<IDatabaseInitializer<TestEFRepository>, MigrateDatabaseToLatestVersion<TestEFRepository, Configuration>>(registrations, new InjectionConstructor(true))
                //.RegisterTypeIfNot<IStoreIdProvider, SqlStoreIdProvider>(registrations, new ContainerControlledLifetimeManager())

                .RegisterTypeIfNot <IDatabaseInitializer <TestEFRepository>, DropCreateDatabaseAlways <TestEFRepository> >(registrations)
                .RegisterTypeIfNot <IStoreIdProvider, HiLoStoreIdProvider>(registrations, new ContainerControlledLifetimeManager())

                // the repository used by the HiLo generator
                .RegisterTypeIfNot <IRepository, TestEFRepository>(registrations, HiLoStoreIdProvider.HiLoGeneratorsRepositoryResolveName, new InjectionConstructor(new InjectionParameter <string>(ConnectionString)))
                // the repository used by the rest of the tests
                .RegisterTypeIfNot <IRepository, TestEFRepository>(registrations, new InjectionConstructor(new InjectionParameter <string>(ConnectionString)))
                ;
            }
示例#3
0
 private static void CreateFavoritePropertyValues(EFRepositoryBase context)
 {
     context.AddOrUpdate(new FavoritePropertyValueEntity
     {
         Id         = "1",
         ReviewId   = "1",
         PropertyId = "1",
         Rating     = 5
     });
     context.AddOrUpdate(new FavoritePropertyValueEntity
     {
         Id         = "2",
         ReviewId   = "1",
         PropertyId = "2",
         Rating     = 4
     });
     context.AddOrUpdate(new FavoritePropertyValueEntity
     {
         Id         = "3",
         ReviewId   = "1",
         PropertyId = "3",
         Rating     = 3
     });
     context.AddOrUpdate(new FavoritePropertyValueEntity
     {
         Id         = "5",
         ReviewId   = "1",
         PropertyId = "5",
         Rating     = 1
     });
 }
示例#4
0
 public HomeService()
 {
     unit = new ALUnitOfWorkContext();
     repository = new EFRepositoryBase<TestTable>
     {
         UnitOfWork = unit
     };
 }
示例#5
0
 public BaseService()
 {
     unit       = new ALUnitOfWorkContext();
     repository = new EFRepositoryBase <T>
     {
         UnitOfWork = unit
     };
 }
示例#6
0
 public HomeService()
 {
     unit       = new ALUnitOfWorkContext();
     repository = new EFRepositoryBase <TestTable>
     {
         UnitOfWork = unit
     };
 }
示例#7
0
        public IRepository <TEntity> GetRepository <TEntity>() where TEntity : class
        {
            if (repositories == null)
            {
                repositories = new Dictionary <Type, object>();
            }
            var type = typeof(TEntity);

            isEnableTransaction = true;
            if (!repositories.ContainsKey(type))
            {
                repositories[type] = new EFRepositoryBase <TEntity>(DbContext, isEnableTransaction); // 如果使用了工作单元获取Repository(默认认为是在同一事物下),insert就不每次提交,可以通过参数覆盖
            }
            return((IRepository <TEntity>)repositories[type]);
        }
示例#8
0
        public void TestVaildMessage()
        {
            ExamMessage msg = new ExamMessage();

            msg.GUID = "dsds";
            var car         = new EFRepositoryBase <ExamCar>();
            var examRecord  = new EFRepositoryBase <ExamRecord>();
            var examCapture = new EFRepositoryBase <ExamCapture>();
            var breakeRule  = new EFRepositoryBase <ExamBreakeRuleRecord>();
            var examItem    = new EFRepositoryBase <ExamItem>();
            var project     = new EFRepositoryBase <ProjectThrough>();
            var examStudent = new EFRepositoryBase <ExamStudent>();

            var examService = new ExamService(car, examRecord, examCapture, breakeRule, examItem, project, examStudent);

            examService.AddExamInfo(msg);
        }
示例#9
0
        public DataPaging <ArticleListView> GetPageList(ArticleListView parameters, int currentPage, int pageSize, bool isIndex = true)
        {
            var _articleView = new EFRepositoryBase <ArticleListView, object>();
            var exp          = new PredicatePack <ArticleListView>();

            if (!isIndex)
            {
                exp.PushAnd(x => x.CategoryId == parameters.CategoryId);
            }
            exp.PushAnd(x => x.Status == 101);
            var source      = _articleView.Entities.Where(exp);
            var list        = source.OrderByDescending(x => x.CreateTime).Skip((currentPage - 1) * pageSize).Take(pageSize).ToList();
            var totalRecord = source.Count();

            return(new DataPaging <ArticleListView>
            {
                SearchParams = parameters,
                List = list,
                Pager = totalRecord < 1 ? string.Empty : new HtmlPager <ArticleListView>(HttpContext.Current.Request.Path.ToLower(), parameters)
                        .GenerateCode(totalRecord / pageSize, currentPage)
            });
        }
示例#10
0
        private static void CreateFavoriteProperties(EFRepositoryBase context)
        {
            context.AddOrUpdate(new FavoritePropertyEntity
            {
                Id        = "1",
                ProductId = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                Name      = "Sound quality"
            });

            context.AddOrUpdate(new FavoritePropertyEntity
            {
                Id        = "2",
                ProductId = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                Name      = "Wearing comfort"
            });

            context.AddOrUpdate(new FavoritePropertyEntity
            {
                Id        = "3",
                ProductId = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                Name      = "Soundproofing"
            });

            context.AddOrUpdate(new FavoritePropertyEntity
            {
                Id        = "4",
                ProductId = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                Name      = "Design"
            });

            context.AddOrUpdate(new FavoritePropertyEntity
            {
                Id        = "5",
                ProductId = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                Name      = "Reliability"
            });
        }
示例#11
0
        private static void CreateReviews(EFRepositoryBase context)
        {
            DateTime now = DateTime.UtcNow;

            context.AddOrUpdate(new CustomerReviewEntity
            {
                Id             = "1",
                ProductId      = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                CreatedDate    = now,
                CreatedBy      = "initial data seed",
                AuthorNickname = "Andrew Peters",
                Content        = "Super!",
                ProductRating  = 5,
                IsActive       = true
            });
            context.AddOrUpdate(new CustomerReviewEntity
            {
                Id             = "2",
                ProductId      = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                CreatedDate    = now,
                CreatedBy      = "initial data seed",
                AuthorNickname = "Mr. Pumpkin",
                Content        = "So so",
                ProductRating  = 3
            });
            context.AddOrUpdate(new CustomerReviewEntity
            {
                Id             = "3",
                ProductId      = "0f7a77cc1b9a46a29f6a159e5cd49ad1",
                CreatedDate    = now,
                CreatedBy      = "initial data seed",
                AuthorNickname = "John Doe",
                Content        = "Liked that",
                ProductRating  = 3
            });
        }
示例#12
0
 private ArticleService()
 {
     _article = new EFRepositoryBase <Article, object>();
 }
示例#13
0
 private UserService()
 {
     _user = new EFRepositoryBase <User, object>();
 }
示例#14
0
        public void ExamRecordTest()
        {
            //首先开始考试
            ExamMessage msg = new ExamMessage();

            msg.GUID = "dsds";
            var car         = new EFRepositoryBase <ExamCar>();
            var examRecord  = new EFRepositoryBase <ExamRecord>();
            var examCapture = new EFRepositoryBase <ExamCapture>();
            var breakeRule  = new EFRepositoryBase <ExamBreakeRuleRecord>();
            var examItem    = new EFRepositoryBase <ExamItem>();
            var project     = new EFRepositoryBase <ProjectThrough>();
            var examStudent = new EFRepositoryBase <ExamStudent>();

            var service = new ExamService(car, examRecord, examCapture, breakeRule, examItem, project, examStudent);
            var message = new ExamMessage();

            message.CmdType            = CmdTypeEnum.StartExam;
            message.SendTime           = DateTime.Now;
            message.ExamStudent        = new ExamStudent();
            message.ExamStudent.IdCard = "500227199111222222";
            message.ExamStudent.Name   = "张三";
            message.IsPreliminaryExam  = true;
            message.ExamLine           = "测试一号线";
            message.GUID = System.Guid.NewGuid().ToString("N");
            // message.GUID = "70760794d8864c6d9d374fc6dca767dd";
            message.Score = 100;

            //开始考试
            service.AddExamInfo(message);


            //通过项目 侧方停车
            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.ParallelParking;
            message.SendTime = DateTime.Now;
            service.AddExamInfo(message);

            //抓拍
            message.CmdType     = CmdTypeEnum.Capture;
            message.ExamItem    = ExamItemEnum.ParallelParking;
            message.CapturImage = System.IO.File.ReadAllBytes("capture.jpg");
            message.SendTime    = DateTime.Now;
            service.AddExamInfo(message);


            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.ParallelParkingEnd;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType       = CmdTypeEnum.BreakeRule;
            message.SendTime      = DateTime.Now;
            message.Score         = 0;
            message.DeductionRule = new ExamMessageDeductionRule();
            message.DeductionRule.DeductedScores = 100;
            message.DeductionRule.DeductedReason = "不按考试路线行驶";
            message.DeductionRule.RuleCode       = "10101";
            message.DeductionRule.ExamItemId     = (int)ExamItemEnum.ParallelParking;
            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.CurveDriving;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.CurveDrivingEnd;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType     = CmdTypeEnum.Capture;
            message.ExamItem    = ExamItemEnum.CurveDrivingEnd;
            message.CapturImage = System.IO.File.ReadAllBytes("capture.jpg");
            service.AddExamInfo(message);


            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.QuarterTurning;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.QuarterTurningEnd;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.ReverseParking;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.ReverseParkingEnd;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.SlopeWayParkingAndStarting;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EnterExamItem;
            message.ExamItem = ExamItemEnum.SlopeWayParkingAndStartingEnd;
            message.SendTime = DateTime.Now;

            service.AddExamInfo(message);

            message.CmdType  = CmdTypeEnum.EndExam;
            message.SendTime = DateTime.Now;
            service.AddExamInfo(message);
        }
示例#15
0
 private CommentService()
 {
     _comment = new EFRepositoryBase <Comment, object>();
 }
示例#16
0
 private SetupService()
 {
     _setup = new EFRepositoryBase <Setup, object>();
 }
示例#17
0
 private CategoryService()
 {
     _category = new EFRepositoryBase <Category, object>();
 }
示例#18
0
 private MenuService()
 {
     _menu = new EFRepositoryBase <Menu, object>();
 }