Example #1
0
        /// <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();
        }
Example #2
0
        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(",");
        }
Example #3
0
        //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();
            }
        }
Example #4
0
        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);
            }
        }