Beispiel #1
0
        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"));
        }