/// <summary> /// Removes BOTH: CPAOffer and CPAOfferOnHOld /// Needs to save CPAOfferOnHold ONLY!!!! /// </summary> /// <param name="Offer"></param> public static void RemoveOfferFromSync(CPAOfferOnHold Offer) { Offer.IsSyncWithNetwork = false; //Was synced but IT IS NOT ANYMORE var where = TableHelper.MakeDictionary("NetworkOfferIdInt", Offer.NetworkOfferId); where.Add("NetworkName", Offer.NetworkName); var PreviousOffers = TableHelper.SelectRows <CPAOffer>(where); CPAOffer PreviousOffer = PreviousOffers[0]; RemoveOfferFromSync(PreviousOffer); Offer.Save(); }
protected static void ConstructInsertQuery(StringBuilder sb, CPAOfferOnHold Offer) { sb.Append(" (") .Append(Convert.ToInt32(Offer.IsFromAutomaticNetwork)) .Append(", ") .Append(Offer.NetworkOfferId) .Append(", '") .Append(Offer.Title.Replace("'", "''")) .Append("', '") .Append(Offer.TargetURL) .Append("', '") .Append(Offer.DateAdded.ToDBString()) .Append("', ") .Append((int)Offer.Status) .Append(", '") .Append(Offer.ImageURL) .Append("', '") .Append(Offer.AdvertiserUsername) .Append("', ") .Append(Convert.ToInt32(Offer.LoginBoxRequired)) .Append(", ") .Append(Convert.ToInt32(Offer.EmailBoxRequired)) .Append(", '") .Append(Offer.LastCredited.ToDBString()) .Append("', '") .Append(Offer.Description.Replace("'", "''")) .Append("', ") .Append((int)Offer.Category.Id) .Append(", ") .Append(Offer.BaseValue.ToClearString()) .Append(", ") .Append(Offer.CreditsBought) .Append(", '") .Append(Offer.NetworkName) .Append("', '") .Append(Offer.NetworkRate) .Append("', ") .Append(Convert.ToInt32(Offer.IsSyncWithNetwork)) .Append(", ") .Append(Convert.ToInt32(Offer.IsDaily)) .Append(", ") .Append(Convert.ToInt32(Offer.MaxDailyCredits)) .Append(", ") .Append(Convert.ToInt32(Offer.CreditOfferAs)) .Append(", ") .Append(Offer.GetGeolocationSQL()) .Append(")"); sb.Append(","); }
//OFFER /// <summary> /// Affect CPAOffer ONLY. Doesn't affect CPAOfferOnHold AT ALL!! /// </summary> /// <param name="ThisOffer"></param> public static void AddOfferToSync(CPAOfferOnHold ThisOffer) { //Wasnt synced, now need to ADD to sync //Check if not already in CPAOffers but deactivated (Status = rejected, issync = false) var where = TableHelper.MakeDictionary("NetworkOfferIdInt", ThisOffer.NetworkOfferId); where.Add("NetworkName", ThisOffer.NetworkName); var PreviousOffers = TableHelper.SelectRows <CPAOffer>(where); if (PreviousOffers.Count > 0) { //It already exists, activate it CPAOffer OfferToActivate = PreviousOffers[0]; OfferToActivate.Status = AdvertStatus.Active; OfferToActivate.IsSyncWithNetwork = true; OfferToActivate.Save(); } else { //We need to add it CPAOffer NewOffer = new CPAOffer(); NewOffer.IsFromAutomaticNetwork = ThisOffer.IsFromAutomaticNetwork; NewOffer.NetworkOfferId = ThisOffer.NetworkOfferId; NewOffer.Title = ThisOffer.Title; NewOffer.ImageURL = ThisOffer.ImageURL; NewOffer.TargetURL = ThisOffer.TargetURL; NewOffer.DateAdded = DateTime.Now; NewOffer.Status = AdvertStatus.Active; NewOffer.AdvertiserUsername = ThisOffer.AdvertiserUsername; NewOffer.LoginBoxRequired = ThisOffer.LoginBoxRequired; NewOffer.EmailBoxRequired = ThisOffer.EmailBoxRequired; NewOffer.LastCredited = OffersManager.DateTimeZero; NewOffer.Description = ThisOffer.Description; NewOffer.Category = ThisOffer.Category; NewOffer.BaseValue = ThisOffer.BaseValue; NewOffer.CreditsBought = ThisOffer.CreditsBought; //Infinity NewOffer.NetworkName = ThisOffer.NetworkName; NewOffer.NetworkRate = ThisOffer.NetworkRate; NewOffer.IsSyncWithNetwork = ThisOffer.IsSyncWithNetwork; // by default NewOffer.IsDaily = ThisOffer.IsDaily; NewOffer.MaxDailyCredits = ThisOffer.MaxDailyCredits; NewOffer.CopyGeolocation(ThisOffer); NewOffer.CreditOfferAs = ThisOffer.CreditOfferAs; NewOffer.RequiredMembership = Membership.Standard.Id; NewOffer.Save(); } }
public static void HandleAddition(string name, string description, string rate, string banner, string url, string incent, string countriesCC, AffiliateNetwork Network, string id, List <CPAOfferOnHold> OnHoldList, ref bool AreSomeRecordsInQuery, ref StringBuilder Query, string geolocatedCities = null, int ageMin = 0, int ageMax = 0, Gender gender = Gender.Null) { CPAOfferOnHold ThisOffer = SyncedNetwork.HasThisOffer(OnHoldList, id, name); if (ThisOffer != null) { //We have it, just change the status ThisOffer.Status = AdvertStatus.WaitingForAcceptance; } else { AreSomeRecordsInQuery = true; //Preparte the variables to fit database Money UserRate = Money.Zero; try { if (rate.Contains(".")) { UserRate = Money.Parse(rate); } else { UserRate = Money.Parse(rate + ".0"); } UserRate = Money.MultiplyPercent(UserRate, Network.DefaultPercentForMembers); } catch (Exception ex) { } if (name.Length > 50) { name = name.Substring(0, 49); } if (!string.IsNullOrEmpty(banner) && banner.Length > 150) { banner = banner.Substring(0, 149); } //We need to add it CPAOfferOnHold NewOffer = new CPAOfferOnHold(); NewOffer.IsFromAutomaticNetwork = true; NewOffer.NetworkOfferId = id; NewOffer.Title = InputChecker.HtmlEncode(name); NewOffer.ImageURL = banner; NewOffer.TargetURL = url; NewOffer.DateAdded = DateTime.Now; NewOffer.Status = AdvertStatus.Active; NewOffer.AdvertiserUsername = Network.Name; NewOffer.LoginBoxRequired = false; NewOffer.EmailBoxRequired = false; NewOffer.LastCredited = OffersManager.DateTimeZero; NewOffer.Description = InputChecker.HtmlEncode(description); NewOffer.Category = new CPACategory(CPACategory.DEFAULT_CATEGORY_ID); NewOffer.BaseValue = UserRate; NewOffer.CreditsBought = 1000000; //Infinity NewOffer.NetworkName = Network.Name; NewOffer.NetworkRate = rate; NewOffer.IsSyncWithNetwork = false; // by default NewOffer.IsDaily = false; NewOffer.MaxDailyCredits = 1; NewOffer.AddGeolocation(new GeolocationUnit(countriesCC, geolocatedCities, ageMin, ageMax, gender)); if (incent.Trim().ToUpper() == "NO") { NewOffer.CreditOfferAs = CreditOfferAs.NonCash; } else { NewOffer.CreditOfferAs = CreditOfferAs.NetworkDefault; } SyncedNetwork.ConstructInsertQuery(Query, NewOffer); } }