public ActionResult NewClient(FormCollection formValues) { if (formValues["Submit"].Equals("Zapisz", StringComparison.InvariantCultureIgnoreCase)) { ClientsRepository cr = new ClientsRepository(); Client client = new Client(); UpdateModel <Client>(client); if (ValidateClient(client.ClientName, client.ClientPrefix)) { try { cr.CreateClient(client); int newClientID = cr.GetAllClients().Where(c => c.ClientName == client.ClientName).First().ClientID; string newUserName = string.Format("{0}{1}", client.ClientPrefix, "Admin"); string newAdminGroupName = string.Format("{0}{1}", client.ClientPrefix, "Administratorzy"); string newUsersGroupName = string.Format("{0}{1}", client.ClientPrefix, "Użytkownicy"); MembershipUser newUser = Membership.CreateUser(newUserName, newUserName); cr.AssignUserToClient((Guid)newUser.ProviderUserKey, newClientID); Guid newGroupGuid = _repository.AddGroup(newUsersGroupName, newClientID); _repository.GetGroup(newGroupGuid).ClientID = newClientID; newGroupGuid = _repository.AddGroup(newAdminGroupName, newClientID); _repository.GetGroup(newGroupGuid).ClientID = newClientID; // _repository.SubmitChanges(); _repository.AddUserToGroup((Guid)newUser.ProviderUserKey, newGroupGuid); _repository.AddRoleToGroup(RoleNames.Administrator, newGroupGuid); _repository.AddUserToGroup((Guid)Membership.GetUser().ProviderUserKey, newGroupGuid); string scansDir = Path.Combine(Properties.Settings.Default.ScansRootDirectory, client.ClientPrefix + "scans"); if (!Directory.Exists(scansDir)) { Directory.CreateDirectory(scansDir); } } catch (Exception ex) { ModelState.AddModelError("AllClient", ex.Message); return(View()); } } else { return(View()); } } return(RedirectToAction("Clients")); }