コード例 #1
0
        private static void SeedTestValues(Right4MeDbContext ctx)
        {
            if (!ctx.TestEntities.Any())
            {
                ctx.TestEntities.Add(new TestEntity()
                {
                    TestValue = "Test One",
                });

                ctx.TestEntities.Add(new TestEntity()
                {
                    TestValue = "Test Two",
                });

                ctx.TestEntities.Add(new TestEntity()
                {
                    TestValue = "Test Three",
                });

                ctx.TestEntities.Add(new TestEntity()
                {
                    TestValue = "Test Four",
                });

                ctx.TestEntities.Add(new TestEntity()
                {
                    TestValue = "Test Five",
                });
                ctx.SaveChanges();
            }
        }
コード例 #2
0
 private static void SeedTestProduct(Right4MeDbContext ctx)
 {
     if (!ctx.Products.Any())
     {
         ctx.Products.Add(new Product()
         {
             Description = "This is the very first test product",
             Category    = ProductCategory.Technology,
             Title       = "Right4Me Test Product"
         });
         ctx.SaveChanges();
     }
 }
コード例 #3
0
 private static void SeedAccessibilityNeeds(Right4MeDbContext ctx)
 {
     if (!ctx.AccessibilityNeeds.Any())
     {
         ctx.AccessibilityNeeds.Add(new AccessibilityNeed()
         {
             Name = "Vision",
         });
         ctx.AccessibilityNeeds.Add(new AccessibilityNeed()
         {
             Name = "Mobility",
         });
         ctx.AccessibilityNeeds.Add(new AccessibilityNeed()
         {
             Name = "Hearing",
         });
         ctx.SaveChanges();
     }
 }
コード例 #4
0
        public static UserProfileVm ToEntity(Right4MeDbContext context, UserProfileVm model, UserProfile entity)
        {
            entity.FirstName = model.FirstName;
            entity.LastName  = model.LastName;

            var submittedIds = model.AccessibilityNeeds.Select(an => an.Id)
                               .ToList();

            var currentNeedIds = entity.AccessibilityNeeds.Select(e => e.AccessibilityNeed.Id)
                                 .ToList();

            var toAddIds    = submittedIds.Where(id => !currentNeedIds.Contains(id)).Distinct().ToList();
            var toRemoveIds = currentNeedIds.Where(id => !submittedIds.Contains(id)).ToList();

            foreach (var id in toRemoveIds)
            {
                var toRemoveList = entity.AccessibilityNeeds.Where(upan => upan.AccessibilityNeed.Id == id).ToList();
                foreach (var toRemove in toRemoveList)
                {
                    context.UserProfileAccessibilityNeeds.Remove(toRemove);
                    entity.AccessibilityNeeds.Remove(toRemove);
                }
            }
            foreach (var id in toAddIds)
            {
                context.UserProfileAccessibilityNeeds.Add(new UserProfileAccessibilityNeed()
                {
                    UserProfile       = entity,
                    AccessibilityNeed = context.AccessibilityNeeds.FirstOrDefault(n => n.Id == id)
                });
            }
            context.SaveChanges();

            // reload and return view model
            var result = context.Users
                         .Include(u => u.AccessibilityNeeds)
                         .ThenInclude(an => an.AccessibilityNeed)
                         .FirstOrDefault(u => u.UserName == entity.UserName)
                         .ToVm();

            return(result);
        }
コード例 #5
0
 public static void Seed(this Right4MeDbContext ctx)
 {
     SeedTestValues(ctx);
     SeedTestProduct(ctx);
     SeedAccessibilityNeeds(ctx);
 }
コード例 #6
0
ファイル: TestEfController.cs プロジェクト: tiagov8/right4me
 public TestEfController(Right4MeDbContext dataCtx)
 {
     _dataCtx = dataCtx;
 }
コード例 #7
0
ファイル: ProductController.cs プロジェクト: tiagov8/right4me
 public ProductController(Right4MeDbContext dataCtx)
 {
     _dataCtx = dataCtx;
 }
コード例 #8
0
ファイル: ReviewController.cs プロジェクト: tiagov8/right4me
 public ReviewController(Right4MeDbContext dataCtx)
 {
     _dataCtx = dataCtx;
 }
コード例 #9
0
ファイル: Startup.cs プロジェクト: tiagov8/right4me
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, Right4MeDbContext context)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
                {
                    HotModuleReplacement = true
                });
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseIdentity();

            app.UseSwaggerUi(typeof(Startup).GetTypeInfo().Assembly, new SwaggerUiOwinSettings
            {
                DefaultPropertyNameHandling = PropertyNameHandling.CamelCase,
            });

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

                routes.MapSpaFallbackRoute(
                    name: "spa-fallback",
                    defaults: new { controller = "Home", action = "Index" });
            });

            context.Database.Migrate();
            context.Seed();
        }
コード例 #10
0
 public UserProfileController(UserManager <UserProfile> userManager
                              , Right4MeDbContext dataContext)
 {
     _userManager = userManager;
     _dataContext = dataContext;
 }
コード例 #11
0
 public AccessibilityNeedsController(Right4MeDbContext dataContext)
 {
     _dataContext = dataContext;
 }