コード例 #1
0
        public async Task <IActionResult> AddToGroup([Bind("ID")] int Id, int[] Contacts, string Referee)
        {
            var _Group = _context.Groups.First(i => i.ID == Id);

            foreach (var item in Contacts)
            {
                var _contacts = await _context.Contacts.FirstAsync(i => i.ID == item);

                GroupAssign assign = new GroupAssign()
                {
                    Group     = _Group,
                    ContactID = _contacts.ID
                };
                _Group.Members.Add(assign);
                _context.GroupAssigns.Add(assign);
                await _context.SaveChangesAsync();
            }

            if (!String.IsNullOrEmpty(Referee))
            {
                return(Redirect(Referee));
            }

            return(RedirectToAction(nameof(Index)));
        }
コード例 #2
0
        public async Task <IActionResult> Create([Bind("ID,GroupName")] Group group, int[] Contacts)
        {
            var user = await _signInManager.UserManager.GetUserAsync(User);

            var _customer = _context.Customers.First(x => x.ApplicationUserId == user.Id);

            if (ModelState.IsValid)
            {
                group.CustomerId = _customer.ID;
                List <GroupAssign> _contacts = new List <GroupAssign>();
                if (Contacts == null)
                {
                }
                else
                {
                    foreach (var item in Contacts)
                    {
                        var         contacts = _context.Contacts.First(x => x.ID == item);
                        GroupAssign assign   = new GroupAssign()
                        {
                            ContactID = contacts.ID
                        };
                        _contacts.Add(assign);
                    }
                    group.Members = _contacts;
                }

                _context.Add(group);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(group));
        }
コード例 #3
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,GroupName")] Group group, int[] Contacts)
        {
            var user = await _signInManager.UserManager.GetUserAsync(User);

            var _customer  = _context.Customers.First(x => x.ApplicationUserId == user.Id);
            var GroupAssig = _context.GroupAssigns.Where(x => x.Group.ID == id);

            if (id != group.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                group.CustomerId = _customer.ID;
                try
                {
                    List <GroupAssign> _contacts = new List <GroupAssign>();
                    if (Contacts == null)
                    {
                    }
                    else
                    {
                        if (Contacts.Count() == 0)
                        {
                            foreach (var item in GroupAssig)
                            {
                                _context.GroupAssigns.Remove(item);
                                group.Members.Remove(item);
                            }
                        }

                        foreach (var item in Contacts)
                        {
                            var contacts = _context.Contacts.First(x => x.ID == item);
                            if (_context.GroupAssigns.Where(x => x.Group.ID == group.ID).Any(x => x.ContactID == contacts.ID))
                            {
                            }
                            else
                            {
                                GroupAssign assign = new GroupAssign()
                                {
                                    ContactID = contacts.ID
                                };
                                _contacts.Add(assign);
                            }
                            foreach (var Contact in GroupAssig)
                            {
                                var check = Contacts.Any((x => x == Contact.ContactID));

                                if (Contacts.Any(x => x == Contact.ContactID))
                                {
                                }
                                else
                                {
                                    var _contact = GroupAssig.First(x => x.ContactID == Contact.ContactID);
                                    _context.GroupAssigns.Remove(_contact);
                                    group.Members.Remove(_contact);
                                }
                            }

                            group.Members = _contacts;
                        }


                        _context.Update(group);
                        await _context.SaveChangesAsync();
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GroupExists(group.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(group));
        }