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
        public JsonResult Post([FromBody] ReviewVm model)
        {
            if (ModelState.IsValid)
            {
                var userId = model.UserId.ToString();
                var needs  = _dataCtx.UserProfileAccessibilityNeeds.Where(n => n.UserProfile.Id == userId);
                model.AccessibilityReviews = needs.Select(n => new AccessibilityReviewVm
                {
                    AccessibilityNeedId = n.AccessibilityNeed.Id,
                    Rating = model.Rating
                }).ToList();

                var entity = _dataCtx.Reviews.FirstOrDefault(p => p.Id == model.Id) ?? new Review();
                model.ToEntity(entity);
                if (entity.Id == 0)
                {
                    _dataCtx.Reviews.Add(entity);
                }
                _dataCtx.SaveChanges();
                return(Json(entity.ToVm()));
            }
            else
            {
                Response.StatusCode = 422;
                return(Json(ModelState.ToErrorsDictionary()));
            }
        }
 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();
     }
 }
 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();
     }
 }
예제 #5
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);
        }
예제 #6
0
 public JsonResult Post([FromBody] ProductVm model)
 {
     if (ModelState.IsValid)
     {
         var entity = _dataCtx.Products.FirstOrDefault(p => p.Id == model.Id)
                      ?? new Product();
         model.ToEntity(entity);
         if (entity.Id == 0)
         {
             _dataCtx.Products.Add(entity);
         }
         _dataCtx.SaveChanges();
         return(Json(entity.ToVm()));
     }
     else
     {
         Response.StatusCode = 422;
         return(Json(ModelState.ToErrorsDictionary()));
     }
 }