Greiner's kleine Website

Feature Papierkorb lite in MWPSK V1.1.4

Das MyWebPageStarterPack (MWPSK, diese Website basiert darauf) V1.1.4 verfügt nicht über die Funktion eines Papierkorbs. Im Adminmodus kann man einfach eine Sektion löschen (hat zwar eine Sicherheitsabfrage, aber wer liest das schon) ...

... und schon ist die Arbeit von Stunden/Tage/Wochen weg. Schön wer da ein Backup hat.

Ich habe einen Papierkorb "lite" implementiert, mit ein paar Zeilen Code.

Folgendes ist zu tun: Öffnen Sie die Datei /App_Code/Persistable.cs und suchen Sie die Funktion Delete()

Vor dem Verändern der Datei sollten sie UNBEDINGT eine SICHERHEITSKOPIE anfertigen.

Bitte fügen sie die rot makierten Zeilen ein und speichern das ganze.

       public virtual bool Delete()
        {
            bool success = true;
            if (File.Exists(_path))
            {
                lock (_path)
                {
                    try
                    {
                        try
                        {
                            Directory.CreateDirectory(Path.GetDirectoryName(_path) + "\\_deleted");
                            File.Copy(_path, Path.GetDirectoryName(_path) + "\\_deleted\\" + Path.GetFileName(_path));
                        }
                        catch
                        {
                        }
                        File.Delete(_path);
                        HttpContext.Current.Cache.Remove(_path);
                    }
                    catch { success = false; }
                }
            }
            return success;
        }

Dies bewirkt folgendes.

Die Daten einer Sektion werden unter /App_Data/<sektionname> gespeichert in einer .config-Datei. Die Datei hat als Namen die Sektionnummer (eine GUID). Falls Sie dann eine Section löschen, wird unter dem Sectionnamen ein Verzeichnis _deleted angelegt und die Sektiondaten werden dorthin kopiert und dann erst im Sektionverzeichnis gelöscht. Damit hat man eine Sicherheitskopie mit dem letzten Stand (Stand: letztes Sichern).

Vorgehensweise beim Zurücksichern.

1. Legen sie eine neue Sektion an, die nachher die Daten aufnehmen soll.
2. Schauen sie jetzt im Datenverzeichniss der Sektionart nach (/App_Data/<sektionname>, welches die Datei mit dem aktuellsten Datum ist (id merken, oder wie ich es mache: copy+paste der id in Notepad)
3. in das _deleted verzeichnis gehen und auch dort die aktuelleste Datei suchen.
4. Öffnen der Datei mit Notepad (oder anderen Editor eurer Wahl)
5. Alles Selektieren + Copy
6. Zurück ins Sektionsverzeichnis und neue Datei öffnen
7. Paste und Save.
8. Website aufrufen und grinsen aufsetzen :o))))

Ich hoffe, damit kann ich einigen helfen, die versehendlich mal ne Sektion löschen, die Daten wiederherzustellen.

Achtung!!
Es ist manuelle Wartung notwendig, da alle gelöschten Sektionen gesichert werden und er Server ggf. zumüllt. Also in regelmässigen Abständen die _deleted verzeichnisse löschen.


Anzahl Aufrufe: 105617
Letzter Besucher: 16.01.2018 16:30:49