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 List GetBingNews(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 ICollection GetTweetsOnlyFeedFromDB(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