public JsonResult Asap20HLS() { var ReturnCode = new ServiceReturnType() { StatusCode = (int)ErrorCodes.UnknownError, StatusMessage = String.Empty }; try { if (!Request.IsLocal) { Regex rx = new Regex(GlobalConfig.Asap20InLondonAllowedDomains); if (!rx.IsMatch(Request.Url.Host)) { ReturnCode.StatusMessage = String.Format("Unauthorized: {0}", Request.Url.Host); return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } } catch (Exception) { } //if (!Request.IsLocal) // if (!GlobalConfig.isUAT) // if (!Request.IsAjaxRequest()) // { // ReturnCode.StatusCode = (int)ErrorCodes.IsInvalidRequest; // ReturnCode.StatusMessage = "Request is not valid."; // return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); // } int id = GlobalConfig.Asap20InLondonEpisodeId; DateTime registDt = DateTime.Now; try { string CountryCode = MyUtility.GetCountryCodeViaIpAddressWithoutProxy(); using (var context = new IPTV2Entities()) { Episode episode = context.Episodes.FirstOrDefault(e => e.EpisodeId == id); if (episode != null) { if (episode.OnlineStatusId == GlobalConfig.Visible && episode.OnlineStartDate < registDt && episode.OnlineEndDate > registDt) { Offering offering = context.Offerings.Find(GlobalConfig.offeringId); AkamaiFlowPlayerPluginClipDetails clipDetails = null; var HasActiveSubscriptionBasedOnCategoryId = new CheckSubscriptionReturnObject() { HasSubscription = true, Within5DaysOrLess = false }; if (HasActiveSubscriptionBasedOnCategoryId.HasSubscription) { var premiumAsset = episode.PremiumAssets.LastOrDefault(); if (premiumAsset != null) { Asset asset = premiumAsset.Asset; if (asset != null) { int assetId = asset == null ? 0 : asset.AssetId; if (episode.IsLiveChannelActive == true) //isLiveEvent { if (!ContextHelper.DoesEpisodeHaveIosCdnReferenceBasedOAsset(premiumAsset)) { if (Request.Browser.IsMobileDevice) { ReturnCode.StatusCode = (int)ErrorCodes.IsNotAvailableOnMobileDevices; ReturnCode.StatusMessage = "This stream is not available on this device"; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } //clipDetails = Helpers.Akamai.GetAkamaiLiveEventClipDetails(episode.EpisodeId, assetId, Request, User, true, removeIpFromToken: true); clipDetails = Helpers.Akamai.GetAkamaiLiveEventClipDetails_M3U8(episode.EpisodeId, assetId, Request, User, true, CountryCodeOverride: String.Empty, RemoveIpFromToken: true); if (clipDetails != null) if (!String.IsNullOrEmpty(clipDetails.Url)) { ReturnCode.StatusCode = (int)ErrorCodes.Success; ReturnCode.StatusMessage = "OK"; ReturnCode.info = clipDetails.Url; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } ReturnCode.StatusMessage = "Clip not available."; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } ReturnCode.StatusMessage = "Asset not available."; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } ReturnCode.StatusMessage = "Access to this clip is restricted."; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } ReturnCode.StatusMessage = "Episode does not exist."; } } catch (Exception e) { ReturnCode.StatusMessage = e.Message; } return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); }
//[RequireHttps] public JsonResult Feed01() { var ReturnCode = new ServiceReturnType() { StatusCode = (int)ErrorCodes.UnknownError, StatusMessage = String.Empty }; //if (!Request.IsLocal) // if (!GlobalConfig.isUAT) // if (!Request.IsAjaxRequest()) // { // ReturnCode.StatusCode = (int)ErrorCodes.IsInvalidRequest; // ReturnCode.StatusMessage = "Request is not valid."; // return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); // } int id = GlobalConfig.TFCtvMobileAirEpisodeId; DateTime registDt = DateTime.Now; try { string CountryCode = MyUtility.GetCountryCodeViaIpAddressWithoutProxy(); if (MyUtility.IsWhiteListed(String.Empty)) CountryCode = "HK"; else { try { var requestingIp = Request.GetUserHostAddressFromCloudflare(); var whiteListedIp = GlobalConfig.IpWhiteList.Split(','); if (whiteListedIp.Contains(requestingIp) && GlobalConfig.isUAT) CountryCode = "HK"; } catch (Exception) { } } using (var context = new IPTV2Entities()) { Episode episode = context.Episodes.FirstOrDefault(e => e.EpisodeId == id); if (episode != null) { if (episode.OnlineStatusId == GlobalConfig.Visible && episode.OnlineStartDate < registDt && episode.OnlineEndDate > registDt) { var CacheDuration = new TimeSpan(0, GlobalConfig.GetParentShowsForEpisodeCacheDuration, 0); var parentCategories = episode.GetParentShows(CacheDuration); Offering offering = context.Offerings.Find(GlobalConfig.offeringId); AkamaiFlowPlayerPluginClipDetails clipDetails = null; //var ShowListBasedOnCountryCode = ContextHelper.GetAllShowsBasedOnCountryCode(context, CountryCode, true, offering); var HasActiveSubscriptionBasedOnCategoryId = new CheckSubscriptionReturnObject() { HasSubscription = false, Within5DaysOrLess = false }; if (parentCategories != null) HasActiveSubscriptionBasedOnCategoryId = ContextHelper.HasActiveSubscriptionBasedOnCategoryId(null, parentCategories, registDt, CountryCode); if (HasActiveSubscriptionBasedOnCategoryId.HasSubscription) { var premiumAsset = episode.PremiumAssets.LastOrDefault(); if (premiumAsset != null) { Asset asset = premiumAsset.Asset; if (asset != null) { int assetId = asset == null ? 0 : asset.AssetId; if (episode.IsLiveChannelActive == true) //isLiveEvent { if (!ContextHelper.DoesEpisodeHaveIosCdnReferenceBasedOAsset(premiumAsset)) { if (Request.Browser.IsMobileDevice) { ReturnCode.StatusCode = (int)ErrorCodes.IsNotAvailableOnMobileDevices; ReturnCode.StatusMessage = "This stream is not available on this device"; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } clipDetails = Helpers.Akamai.GetAkamaiLiveEventClipDetails_M3U8(episode.EpisodeId, assetId, Request, User, true, CountryCodeOverride: CountryCode, RemoveIpFromToken: true); if (clipDetails != null) if (!String.IsNullOrEmpty(clipDetails.Url)) { ReturnCode.StatusCode = (int)ErrorCodes.Success; ReturnCode.StatusMessage = "OK"; ReturnCode.info = clipDetails.Url; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } ReturnCode.StatusMessage = "Clip not available."; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } ReturnCode.StatusMessage = "Asset not available."; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } ReturnCode.StatusMessage = "Access to this clip is restricted."; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } } ReturnCode.StatusMessage = "Episode does not exist."; } } catch (Exception e) { ReturnCode.StatusMessage = e.Message; } return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); }
//[RequireHttps] public JsonResult _MobileForgotPassword(FormCollection fc) { var ReturnCode = new ServiceReturnType() { StatusCode = (int)ErrorCodes.UnknownError, StatusMessage = String.Empty }; try { DateTime registDt = DateTime.Now; Dictionary<string, string> tmpCollection = fc.AllKeys.ToDictionary(k => k, v => fc[v]); bool isMissingRequiredFields = false; foreach (var x in tmpCollection) { if (String.IsNullOrEmpty(x.Value)) { isMissingRequiredFields = true; break; } } if (!isMissingRequiredFields) { string EmailAddress = fc["login_email"]; RegexUtilities util = new RegexUtilities(); //if (!MyUtility.isEmail(EmailAddress)) if (!util.IsValidEmail(EmailAddress)) { ReturnCode.StatusMessage = "Email address is invalid."; } else { var context = new IPTV2Entities(); User user = context.Users.FirstOrDefault(u => String.Compare(u.EMail, EmailAddress, true) == 0); if (user != null) { if (user.StatusId != GlobalConfig.Visible) { ReturnCode.StatusMessage = "Email address is not verified."; return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); } user.LastUpdated = registDt; if (context.SaveChanges() > 0) { string oid = MyUtility.GetSHA1(String.Format("{0}{1}", user.UserId, user.LastUpdated)); string reset_pwd_email = String.Format("{0}/User/ResetPassword?key={1}&oid={2}", GlobalConfig.baseUrl, user.ActivationKey, oid.ToLower()); string emailBody = String.Format(GlobalConfig.ResetPasswordBodyTextOnly, user.FirstName, registDt.ToString("MM/dd/yyyy hh:mm:ss tt"), reset_pwd_email); try { if (!Request.IsLocal) MyUtility.SendEmailViaSendGrid(user.EMail, GlobalConfig.NoReplyEmail, "Reset your TFC.tv Password", emailBody, MailType.TextOnly, emailBody); ReturnCode.StatusCode = (int)ErrorCodes.Success; ReturnCode.StatusMessage = "Instructions on how to reset your password have been sent to your email address."; } catch (Exception) { ReturnCode.StatusCode = (int)ErrorCodes.UnknownError; ReturnCode.StatusMessage = "The system encountered an unspecified error. Please contact Customer Support."; } } else ReturnCode.StatusMessage = "The system encountered an unidentified error. Please try again."; } else { ReturnCode.StatusCode = (int)ErrorCodes.UserDoesNotExist; ReturnCode.StatusMessage = "Email does not exist."; } } } else ReturnCode.StatusMessage = "Please fill in all required fields."; } catch (Exception e) { ReturnCode.StatusMessage = e.Message; } return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); }
public ActionResult DisableFeed() { var ReturnCode = new ServiceReturnType() { StatusCode = (int)ErrorCodes.UnknownError, StatusMessage = String.Empty }; try { if (GlobalConfig.isUAT) { var context = new IPTV2Entities(); var restrictions = context.CategoryCountryRestrictions.Where(c => String.Compare(c.CountryCode, "US", true) == 0 && c.CategoryId == 2554); if (restrictions != null) { foreach (var item in restrictions) { item.StatusId = 5; } if (context.SaveChanges() > 0) { ReturnCode.StatusCode = (int)ErrorCodes.Success; ReturnCode.StatusMessage = "FEED DISABLED FOR US"; } else ReturnCode.StatusMessage = "UNABLE TO SAVE"; } else ReturnCode.StatusMessage = "NO RESTRICTIONS FOUND"; } else ReturnCode.StatusMessage = "FUNCTION NOT ALLOWED"; } catch (Exception) { } return this.Json(ReturnCode, JsonRequestBehavior.AllowGet); }