public ActionResult AddMultiple(AddMultipleViewModel model)
 {
     if (this.ModelState.IsValid)
     {
         var logic = new ContactBUS();
         foreach (var contact in model.Contacts)
         {
             logic.CreateContact(contact);
         }
         TempData["model"] = model;
         return RedirectToAction("Confirmation");
     }
     else
     {
         return View(model);
     }
 }
        public void Populate()
        {
            var logic = new ContactBUS();
            //var oldContacts = logic.GetContacts();

            var friends = new FriendsBUS();

            friends.Clear();
            logic.Clear();

            //foreach (var contact in oldContacts)
            //{
            //    friends.SetFriends(contact, new List<Contact>());
            //    logic.DeleteContact(contact);
            //}
            var _contacts = new List<Contact>();
            var firstNames = new List<string> {"orticia","tewey","eter", "oe", "arry", "urly", "ert", "rnie", "ard", "ack", "christie","orbus","ill" };
            var lastNames = new List<string> {"riffin", "tevens", "leaver", "rummond", "unster", "etri", "artridge","ith","ein", "ian" };
            var domains = new List<string> { "gmail.com", "yahoo.com", "msn.com", "hotmail.com", "aol.com", "mac.com", "israel.net", "tishabov.us" };

            foreach (var lastName in lastNames)
                foreach (var firstName in firstNames)
                    foreach (var domain in domains)
                    {
                        var first_ltr = RandomLetter();
                        var last_ltr = RandomLetter();
                        var vowel = Vowel();
                        _contacts.Add(new Contact
                                          {
                                              Email = string.Format("{3}{0}_{4}{1}{5}@{2}", firstName, lastName, domain, first_ltr, last_ltr, vowel),
                                              FirstName = String.Format("{0}{1}", first_ltr, firstName),
                                              LastName = String.Format("{0}{1}{2}", last_ltr, lastName, vowel)
                                          });
                    }

            foreach (var contact in _contacts)
            {
                var username = String.Format("{0}{1}", contact.FirstName.Substring(0, 1), contact.LastName);
                var seed = 0;
                while (_contacts.Where(c => String.Equals(c.Username, username, StringComparison.CurrentCultureIgnoreCase)).Any())
                    username = String.Format("{0}{1}", username, new Random((int)DateTime.Now.Ticks*++seed).Next(9));
                contact.Username = username;
            }
            logic.CreateContact(_contacts);
            PopulateFriends();
        }
        public ActionResult Knockout(AddMultipleViewModel model)
        {
            var errors = new Dictionary<string, ModelErrorCollection>();
            foreach(var key in this.ModelState.Keys)
                errors.Add(key, this.ModelState[key].Errors);

            this.ViewData["Errors"] = errors;

            if(this.ModelState.IsValid)
            {
                var logic = new ContactBUS();
                foreach(var contact in model.Contacts)
                    logic.CreateContact(contact);
                TempData["model"] = model;
                return RedirectToAction("Confirmation");
            }
            return View(model);
        }
        public ActionResult Create(ContactUser m)
        {
            m.AllRoles = Roles.GetRoles();
            if (m.UserRoles == null)
                m.UserRoles = new List<string>();
            var logic = new ContactBUS();
            if (ModelState.IsValid)
            {

                logic.CreateContact(m.Contact);
                if (m.IsUser)
                {
                    var userHelper = UserHelper.Create();
                    var contact =
                        logic.GetContacts().Where(c => c.Username == m.Contact.Username).SingleOrDefault();
                    userHelper.CreateUser(contact.Id);
                    if (m.UserRoles.Count() > 0)
                    {
                        foreach (var role in m.UserRoles)
                            userHelper.AddUserToRole(contact.Id, role);
                    }

                }
                return RedirectToAction("List");
            }
            else
                return View(m);
        }