Tolpeit Stefan
  • Startseite
  • Portfolio
  • Kontakt
  • Blog
  • Suche
  • Menü
  • Facebook
  • Twitter
  • Xing

Hier finden sie verschiedene Informationen über die Webprogrammierung

Automatic Ravendb3 Backup

In eigener Sache, Programmierung, Webprogrammierung

Because the incremental backup of the Ravendb Backend isn`t working perfektly, I have written a little program to Backup a whole Ravendb(Web) Server with one command.

The program makes a Backup and zip that. You can define in the app.config the fileformat to store.

Check it out on GitHub RavendbBackup on Github

21. Januar 2015/0 Kommentare/von Tolpeit

Form als Json serialisieren und mittels Jquery Ajax posten

Webprogrammierung

Hier ein kleines Tutorial, wie man ein komplettes form in ein JSON serialisiert und es mittels ajax postet

Zuerst einmal benötigen wir eine Hilfefunktion damit wir das form in ein Json serialisieren können. Leider gibt es keine bereits verwendbare Funktion.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$.fn.serializeObject = function () {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function () {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            if ($("[name=" + this.name + "]").data("serializearray") != undefined) {
                var arr = new Array();
                arr.push(this.value || '');
                o[this.name] = arr;
            } else {
                o[this.name] = this.value || '';
            }
        }
    });
    return o;
};

Speziell für Checkboxlisten: Sollte es Probleme beim Post geben dass z.b. ein MVC Controller Arrays nicht richtig bindet, verwendet auf eurer checkbox folgendes attribut data-serializearray. Das sorgt dafür, wenn auch nur eine checkbox ausgewählt wird ein Array gemacht wird. Als Default nämlich möchte der MVC Controller es als string oder int parsen.

So nun kommen wir zum Post

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var data = $('form').serializeObject();
$.ajax({
        cache: false,
        url: 'xxxxxxxx',
        type: "POST",
        dataType: "json",
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(data),
        traditional: true,
        success: function (callback) {
            if (callback.Success) {
            } else {
//error
 
            }
 
        },
        error: function () {
            $('#output').html("Error!");
        }
    });

Hier gibt es eigentlich nicht viel zu sagen. Das Form serializieren und als data übertragen.

Viel Spaß

13. März 2014/0 Kommentare/von Tolpeit

Javascript – Herausfinden ob der userAgent ein Iphone oder Ipad ist

Javascript, Webprogrammierung

Mit folgenden Code kannst du in Javascript prüfen ob der User Agent ein Iphone Ipad oder Ipod ist

var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false );

Oder verwende die Funktion .test()

var iOS = /(iPad|iPhone|iPod)/g.test( navigator.userAgent );

IOS wird entweder true oder false sein


Eine andere Möglich ohne Regular Expressions wäre:

var iOS = false, p = navigator.platform; if( p === 'iPad' || p === 'iPhone' || p === 'iPod' ){ iOS = true; }

Optimiert auf mehrere Geräte:

var i = 0, iOS = false, iDevice = ['iPad', 'iPhone', 'iPod']; for ( ; i < iDevice.length ; i++ ) { if( navigator.platform === iDevice[i] ){ iOS = true; break; } }

 

19. Februar 2014/0 Kommentare/von Tolpeit

Xbox One flashen – Modchip

Webprogrammierung

Derzeit liegen noch keine Berichte vor, das zeigt, dass gebrannte Spiele auf der Xbox one gespielt werden können. Daher gibt es noch keinen geeigneten Flash bzw. Modchip.

1. Dezember 2013/0 Kommentare/von Tolpeit

The remote server returned an error: (411) Length Required

Webprogrammierung

Dieses Problem taucht auf, wenn man versucht einen serverseitigen Aufruf eines Post zu machen.

C#
1
2
3
4
var request = (HttpWebRequest) HttpWebRequest.Create(requestUri);
request.Headers.Add("x-ms-version", "2012-08-01");
request.Method = "POST";
request.ContentType = "application/xml";

Das Problem wird gelöst, indem man eine content-length hinzufügt

C#
1
request.ContentLength = 0;

 

2. Juli 2013/0 Kommentare/von Tolpeit

Facebook Freunde einladen alle Freunde markieren

Webprogrammierung

Facebook macht es den Usern nicht leicht, seine ganzen Freunde eine Einladung für ein Event oder eine Seite zu markieren und zu verschicken.

Es gibt folgenden Trick dass ihr alle markieren könnt Zaubersprache Javascript.

Und so funktioniert:

  • Geht in eure Seite oder Veranstaltungseite hinein und öffnet das Fenster Freunde einladen
  • Drückt die Taste F12 wählt die Konsole ein
    JavaScript
    1
    javascript:elms=document.getElementsByName("checkableitems[]");for (i=0;i<elms.length;i++){if(elms[i].type="checkbox" )elms[i].click()};

    und drückt enter.

    Nun sollten alle markiert sein

25. März 2013/0 Kommentare/von Tolpeit

Umbraco 6.0 mit MVC und Razor verwenden

Webprogrammierung

Umbraco 6  bietet von Haus aus MVC und Razor an. Jedoch um MVC und Razor verwenden zu können muss man in den einzelnen Configfiles verschiedene Attribute ändern.

Zuerst musst im File ~/config/umbracoSettings.config die Default Render View Engine von WebForms in MVC geändert werden:

1
<defaultRenderingEngine>Mvc</defaultRenderingEngine>

Nun müsste eigentlich nur noch folgendes gesetzt werden:

1
<useAspNetMasterPages>false</useAspNetMasterPages>

Einmal die web.config touchen und schon wurde Umbraco auf MVC und Razor umgestellt.

Möchte man nun ein neues Template hinzufügen wird ein Razorview erstellt nicht wie vorher ein .master file

21. März 2013/0 Kommentare/von Tolpeit

VisualHg mit Visual Studio 2012

Programmierung, Webprogrammierung, Windows

Erst kürzlich hab ich Windows 8 und in dem Zuge auch Visual Studio 2012 installiert.

Es wurde auch schon öfters berichtet, dass die letzte Visualhg Version 1.1.5 nicht mit Vistual Studio 2012 kompatibel ist. Dem ist es nicht so, es gibt eine Lösung.

Löschen un installieren sie nochmal die VisualHg Version. Sollte dies noch nicht reichen führen sie diesen Code aus:

1
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv " /setup

nun sollte alles wieder so laufen wie früher

 

 

23. November 2012/0 Kommentare/von Tolpeit

UrlAttribute MVC dataannotation and clientvalitable

Webprogrammierung

 

UrlAttribute
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
    public class UrlAttribute : DataTypeAttribute, IClientValidatable {
        private readonly UrlOptions _urlOptions = UrlOptions.RequireProtocol; //Default to require protocol
 
        private readonly string _regex;
 
        public string Regex {
            get {
                return _regex;
            }
        }
 
        public UrlAttribute(UrlOptions urlOptions = UrlOptions.RequireProtocol)
            : base(DataType.Url) {
            _urlOptions = urlOptions;
 
            switch (urlOptions) {
                case UrlOptions.RequireProtocol:
                    _regex = @"^(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$";
                    break;
                case UrlOptions.OptionalProtocol:
                    _regex = @"^((https?|ftp):\/\/)?(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$";
                    break;
                case UrlOptions.DisallowProtocol:
                    _regex = @"^(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-fA-F]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$";
                    break;
                default:
                    throw new ArgumentOutOfRangeException("urlOptions");
            }
        }
 
        [Obsolete("Obsolete, use UrlAttribute(UrlOptions)")]
        public UrlAttribute(bool requireProtocol)
            : this(requireProtocol ? UrlOptions.RequireProtocol : UrlOptions.OptionalProtocol) {
 
        }
 
        public override string FormatErrorMessage(string name) {
            if (ErrorMessage == null && ErrorMessageResourceName == null) {
                switch (_urlOptions) {
                    case UrlOptions.RequireProtocol:
                        ErrorMessage = string.Format(G11n.localdb("Attribute.Url", "{0} muss eine gültige Url sein"), G11n.localdb("Attributes." + name, name));
                        break;
                    case UrlOptions.OptionalProtocol:
                        ErrorMessage = string.Format(G11n.localdb("Attribute.Url", "{0} muss eine gültige Url sein"), G11n.localdb("Attributes." + name, name));
                        break;
                    case UrlOptions.DisallowProtocol:
                        ErrorMessage = string.Format(G11n.localdb("Attribute.Url", "{0} muss eine gültige Url sein"), G11n.localdb("Attributes." + name, name));
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }
 
            return base.FormatErrorMessage(name);
        }
 
        public override bool IsValid(object value) {
            if (value == null) {
                return true;
            }
 
            var valueAsString = value is Uri ? value.ToString() : value as string;
 
            return valueAsString != null &&
                   new Regex(_regex, RegexOptions.Compiled | RegexOptions.IgnoreCase).Match(valueAsString).Length > 0;
        }
 
        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) {
 
            yield return new ModelClientValidationRule {
                ValidationType = "url",
                ErrorMessage = string.Format(G11n.localdb("Attribute.Url", "{0} muss eine gültige Url sein"), G11n.localdb("Attributes." + metadata.PropertyName, metadata.PropertyName))
            };
        }

 

UrlOptions
1
2
3
4
5
public enum UrlOptions {
        RequireProtocol,
        OptionalProtocol,
        DisallowProtocol
    }

 

5. Oktober 2012/0 Kommentare/von Tolpeit

Dynamischer Json Serializer

Programmierung, Webprogrammierung

Hier der Beispielcode für einen dynamischen Json De- Serializer. Das heißt ist ein Feld im Json nicht vorhanden, welcher sich in der Classe aber befindet, werden Trotzdem alle anderen Felder befüllt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  public static class JsonHelper {
        public static string ToJson&lt;T&gt;(T instance) {
            var serializer = new DataContractJsonSerializer(typeof(T));
            using (var tempStream = new MemoryStream()) {
                serializer.WriteObject(tempStream, instance);
                return Encoding.Default.GetString(tempStream.ToArray());
            }
        }
 
        public static T FromJson&lt;T&gt;(string json) {
            var serializer = new DataContractJsonSerializer(typeof(T));
            using (var tempStream = new MemoryStream(Encoding.Unicode.GetBytes(json))) {
                return (T)serializer.ReadObject(tempStream);
            }
        }
    }

Sollte dieses Problem auftreten:

… cannot be deserialized because the required data members ‚k__BackingField …

Lösung: Setzt auf eure Classe das Attribute [DataContract] und auf euren Properties [DataMember] und das Problem sollte gelöst sein.

1
2
3
4
5
6
7
8
9
10
11
 [Serializable, DataContract]
    public class MyClass{
        [DataMember]
        public int ID { get; set; }
        [DataMember]
        public string Var1 { get; set; }
        [DataMember]
        public string Var2 { get; set; }
        [DataMember]
        public string Var3 { get; set; }
    }

21. August 2012/0 Kommentare/von Tolpeit
Seite 1 von 10123›»

Letzte Artikel

  • Filecaching mit C#
  • Automatic Ravendb3 Backup
  • Form als Json serialisieren und mittels Jquery Ajax posten
  • Javascript – Herausfinden ob der userAgent ein Iphone oder Ipad ist
  • Füge Git zu Windows 7 Path hinzu
  • Xbox One flashen – Modchip
  • Flugsportzentrum Tirol im Neuem Design
  • The remote server returned an error: (411) Length Required
  • Facebook Freunde einladen alle Freunde markieren
  • Umbraco 6.0 mit MVC und Razor verwenden

Letzte Projekte

  • Physio & Rehacenter Bruneck28. Juli 2019 - 21:06

    Programmierung der Website www.physio-bruneck.com

  • Karosserie Leitner28. Juli 2019 - 21:05

    Programmierung der Website www.karosserie-leitner.com

  • Hotel Lindenwirt2. Mai 2019 - 21:40

    Programmierung der Website www.hotel-lindenwirt.de im Bayrischen Wald.

Kategorien

  • Allgemein
  • In eigener Sache
  • Javascript
  • Kaufberatung
  • Konsolen
  • Programmierung
  • Spiele
  • Technik
  • Tools
  • Treiber
  • Webprogrammierung
  • Windows
  • XBox 360

Links

  • Datenschutz
  • Flightplanning24 – Metar Taf Webcams
  • Impressum

Seiten

  • Portfolio
  • Stefan Tolpeit
  • Kontakt
  • Blog

Suchen

Kommentare

  • Guruprasad bei NopCommerce multi domain with seperate languages support
  • Tolpeit bei NopCommerce multi domain with seperate languages support
  • Guruprasad bei NopCommerce multi domain with seperate languages support
  • Tolpeit bei NopCommerce multi domain with seperate languages support
  • Guruprasad bei NopCommerce multi domain with seperate languages support
© Copyright - Tolpeit Stefan P.IVA: 02832950212 - Enfold Theme by Kriesi
Nach oben scrollen
tolpeit.it verwendet Cookies von Dritten um Ihnen den bestmöglichen Service zu bieten. Wenn Sie weiterhin auf diesen Seiten surfen, stimmen Sie der Cookie-Nutzung zu. OKReject Mehr Erfahren
Cookies & Privacy