public ActionResult PaymentProvider() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT pr.PaymentProviderID, pr.ExternalPaymentProviderGuid, pr.Name, pr.Updated, pr.Created FROM MobilePaywall.core.PaymentProvider AS pr LEFT OUTER JOIN MobilePaywall.core.PaymentConfiguration AS pc ON pc.PaymentProviderID=pr.PaymentProviderID LEFT OUTER JOIN MobilePaywall.core.ServiceOffer AS so ON so.PaymentConfigurationID=pc.PaymentConfigurationID LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON so.ServiceID=us.ServiceID WHERE us.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult Customer() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@" SELECT c.CustomerID, c.CustomerGuid, c.ExternalCustomerGuid, cs.Name AS 'CustomerStatus', mo.MobileOperatorID, mo.ExternalMobileOperatorID, mo.Name AS 'MobileOperator', c.Msisdn, c.EncryptedMsisdn, c.Username, c.Updated, c.Created FROM MobilePaywall.core.Customer AS c LEFT OUTER JOIN MobilePaywall.core.CustomerStatus AS cs ON c.CustomerStatusID=cs.CustomerStatusID LEFT OUTER JOIN MobilePaywall.core.MobileOperator AS mo ON c.MobileOperatorID=mo.MobileOperatorID LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON us.CustomerID=c.CustomerID WHERE us.UserSessionID=" + uid + "; "); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult ContentAccessPolicy() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT c.ContentAccessPolicyID, bm.Name AS 'BusinessModel', tsam.Name AS 'TemporarySetupAccessModelID', c.TemporaryAccessInSeconds, c.NumberOfItems, c.NumberOfItemDownloads, c.NumberOfTotalDownloads, c.IntervalInSeconds, c.Updated, c.Created FROM MobilePaywall.core.ContentAccessPolicy AS c LEFT OUTER JOIN MobilePaywall.core.Service AS s ON c.ServiceID=s.ServiceID LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON us.ServiceID=s.ServiceID LEFT OUTER JOIN MobilePaywall.core.BusinessModel AS bm ON c.BusinessModelID=bm.BusinessModelID LEFT OUTER JOIN MobilePaywall.core.TemporarySetupAccessMode AS tsam ON c.TemporarySetupAccessModeID=tsam.TemporarySetupAccessModeID WHERE us.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public static PremiumSubscriptionModel GetModel(MobilePaywallDirect db, AndroidPremiumCustomer customer) { DirectContainer container = db.LoadContainer(string.Format(@" SELECT s.ServiceID, s.Name AS ServiceName, c.TwoLetterIsoCode, sce.Keyword, sce.Shortcode FROM MobilePaywall.core.TemplateServiceInfo AS i LEFT OUTER JOIN MobilePaywall.core.Service AS s ON i.ServiceID=s.ServiceID LEFT OUTER JOIN MobilePaywall.core.Country AS c ON s.FallbackCountryID=c.CountryID LEFT OUTER JOIN MobilePaywall.core.ServiceConfiguration AS sc ON s.ServiceConfigurationID=sc.ServiceConfigurationID LEFT OUTER JOIN MobilePaywall.core.ServiceConfigurationEntry AS sce ON sce.ServiceConfigurationID=sc.ServiceConfigurationID LEFT OUTER JOIN MobilePaywall.core.AndroidPremiumCustomerServiceMap AS apcsm ON apcsm.ServiceID=s.ServiceID WHERE i.IsPremiumSms=1 AND sce.Shortcode != '' AND sce.Keyword != '' AND i.Progress IN (5) AND (apcsm.AndroidPremiumCustomerID IS NULL OR apcsm.AndroidPremiumCustomerID!={0} OR (apcsm.AndroidPremiumCustomerID={0} AND apcsm.PaymentRequestID IS NULL)) AND c.CountryID={1}", customer.ID, customer.Country.ID)); if (!container.HasValue || container.ColumnCount == 0) { return(null); } return(new PremiumSubscriptionModel() { ServiceID = container.GetString("ServiceID"), ServiceName = container.GetString("ServiceName"), TwoLetterIsoCode = container.GetString("TwoLetterIsoCode"), Keyword = container.GetString("Keyword"), Shortcode = container.GetString("Shortcode") }); }
public ActionResult Product() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT p.ProductID, p.ProductGuid, p.ExternalProductGuid, i.Name, p.Name, p.Description, p.Updated, p.Created FROM MobilePaywall.core.Product AS p LEFT OUTER JOIN MobilePaywall.core.Service AS s ON s.ProductID=p.ProductID LEFT OUTER JOIN MobilePaywall.core.Instance AS i ON p.InstanceID=i.InstanceID LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON us.ServiceID=s.ServiceID WHERE us.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult Merchant() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT m.MerchantID, m.Name, m.Address, m.Phone, m.Email, m.RegistrationNo, m.VatNo, t.Name AS 'Template', m.Updated, m.Created FROM MobilePaywall.core.Merchant AS m LEFT OUTER JOIN MobilePaywall.core.Service AS s ON s.MerchantID=m.MerchantID LEFT OUTER JOIN MobilePaywall.core.Template AS t ON m.TemplateID=t.TemplateID LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON us.ServiceID=s.ServiceID WHERE us.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult PaymentAccessPolicy() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT pcapm.PaymentContentAccessPolicyMapID, pcapm.ContentID, pcapm.TransactionID, pcapm.IsValid, pcapm.IsTemporary, pcapm.ValidTo, pcapm.Updated, pcapm.Created FROM MobilePaywall.core.PaymentContentAccessPolicyMap AS pcapm LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON pcapm.PaymentID=p.PaymentID LEFT OUTER JOIN MobilePaywall.core.PaymentRequest AS pr ON pr.PaymentRequestID=p.PaymentRequestID WHERE pr.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult Application() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT a.ApplicationID, a.Name, a.ApplicationName, i.Name AS 'Instance', at.Name AS 'ApplicationType', rt.Name AS 'RuntimeType', rt.TypeName AS 'RuntimeType', a.Updated, a.Created FROM MobilePaywall.core.Application AS a LEFT OUTER JOIN MobilePaywall.core.Service AS s ON s.ApplicationID=a.ApplicationID LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON us.ServiceID=s.ServiceID LEFT OUTER JOIN MobilePaywall.core.Instance AS i ON a.InstanceID=i.InstanceID LEFT OUTER JOIN MobilePaywall.core.RuntimeType AS rt ON a.RuntimeTypeID=rt.RuntimeTypeID LEFT OUTER JOIN MobilePaywall.core.ApplicationType AS at ON a.ApplicationTypeID=at.ApplicationTypeID WHERE us.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult Transaction() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT t.TransactionID, t.TransactionGuid, t.ExternalTransactionGuid, t.ExternalTransactionGroupGuid, ts.Name AS 'TransactionStatus', tt.Name AS 'TransactionType', t.Updated, t.Created FROM MobilePaywall.core.[Transaction] AS t LEFT OUTER JOIN MobilePaywall.core.TransactionStatus AS ts ON t.TransactionStatusID=ts.TransactionStatusID LEFT OUTER JOIN MobilePaywall.core.TransactionType AS tt ON t.TransactionTypeID=tt.TransactionTypeID LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON t.PaymentID=p.PaymentID LEFT OUTER JOIN MobilePaywall.core.PaymentRequest AS pr ON pr.PaymentRequestID=p.PaymentRequestID WHERE pr.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult PaymentRequest() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT pr.PaymentRequestID, pr.PaymentRequestGuid, pr.ExternalPaymentRequestGuid, pt.Name AS 'PaymentType', prs.Name AS 'PaymentRequestStatus', bmet.Name AS 'BusinessModelType', pr.PaymentRedirectUrl, pr.Updated, pr.Created FROM MobilePaywall.core.PaymentRequest AS pr LEFT OUTER JOIN MobilePaywall.core.PaymentType as pt ON pr.PaymentTypeID=pt.PaymentTypeID LEFT OUTER JOIN MobilePaywall.core.PaymentRequestStatus AS prs ON pr.PaymentRequestStatusID=prs.PaymentRequestStatusID LEFT OUTER JOIN MobilePaywall.core.BusinessModelEntry AS bme ON pr.BusinessModelEntryID=bme.BusinessModelEntryID LEFT OUTER JOIN MobilePaywall.core.BusinessModelType AS bmet ON bme.BusinessModelTypeID=bmet.BusinessModelTypeID WHERE pr.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult GetClickInformations(string uid) { int _uid = -1; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("")); } MobilePaywallDirect db = MobilePaywallDirect.Instance; DirectContainer cache = db.LoadContainer(@"SELECT c.ServiceName, c.CountryCode, c.MobileOperatorName, c.SessionCreated, p.PaymentStatusID, p.PaymentID FROM MobilePaywall.core.OLCache AS c LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON c.PaymentID=p.PaymentID WHERE c.UserSessionID=" + uid); if (!cache.HasValue) { return(this.Content("")); } ClickInformationModel model = new ClickInformationModel(); model.UserSessionID = uid; model.Logo = string.Format("http://{0}/logo", cache.GetString("ServiceName")); model.Country = string.Format("../images/_flagsx/{0}.png", cache.GetString("CountryCode")); return(PartialView("~/Views/Report/_ClickInformations.cshtml", model)); }
public static async void Test() { MobilePaywallDirect db = MobilePaywallDirect.Instance; int?id = db.LoadInt("SELECT TOP 1 ServiceID FROM MobilePaywall.core.Service", DirectTime.Now); Console.ReadKey(); }
// GET: Entrance call from apk, first thing that will be called public ActionResult Call() { string uniqueID = Request["uniqueID"] != null ? Request["uniqueID"].ToString() : string.Empty; string msisdn = Request["msisdn"] != null ? Request["msisdn"].ToString() : string.Empty; string referrer = Request["referrer"] != null ? Request["referrer"].ToString() : string.Empty; string applicationName = Request["applicationName"] != null ? Request["applicationName"].ToString() : string.Empty; // Check values if (string.IsNullOrEmpty(uniqueID)) { Log.Error("Primium.Entrance:: No uniqueID"); return(this.Json(new { status = false }, JsonRequestBehavior.AllowGet)); } if (string.IsNullOrEmpty(applicationName)) { Log.Error("Primium.Entrance:: No application name"); return(this.Json(new { status = false }, JsonRequestBehavior.AllowGet)); } AndroidPremiumCustomer customer = this.GetCustomer(uniqueID, applicationName, Request.UserHostAddress, msisdn, referrer); // Find suitable service for subscription MobilePaywallDirect db = MobilePaywallDirect.Instance; PremiumSubscriptionModel subscriptionModel = PremiumSubscriptionModel.GetModel(db, customer); if (subscriptionModel == null) { Log.Debug("Primium.Entrance:: There is no suitable PSMS service for country=" + customer.Country.TwoLetterIsoCode); return(this.Json(new { status = false, customerID = customer.ID }, JsonRequestBehavior.AllowGet)); } string textmessage = string.Format("{0} /ac={1}", subscriptionModel.Keyword, customer.ID); AndroidPremiumCustomerServiceMap map = new AndroidPremiumCustomerServiceMap(-1, customer, null, Int32.Parse(subscriptionModel.ServiceID), subscriptionModel.Shortcode, textmessage, null, DateTime.Now, DateTime.Now); map.Insert(); int minuteWait = (new Random()).Next(2, 7); Log.Debug(string.Format("Primium.Entrance:: Customer:{0}, Service:{1}, Shortcode:{2}, Keyword:{3}, Wait: {4}", customer.ID, subscriptionModel.ServiceName, subscriptionModel.Shortcode, subscriptionModel.Keyword, minuteWait)); return(this.Json(new { status = true, minute = minuteWait, customerID = customer.ID, shortcode = subscriptionModel.Shortcode, textmessage = textmessage, }, JsonRequestBehavior.AllowGet)); }
public CodeManager(FilterModel filter) { MobilePaywallDirect directInstance = MobilePaywallDirect.Instance; CreateSql(filter); this._conteiner = directInstance.LoadContainer(_sqlCommand); _homeModel = new HomeModel(this._conteiner); }
// GET: Detail public ActionResult ViewDetails(int id, string tableName) { MobilePaywallDirect directInstance = MobilePaywallDirect.Instance; string sqlCommand = "SELECT * FROM MobilePaywall.log." + tableName + " WHERE " + tableName + "ID=" + id; DirectContainer conteiner = directInstance.LoadContainer(sqlCommand); WebLogInspector.Models.Home.LogResultModel model = new Models.Home.LogResultModel(conteiner.Rows.First()); return(View(model)); }
public ActionResult GetCashflowNewLog(WebLogTableData data) { MobilePaywallDirect db = MobilePaywallDirect.Instance; CashflowLogManager manager = new CashflowLogManager(); manager.QueryByReferenceIntID(data); return(View("~/Views/Report/_LogBlock.cshtml", new LogModel() { Tables = manager.Result })); }
public ActionResult ClickinformationsAction_CancelPayment(string uid) { if (string.IsNullOrEmpty(uid)) { return(this.Json(new { status = false, message = "There is no uid param" })); } MobilePaywallDirect db = MobilePaywallDirect.Instance; DirectContainer container = db.LoadContainer(string.Format(@" SELECT ol.PaymentID, p.PaymentStatusID FROM MobilePaywall.core.OLCache AS ol LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON ol.PaymentID=p.PaymentID WHERE UserSessionID={0}", uid)); if (!container.HasValue) { return(this.Json(new { status = false, message = "There is no entry for this UserSession" })); } int?paymentID = container.GetInt("PaymentID"); int?paymentStatus = container.GetInt("PaymentStatusID"); if (!paymentID.HasValue) { return(this.Json(new { status = false, message = "This UserSession has no payment" })); } if (!paymentStatus.HasValue) { return(this.Json(new { status = false, message = "InternalError. There is no status for payment on this US" })); } if (paymentStatus.Value == 1) { return(this.Json(new { status = false, message = "Payment status is initialized. You cannot cancel this status" })); } if (paymentStatus.Value == 2) { return(this.Json(new { status = false, message = "Payment status is pending. You cannot cancel this status" })); } if (paymentStatus.Value == 4) { return(this.Json(new { status = false, message = "Payment status is failed. You cannot cancel this payment" })); } if (paymentStatus.Value == 5) { return(this.Json(new { status = false, message = "This payment is allready canceled" })); } db.Execute("UPDATE MobilePaywall.core.Payment SET PaymentStatusID=5 WHERE PaymentID=" + paymentID.Value); return(this.Json(new { status = true, message = "Payment is cancelled" })); }
/// SUMMARY: Get suatable services for specific country (Based on ServiceInfo ordered by 'Live and Active' and 'Active but no active') /// in witch this customer has not made any PaymentReqeust /// ONLY WAP PAYMENT public static SuitableServiceResponse GetWapService(AndroidClientSession session) { MobilePaywallDirect db = MobilePaywallDirect.Instance; // First we get filter list of all services in which this session has made payment request in past time (7days) List <string> servicesWithPaymentRequest = db.LoadContainer(string.Format(@" SELECT s.Name FROM MobilePaywall.core.AndroidClientSession AS acs LEFT OUTER JOIN MobilePaywall.core.AndroidClientSessionOLCacheMap AS acmap ON acmap.AndroidClientSessionID=acs.AndroidClientSessionID LEFT OUTER JOIN MobilePaywall.core.OLCache AS cache ON cache.OLCacheID=acmap.OLCacheID LEFT OUTER JOIN MobilePaywall.core.Service AS s ON s.ServiceID=cache.ServiceID WHERE acs.AndroidClientSessionID={0} AND cache.PaymentRequestID IS NOT NULL AND cache.IsSubseguent=0 AND cache.SessionCreated >= DATEADD(day,-{1}, GETDATE());", session.ID, DAYS_FOR_PAYMENT_REQUEST_CHECK)).GetStringList("Name"); // Then we filter services in which this session has any access in past day List <string> servicesWithAnyAccess = db.LoadContainer(string.Format(@" SELECT s.Name FROM MobilePaywall.core.AndroidClientSession AS acs LEFT OUTER JOIN MobilePaywall.core.AndroidClientSessionOLCacheMap AS acmap ON acmap.AndroidClientSessionID=acs.AndroidClientSessionID LEFT OUTER JOIN MobilePaywall.core.OLCache AS cache ON cache.OLCacheID=acmap.OLCacheID LEFT OUTER JOIN MobilePaywall.core.Service AS s ON s.ServiceID=cache.ServiceID WHERE acs.AndroidClientSessionID={0} AND cache.SessionCreated >= DATEADD(day,-{1}, GETDATE());", session.ID, DAYS_FOR_ACCESS_CHECK)).GetStringList("Name"); // This is the list of all services that are listed as LIVE AND ACTIVE List <string> suitableActiveServices = db.LoadContainer(string.Format(@" SELECT s.Name AS 'Name' FROM MobilePaywall.core.TemplateServiceInfo AS tsi LEFT OUTER JOIN MobilePaywall.core.Service AS s ON tsi.ServiceID=s.ServiceID WHERE s.FallbackCountryID={0} AND tsi.Progress=5 AND tsi.Color = 2 AND IsPremiumSms=0", session.Country.ID)).GetStringList("Name"); // This is filter list for all services that are listed as NOT LIVE BUT ACTIVE List <string> suitableNonActiveServices = db.LoadContainer(string.Format(@" SELECT s.Name AS 'Name' FROM MobilePaywall.core.TemplateServiceInfo AS tsi LEFT OUTER JOIN MobilePaywall.core.Service AS s ON tsi.ServiceID=s.ServiceID WHERE s.FallbackCountryID={0} AND tsi.Progress=5 AND tsi.Color = 1 AND IsPremiumSms=0", session.Country.ID)).GetStringList("Name"); // randomize active and non active services in one single list Random rand = new Random(); List <string> suitableServices = suitableActiveServices.OrderBy(c => rand.Next()).ToList(); suitableServices.AddRange(suitableNonActiveServices.OrderBy(c => rand.Next()).ToList()); foreach (string service in suitableServices) { if (!servicesWithPaymentRequest.Contains(service) && !servicesWithAnyAccess.Contains(service)) { return(new SuitableServiceResponse(service, false)); } } return(null); }
public ActionResult CloseAccessPolicy(string uid) { //Client client = ClientHelper.GetClient(Request); //if (client == null) // return this.Json(new { status = false, message = "Login error" }); int _uid = -1; if (!Int32.TryParse(uid, out _uid)) { return(this.Json(new { status = false, message = "Parse error" }, JsonRequestBehavior.AllowGet)); } MobilePaywallDirect db = MobilePaywallDirect.Instance; int?paymentID = db.LoadInt("SELECT PaymentID FROM MobilePaywall.core.OLCache WHERE UserSessionID=" + uid); if (!paymentID.HasValue) { return(this.Json(new { status = false, message = "Payment is missing from cache" })); } DirectContainer pcapm = db.LoadContainer("SELECT PaymentContentAccessPolicyMapID FROM MobilePaywall.core.PaymentContentAccessPolicyMap WHERE PaymentID=" + paymentID.Value + " AND IsValid=1 AND ValidTo>getdate();"); if (!pcapm.HasValue) { return(this.Json(new { status = false, message = "There are no active Access policies" })); } IPaymentContentAccessPolicyMapManager pcapManager = PaymentContentAccessPolicyMap.CreateManager(); foreach (DirectContainerRow row in pcapm.Rows) { int?pcapmID = row.GetInt("PaymentContentAccessPolicyMapID"); if (!pcapmID.HasValue) { continue; } PaymentContentAccessPolicyMap map = pcapManager.Load(pcapmID.Value); if (map == null) { continue; } } return(null); }
public DevicesEntryManager(LoadInputData data) { this._data = data; this.Validate(); if (this._error) { return; } this._result = new List <DeviceEntry>(); MobilePaywallDirect db = new MobilePaywallDirect(); string command = ""; #region # sql command # command = " SELECT TOP " + data.top + " " + " acs.AndroidClientSessionID, " + " ad.Name, " + " c.TwoLetterIsoCode, " + " acs.Device, " + " acs.Company, " + " acs.Msisdn, " + " acs.Created " + " FROM MobilePaywall.core.AndroidClientSession AS acs " + " LEFT OUTER JOIN MobilePaywall.core.AndroidDistribution AS ad ON acs.AndroidDistributionID=ad.AndroidDistributionID " + " LEFT OUTER JOIN MobilePaywall.core.Country AS c ON acs.CountryID=c.CountryID " + " WHERE " + (!string.IsNullOrEmpty(data.country) ? " c.TwoLetterIsoCode='" + data.country + "' AND " : "") + (!string.IsNullOrEmpty(data.appID) && !data.appID.Equals("-1") ? " ad.AndroidDistributionID=" + data.appID + " AND " : "") + string.Format(" acs.LastPing >= '{0}' AND acs.LastPing <= '{1}' ", db.Date(this._data.DT_From), db.Date(this._data.DT_To)) + " ORDER BY acs.LastPing DESC; "; #endregion DataTable table = db.Load(command); if (table == null) { return; } foreach (DataRow row in table.Rows) { this._result.Add(new DeviceEntry(row)); } }
// SUMMARY: Report -> Get cashflow logs for specific log public ActionResult GetCashflowLog(WebLogTableData data) { MobilePaywallDirect db = MobilePaywallDirect.Instance; CashflowLogManager manager = new CashflowLogManager(); Guid?subscriptionRequestGuid = db.LoadGuid("SELECT ExternalPaymentRequestGuid FROM MobilePaywall.core.PaymentRequest WHERE ExternalPaymentRequestGuid IS NOT NULL AND UserSessionID=" + data.SessionID); if (subscriptionRequestGuid.HasValue) { data.SessionID = subscriptionRequestGuid.Value.ToString(); manager.QueryBySubscriptionRequestGuid(data); return(View("~/Views/Report/_LogBlock.cshtml", new LogModel() { Tables = manager.Result })); } Guid?identificationSession = db.LoadGuid("SELECT IdentificationSessionGuid FROM MobilePaywall.core.LookupSession WHERE IdentificationSessionGuid IS NOT NULL AND UserSessionID=" + data.SessionID); if (identificationSession.HasValue) { data.SessionID = identificationSession.Value.ToString(); manager.QueryByIdentificationSessionGuid(data); return(View("~/Views/Report/_LogBlock.cshtml", new LogModel() { Tables = manager.Result })); } Guid?referenceGuid = db.LoadGuid("SELECT UserSessionGuid FROM MobilePaywall.core.UserSession WHERE UserSessionID=" + data.SessionID); if (referenceGuid.HasValue) { data.SessionID = referenceGuid.ToString(); manager.QueryByReferenceGuid(data); return(View("~/Views/Report/_LogBlock.cshtml", new LogModel() { Tables = manager.Result })); } return(this.Content("Could not find referenceID")); }
// SUMMARY: Find all suitable tasks and run them public static void Start() { MobilePaywallDirect database = MobilePaywallDirect.Instance; for (;;) { System.Threading.Thread.Sleep(1500); foreach (DeamonTaskData task in DeamonTaskData.GetCurrentData()) { if (!task.ShouldThisTaskBeExecuted) { continue; } StartTask(task); } } }
public ActionResult UserSession() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT us.UserSessionID, us.UserSessionGuid, olCache.OLCacheID, ustype.Name AS 'UserSessionType', ustype.TypeName AS 'UserSessionTypeName', country.Globalname AS 'Country', mo.MobileOperatorID, mo.ExternalMobileOperatorID, mo.Name AS 'MobileOperator', us.FingerprintID, us.HasVerifiedAge, us.IsWelcomeShown, us.IPAddress, us.UserAgent, us.EntranceUrl, us.Referrer, us.ValidUntil AS 'UserSessionValidUntil', us.Created AS 'UserSessionCreated' FROM MobilePaywall.core.UserSession AS us LEFT OUTER JOIN MobilePaywall.core.UserSessionType AS ustype ON us.UserSessionTypeID=ustype.UserSessionTypeID LEFT OUTER JOIN MobilePaywall.core.OLCache AS olCache ON olCache.UserSessionID=us.UserSessionID LEFT OUTER JOIN MobilePaywall.core.Country AS country ON us.CountryID=country.CountryID LEFT OUTER JOIN MobilePaywall.core.MobileOperator AS mo ON us.MobileOperatorID=mo.MobileOperatorID WHERE us.UserSessionID=" + uid + "; "); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ActionResult ClickinformationsAction_CancelAccessPolicy(string uid) { if (string.IsNullOrEmpty(uid)) { return(this.Json(new { status = false, message = "There is no uid param" })); } MobilePaywallDirect db = MobilePaywallDirect.Instance; int?paymentID = db.LoadInt(string.Format(@" SELECT ol.PaymentID FROM MobilePaywall.core.OLCache AS ol WHERE UserSessionID={0}", uid)); if (!paymentID.HasValue) { return(this.Json(new { status = false, message = "This UserSession has no Payment" })); } db.Execute("UPDATE MobilePaywall.core.PaymentContentAccessPolicyMap SET IsValid=0 WHERE PaymentID=" + paymentID.Value); return(this.Json(new { status = true, message = "AccessPolicy is closed" })); }
public ActionResult Service() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@"SELECT s.ServiceID, s.Name, s.Description, ss.Name AS 'Status', st.Name AS 'Type', l.GlobalName AS 'FallbackLanguage', c.GlobalName AS 'FallbackCountry', ar.Name AS 'FallbackAgeRating', bm.Name AS 'BusinessModel', t.Name AS 'Template', s.Updated, s.Created FROM MobilePaywall.core.Service AS s LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON us.ServiceID=s.ServiceID LEFT OUTER JOIN MobilePaywall.core.ServiceStatus AS ss ON s.ServiceStatusID=ss.ServiceStatusID LEFT OUTER JOIN MobilePaywall.core.ServiceType AS st ON s.ServiceTypeID=st.ServiceTypeID LEFT OUTER JOIN MobilePaywall.core.Language AS l ON s.FallbackLanguageID=l.LanguageID LEFT OUTER JOIN MobilePaywall.core.Country AS c ON s.FallbackCountryID=c.CountryID LEFT OUTER JOIN MobilePaywall.core.Template AS t ON s.TemplateID=t.TemplateID LEFT OUTER JOIN MobilePaywall.core.AgeRating AS ar ON s.FallbackAgeRatingID=ar.AgeRatingID LEFT OUTER JOIN MobilePaywall.core.BusinessModel AS bm ON s.BusinessModelID=bm.BusinessModelID WHERE us.UserSessionID=" + uid); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
public ManagerModel() { this._countries = new List <CountryModel>(); MobilePaywallDirect md = new MobilePaywallDirect(); DirectContainer container = md.LoadContainer(string.Format(@"SELECT DISTINCT c.CountryID,c.GlobalName FROM MobilePaywall.core.Country c JOIN MobilePaywall.core.AndroidPremiumCustomer AS a ON c.CountryID = a.CountryID")); foreach (DirectContainerRow row in container.Rows) { int? id = row.GetInt("CountryID"); string name = row.GetString("GlobalName"); CountryModel c = new CountryModel(id.Value, name); this.Countries.Add(c); } if (container == null) { this._countries = new List <CountryModel>(); } this._customers = new List <AndroidPremiumCustomer>(); }
public TemplateServiceCapModel() { MobilePaywallDirect db = MobilePaywallDirect.Instance; List <int> sids = db.LoadArrayInt(string.Format(@" SELECT s.ServiceID, s.FallbackCountryID FROM MobilePaywall.core.Service AS s INNER JOIN (SELECT ServiceID FROM MobilePaywall.core.TemplateServiceCap WHERE IsActive=1 GROUP BY ServiceID) AS m ON m.ServiceID=s.ServiceID ORDER BY s.FallbackCountryID")); IServiceManager sManager = Service.CreateManager(); this._services = new List <Service>(); this._countries = new List <Country>(); foreach (int sid in sids) { Service s = Service.CreateManager().Load(sid); if (!this._countries.Contains(s.FallbackCountry)) { this._countries.Add(s.FallbackCountry); } this._services.Add(s); } }
public ActionResult LookupSession() { int _uid = -1; string uid = Request["uid"] != null ? Request["uid"].ToString() : string.Empty; if (!Int32.TryParse(uid, out _uid)) { return(this.Content("Could not parse UID")); } #region load method DirectContainer container = new MobilePaywallDirect().LoadContainer(@" SELECT ls.LookupSessionID, ls.LookupSessionGuid, lss.Name AS 'Status', ls.IdentificationSessionGuid, ls.LookupUrl, lsr.LookupSessionResultID, lsr.IsSuccessful, lsr.IsFinalResult, lsr.IdentificationResultGuid, lsr.MobileOperatorID, lsr.Msisdn, lsr.EncryptedMsisdn, lsr.Created AS 'ResultCreated', ls.Created AS 'LookupSessionCreated' FROM MobilePaywall.core.LookupSession AS ls LEFT OUTER JOIN MobilePaywall.core.LookupSessionStatus AS lss ON ls.LookupSessionStatusID=lss.LookupSessionStatusID LEFT OUTER JOIN MobilePaywall.core.LookupSessionResult AS lsr ON lsr.LookupSessionID=ls.LookupSessionID WHERE ls.UserSessionID=" + uid + "ORDER BY LookupSessionID DESC"); #endregion InformationsBaseTableModel model = new InformationsBaseTableModel(container); return(PartialView("~/Views/Report/_InformationsBaseTable.cshtml", model)); }
/// SUMMARY: Get suatable services for specific country (Based on ServiceInfo ordered by 'Live and Active' and 'Active but no active') /// in witch this customer has not made any PaymentReqeust /// ONLY PSMS PAYMENT public static SuitableServiceResponse GetPsmsService(AndroidClientSession session) { MobilePaywallDirect db = MobilePaywallDirect.Instance; // First we create filter list for every service in which this session has requested PSMS payment List <string> servicesWithPaymentRequest = db.LoadContainer(string.Format(@" SELECT s.Name FROM MobilePaywall.core.AndroidPremiumSmsRequest AS psms LEFT OUTER JOIN MobilePaywall.core.Service AS s ON psms.ServiceID=s.ServiceID WHERE AndroidClientSessionID=1 AND psms.Created >= DATEADD(day,-1, GETDATE());", session.ID, DAYS_FOR_PAYMENT_REQUEST_CHECK)).GetStringList("Name"); List <string> suitableActiveServices = db.LoadContainer(string.Format(@" SELECT s.Name AS 'Name' FROM MobilePaywall.core.TemplateServiceInfo AS tsi LEFT OUTER JOIN MobilePaywall.core.Service AS s ON tsi.ServiceID=s.ServiceID WHERE s.FallbackCountryID={0} AND tsi.Progress=5 AND tsi.Color = 2 AND IsPremiumSms=0", session.Country.ID)).GetStringList("Name"); List <string> suitableNonActiveServices = db.LoadContainer(string.Format(@" SELECT s.Name AS 'Name' FROM MobilePaywall.core.TemplateServiceInfo AS tsi LEFT OUTER JOIN MobilePaywall.core.Service AS s ON tsi.ServiceID=s.ServiceID WHERE s.FallbackCountryID={0} AND tsi.Progress=5 AND tsi.Color = 1 AND IsPremiumSms=0", session.Country.ID)).GetStringList("Name"); // randomize active and non active services in one single list Random rand = new Random(); List <string> suitableServices = suitableActiveServices.OrderBy(c => rand.Next()).ToList(); suitableServices.AddRange(suitableNonActiveServices.OrderBy(c => rand.Next()).ToList()); foreach (string service in suitableServices) { if (!servicesWithPaymentRequest.Contains(service)) { return(new SuitableServiceResponse(service, true)); } } return(null); }
public EntranceTableManager() { this._database = new MobilePaywallDirect(); }