I would like to display Bing Map for different locations not only office/store/branch/facilities but also can be used for an list items as long as each item has Latitude and Longitude fields.
More coming soon...
More coming soon...
//Bing controller to get news from Bing search API using Integration.Bing; using log4net; namespace SiteAPI.Controllers { public class BingController : ApiController { private readonly ILog _log = LogManager.GetLogger("SiteAPI"); private const string RootUrl = "https://api.datamarket.azure.com/Bing/Search"; private const string Market = "en-us"; private const string NewsCategory = "rt_ScienceAndTechnology"; public ListGetBingNews(string Query) { try { if (_log.IsDebugEnabled) { _log.Debug("Calling GetBingNews"); } return Integration.Bing.BnHelper.GetBingNews(Query, RootUrl, Market, NewsCategory); } catch (Exception ex) { _log.Error(ex.Message, ex); //Throw custom exception to the caller throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent("An error occurred, please try again or contact the administrator."), ReasonPhrase = "Critical Exception" }); } } } }
//Bing News function _initBingNews(query) { var bnfeed = $('#bing-news-feed'); // get Bing News from api function __getBingNews(callback) { var apiUri = 'https://{enteryoursite}.azurewebsites.net/api/bing/GetBingNews?Query='; $.ajax({ url: apiUri + query, type: 'GET', success: function (result) { callback(result); }, error: function () { //bnFeed.closest('.ms-webpartzone-cell').hide(); } }); } // format the data returned from the bing search api function __processBingNews(posts) { var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; var bingNewsHtml = ''; var title; var description; var link; var source; var date; var post; for (var post in posts) { title = posts[post].ContentTitle; description = posts[post].ContentDescription; link = posts[post].ContentUrl; date = posts[post].ContentDate.match(/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/); date = formatDate( date[2], date[3], date[1]); if (title.length > 0) { if (link != null) { post = '
//Bing News Feed
//1. Twitter controller to get tweets only and write to azure db using LinqToTwitter; using Microsoft.WindowsAzure; using log4net; namespace SiteAPI.Controllers { public class TwitterController : ApiController { private readonly ILog _log = LogManager.GetLogger("SiteAPI"); public string GetNewMaxIDandUpdateDB(string username, ulong sinceID = 544516702412723892) { try { if (_log.IsDebugEnabled) { _log.Debug("Calling GetNewMaxIDandUpdateDB"); } return Integration.Twitter.TwDbHelper.GetNewMaxIDandUpdateDB(username, sinceID); } catch (Exception ex) { _log.Error(ex.Message, ex); //Throw custom exception to the caller throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent("An error occurred, please try again or contact the administrator."), ReasonPhrase = "Critical Exception" }); } } } }
//2. Twitter Database controller to get tweets from azure db using LinqToTwitter; using Core.Domain; namespace SiteAPI.Controllers { public class TwitterDBController : ApiController { public ICollectionGetTweetsOnlyFeedFromDB(string username) { return Integration.Twitter.TwDbHelper.GetTweetsOnlyFeedFromDB(username); } } }
//twitter Feed function _inittwitterFeed(userName) { var twFeed = $('#twitter-feed'); // get twitter posts from api function __gettwitterPosts(callback) { var apiUri = 'https://{enteryoursite}.azurewebsites.net/api/twitterdb/GetTweetsOnlyFeedFromDB?username='; $.ajax({ url: apiUri + userName, type: 'json', success: function (result) { callback(result); }, error: function () { //twFeed.closest('.ms-webpartzone-cell').hide(); } }); } // format the data returned from the twitter api function __processtwitterPosts(posts) { var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; var twitterPostsHtml = ''; var profileImage; var link; var title; var date; var post; for (var post in posts) { title = posts[post].Text; profileImage = posts[post].ProfileImageUrlHttps; link = '//twitter.com/' + posts[post].ScreenName + '/status/' + posts[post].StringStatusID; date = posts[post].CreatedAt.match(/([0-9]{4})\-([0-9]{1,2})\-([0-9]{1,2})/); date = date[3] + ' ' + months[date[2] - 1] + ' ' + date[1]; if (profileImage.length > 0) { if (link != null) { post = '
//twitter Feed