public function update(Request $request, $id)
 {
     try {
         if ($request->has('type')) {
             $type = $request->input('type');
             switch ($type) {
                 case 'restore':
                     $entities = Entity::withTrashed()->where('id', $id)->get();
                     foreach ($entities as $n) {
                         $n->restore();
                         $n->alarms()->restore();
                     }
                     break;
             }
         } else {
             $n = Entity::findOrFail($id);
             $n->name = $request->input('name');
             $n->save();
             foreach ($n->type->attributes as $attribute) {
                 $name = $attribute->systemName();
                 if ($request->has($name)) {
                     $a = $n->attribute($name);
                     $a->value = $request->input($name);
                     $a->save();
                 }
             }
         }
         Session::flash('message_type', 'success');
         Session::flash('message', 'Elemento aggiornato correttamente.');
     } catch (\Exception $e) {
         Session::flash('message_type', 'danger');
         Session::flash('message', 'Elemento non aggiornato correttamente: ' . $e->getMessage());
     }
     return redirect('entities/' . $n->type->id);
 }