コード例 #1
0
ファイル: Apachai.cs プロジェクト: garuma/apachai
        public void FetchInformations(IManosContext ctx, string id)
        {
            if (string.IsNullOrEmpty (id))
                ctx.Response.HandleEmptyJson ();

            string json;

            if (store.GetPicturesInfos (id, out json)) {
                Log.Info ("Fetching infos for {0} and returning: {1}", id.ToString (), json);
                ctx.Response.HandleJson (json);
                return;
            }

            if (!File.Exists (Path.Combine (imgDirectory, id))) {
                ctx.Response.HandleEmptyJson ();
                return;
            }

            Task.Factory.StartNew (() => {
                JsonStringDictionary dict = new JsonStringDictionary ();

                TagLibMetadata metadata = new TagLibMetadata (imgDirectory, id);
                if (!metadata.IsValid) {
                    Log.Info (id + " is invalid file");
                    json = string.Empty;
                } else {
                    metadata.FillUp (dict);
                    json = dict.Json;
                }
                metadata.Close ();

                store.SetPictureInfos (id, json);
                ctx.Response.HandleJson (json);
            });
        }
コード例 #2
0
ファイル: Apachai.cs プロジェクト: garuma/apachai
        public void FetchGeoInformations(IManosContext ctx, string id)
        {
            if (string.IsNullOrEmpty (id))
                ctx.Response.HandleEmptyJson ();

            string json;

            if (store.GetPictureGeo (id, out json)) {
                ctx.Response.HandleJson (json);
                return;
            }

            if (!File.Exists (Path.Combine (imgDirectory, id))) {
                ctx.Response.HandleEmptyJson ();
                return;
            }

            Task.Factory.StartNew (() => {
                json = string.Empty;
                JsonStringDictionary dict = new JsonStringDictionary ();
                TagLibMetadata metadata = new TagLibMetadata (imgDirectory, id);

                if (!metadata.IsValid) {
                    Log.Info (id + " is invalid file");
                } else {
                    var coordinates = metadata.GeoCoordinates;
                    if (coordinates != null) {
                        var invCult = System.Globalization.CultureInfo.InvariantCulture;
                        dict["latitude"] = coordinates.Item1.ToString (invCult);
                        dict["longitude"] = coordinates.Item2.ToString (invCult);
                        json = dict.Json;
                    }
                }
                metadata.Close ();

                store.SetPictureGeo (id, json);
                ctx.Response.HandleJson (json);
            });
        }