コード例 #1
0
        public async Task <IActionResult> Create([Bind("WigId,Description,Status,Title,SelectedUserProfiles")] CreateWigViewModel model)
        {
            if (ModelState.IsValid)
            {
                var wig = new Wig();
                wig.Title       = model.Title;
                wig.Description = model.Description;
                wig.Status      = model.Status;
                wig.DateCreated = DateTime.Now;
                _context.Add(wig);

                if (model.SelectedUserProfiles != null)
                {
                    foreach (var i in model.SelectedUserProfiles)
                    {
                        var uw = new UserWig();
                        uw.WigId         = wig.WigId;
                        uw.UserProfileId = i;
                        _context.Add(uw);
                    }
                }

                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int id,
                                               [Bind("WigId,DateCreated,Description,Status,Title")] Wig wig,
                                               List <int> SelectedUserProfiles)
        {
            if (id != wig.WigId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    // Get the Source Wig with corresponding user profile data
                    var myWig = await _context.Wig
                                .Include(u => u.UserWigs)
                                .SingleOrDefaultAsync(m => m.WigId == id);

                    myWig.Title       = wig.Title;
                    myWig.Description = wig.Description;
                    myWig.Status      = wig.Status;

                    //removes users that are already there and not in new list
                    foreach (UserWig uw in myWig.UserWigs.ToList())
                    {
                        if (!SelectedUserProfiles.Contains(uw.UserProfileId))
                        {
                            myWig.UserWigs.Remove(uw);
                        }
                    }

                    // Add the new ones
                    foreach (int i in SelectedUserProfiles)
                    {
                        if (!myWig.UserWigs.Any(u => u.UserProfileId == i))
                        {
                            var newUserWig = new UserWig {
                                UserProfileId = i, WigId = id
                            };
                            myWig.UserWigs.Add(newUserWig);
                        }
                    }

                    // Save Changes
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!WigExists(wig.WigId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(wig));
        }