public ActionResult EditGroup(int id)
        {
            if (Session["User"] == null)
            {
                return RedirectToAction("Login", "Default");
            }
            else
            {
                ContactRepository ContactRepository = new ContactRepository();
                GroupRepository GroupRepository = new GroupRepository();
                User user = (User)Session["User"];
                List<Contact> contactList = ContactRepository.GetAll(filter: u => u.UserId == user.Id);
                List<SelectListItem> List = new List<SelectListItem>();

                if (id > 0)
                {
                    Group group = new Group();
                    group = GroupRepository.GetByID(id);
                    model.groupName = group.GroupName;

                    foreach (var item in contactList)
                    {
                        SelectListItem one = null;
                        if (group.Contacts.Any(c => c.Id == item.Id))
                        {
                            one = new SelectListItem { Text = item.FullName, Value = item.Id.ToString(), Selected = true };
                        }
                        else
                        {
                            one = new SelectListItem() { Text = item.FullName, Value = item.Id.ToString(), Selected = false };
                        }
                        List.Add(one);
                    }
                    model.ContactList = List;
                    model.GroupId = id;
                }
                if (id == 0)
                {
                    foreach (var item in contactList)
                    {
                        SelectListItem one = new SelectListItem() { Text = item.FullName, Value = item.Id.ToString() };
                        List.Add(one);
                    }
                    model.ContactList = List;
                }
            }
            return View(model);
        }
        public ActionResult EditGroup(GroupControllerGroupVM model, FormCollection formCollection, int id)
        {
            UnitOfWork Uow = new UnitOfWork();
            ContactRepository contactRepo = new ContactRepository(Uow);
            GroupRepository groupRepo = new GroupRepository(Uow);
            User user = (User)Session["User"];
            List<Contact> contactList = contactRepo.GetAll(filter: u => u.UserId == user.Id);
            List<SelectListItem> List = new List<SelectListItem>();
            Group group = new Group();
            TryUpdateModel(model);
            if (!this.ModelState.IsValid)
            {
                foreach (var item in contactList)
                {
                    SelectListItem one = new SelectListItem() { Text = item.FullName, Value = item.Id.ToString() };
                    List.Add(one);
                }
                model.ContactList = List;
                return View(model);
            }
            else
            {
                group.UserID = user.Id;
                if (id > 0)
                {
                    group = groupRepo.GetByID(id);
                    group.GroupName = model.groupName;
                    var value = formCollection["ContactId"];
                    if (value != null)
                    {
                        string[] arrValue = formCollection["ContactId"].ToString().Split(',');

                        List<Contact> contacts = new List<Contact>();
                        contacts = group.Contacts.ToList();

                        foreach (var item in contacts)
                        {
                            if (!arrValue.Contains(item.Id.ToString()))
                            {
                                group.Contacts.Remove(contactRepo.GetByID(Convert.ToInt32(item.Id)));
                            }
                        }
                        foreach (var item in arrValue)
                        {
                            List<Contact> cont = contactRepo.GetAll(filter: c => c.UserId == user.Id);
                            if (cont.Any(c => c.Id == Convert.ToInt32(item)))
                            {
                                group.Contacts.Add(contactRepo.GetByID(Convert.ToInt32(item)));
                            }
                        }

                    }
                }
                else
                {
                    group.GroupName = model.groupName;
                    group.Contacts = new List<Contact>();
                    var value = formCollection["ContactId"];
                    if (value != null)
                    {
                        string[] arrValue = formCollection["ContactId"].ToString().Split(',');
                        foreach (var item in arrValue)
                        {
                            group.Contacts.Add(contactRepo.GetByID(Convert.ToInt32(item)));
                        }
                    }
                }

                groupRepo.Save(group);
                Uow.Commit();
                model.GroupId = group.Id;
                return RedirectToAction("ListGroups", "Group", new { @parentId = group.UserID });
            }
        }