public JsonResult SubscribePushNotification(PushSubscribeDTO pushDTO)
{
GenericResponse responseObj = null;
int timeStart = DateTime.Now.TimeOfDay.Seconds;
try
{
if (pushDTO.pushCheck)
pushService.Subscribe(pushDTO.deviceToken, pushDTO.deviceType, pushDTO.accessToken, pushDTO.appType);
else
{
string userName = new AuthWorker(Options.OAuthUrl, Options.OAuthRedirectUrl, Options.OAuthSecret,
Options.OAuthAppId).GetUserInfo(pushDTO.accessToken).username;
if (userName != null)
{
var userId = factory.GetDeviceTokenDao().GetUserIdByName(userName);
pushService.Unsubscribe(pushDTO.deviceToken, userId);
}
else
throw new Sequencing.WeatherApp.Controllers.DaoLayer.ApplicationException(string.Format("Invalid access token {0}", pushDTO.accessToken));
}
responseObj = new GenericResponse()
{
Status = 0,
ResponseTime = DateTime.Now.TimeOfDay.Seconds - timeStart,
Message = "Push notification successfully " + (pushDTO.pushCheck ? "subscribed" : "unsubscribed"),
Data = null,
};
return Json(responseObj, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
responseObj = new GenericResponse()
{
Status = 1,
ResponseTime = DateTime.Now.TimeOfDay.Seconds - timeStart,
Message = e.Message,
Data = null,
};
ResponseLogging(responseObj);
return Json(responseObj, JsonRequestBehavior.AllowGet);
}
}