| Conditions | 9 | 
| Paths | 30 | 
| Total Lines | 35 | 
| Code Lines | 22 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 1 | ||
| Bugs | 0 | Features | 0 | 
| 1 | <?php  | 
            ||
| 24 | public function saveSettings(Server $server, array $settings)  | 
            ||
| 25 |     { | 
            ||
| 26 | $existsSettings = [];  | 
            ||
| 27 |         foreach ($server->settings as $setting) { | 
            ||
| 28 | $existsSettings[$setting->name] = $setting;  | 
            ||
| 29 | }  | 
            ||
| 30 | |||
| 31 | $saveSettings = [];  | 
            ||
| 32 |         foreach ($settings as $setting) { | 
            ||
| 33 |             if (empty($setting['name']) || empty($setting['value'])) { | 
            ||
| 34 | continue;  | 
            ||
| 35 | }  | 
            ||
| 36 | |||
| 37 | $saveSettings[$setting['name']] = $setting['value'];  | 
            ||
| 38 | |||
| 39 |             if (array_key_exists($setting['name'], $existsSettings)) { | 
            ||
| 40 |                 if (!empty($setting['value'])) { | 
            ||
| 41 | $existsSettings[$setting['name']]->value = $setting['value'];  | 
            ||
| 42 | $existsSettings[$setting['name']]->save();  | 
            ||
| 43 | }  | 
            ||
| 44 |             } else { | 
            ||
| 45 | $serverSetting = new ServerSetting();  | 
            ||
| 46 | |||
| 47 | $serverSetting->server_id = $server->id;  | 
            ||
| 48 | $serverSetting->name = $setting['name'];  | 
            ||
| 49 | $serverSetting->value = $setting['value'];  | 
            ||
| 50 | $serverSetting->save();  | 
            ||
| 51 | $existsSettings[$setting['name']] = $serverSetting;  | 
            ||
| 52 | }  | 
            ||
| 53 | }  | 
            ||
| 54 | |||
| 55 | // Remove items  | 
            ||
| 56 |         foreach ($server->settings as $setting) { | 
            ||
| 57 |             if (!array_key_exists($setting['name'], $saveSettings)) { | 
            ||
| 58 | $setting->delete();  | 
            ||
| 59 | }  | 
            ||
| 63 | }  |