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); }); }
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); }); }