Exemple #1
0
 // Suspend ad
 public bool AdminSuspendAd(int Id)
 {
     // get existing
     try
     {
         var obj = CurrentDbContext.ClassifiedDB.Include("Category").Include("SubCategory").Include("Poster").Include("Photos").SingleOrDefault(x => x.Id == Id);
         if (obj.Status != -1)
         {
             obj.Status       = -1;
             obj.NeedApproval = true;
             obj.Category.TotalClassifiedAdsCount--;
             obj.SubCategory.ClassifiedAdsCount--;
             CurrentDbContext.SaveChanges();
             // Remove old Lucene
             LuceneSearch.ClearLuceneIndexRecord(obj.Id, obj.Photos);
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
Exemple #2
0
        public void AdminAddPremiumRole(string userEmail)
        {
            // 1. Get user and add to 'Premium' role
            var user = UserManager.AccountManager.FindByEmail(userEmail);

            UserManager.AccountManager.AddToRole(user.Id, "Premium");

            var dat = CurrentDbContext.PremUserDataDB.SingleOrDefault(x => x.UserProfileId == user.Id);

            if (dat == null)
            {
                var init = new PremiumUserData()
                {
                    UserProfileId     = user.Id,
                    PremiumUserInfos  = new List <PremiumUserInfo>(),
                    PremiumUserPhotos = new List <PremiumUserPhoto>(),
                    UserReviews       = new List <PremiumUserReview>()
                };
            }
            else
            {
                user.PremiumUserData = dat;
            }
            CurrentDbContext.SaveChanges();
        }
        /// <summary>
        /// Remove ad promotion
        /// </summary>
        public AdminPromote RemovePromoteAd(int adId)
        {
            var demote = CurrentDbContext.ClassifiedDB.Include("AdPromotion").SingleOrDefault(x => x.Id == adId);

            if (demote == null)
            {
                return(null);
            }
            // Urgent Ad
            demote.AdPromotion.UrgentAd.Duration  = 0;
            demote.AdPromotion.UrgentAd.EndDate   = null;
            demote.AdPromotion.UrgentAd.StartDate = null;
            demote.AdPromotion.UrgentAd.Status    = false;
            // Top Ad
            demote.AdPromotion.TopAd.Duration  = 0;
            demote.AdPromotion.TopAd.EndDate   = null;
            demote.AdPromotion.TopAd.StartDate = null;
            demote.AdPromotion.TopAd.Status    = false;
            // Featured Ad
            demote.AdPromotion.FeaturedAd.Duration  = 0;
            demote.AdPromotion.FeaturedAd.StartDate = null;
            demote.AdPromotion.FeaturedAd.EndDate   = null;
            demote.AdPromotion.FeaturedAd.Status    = false;
            CurrentDbContext.SaveChanges();
            LuceneSearch.AddUpdateLuceneIndex(demote);
            return(Mapper.Map <AdminPromote>(demote));
        }
Exemple #4
0
        public bool MyAdClose(int adId, string closingOptions, HttpServerUtilityBase server)
        {
            // get existing
            try
            {
                ClassifedAdAlias obj = null;
                switch (closingOptions)
                {
                case "Remove":
                    if (PromoManager.IsAdInCart(adId))
                    {
                        PromoManager.RemoveFromShoppingCart(adId);
                    }
                    obj = CurrentDbContext.ClassifiedDB
                          .Include("Poster")
                          .SingleOrDefault(x => x.Id == adId && x.Status != 1 && x.Status != 2 && x.Status != 3);
                    obj.Status       = 3;
                    obj.NeedApproval = true;
                    CurrentDbContext.SaveChanges();
                    break;

                case "Sold":
                    obj = CurrentDbContext.ClassifiedDB
                          .Include("Poster")
                          .SingleOrDefault(x => x.Id == adId && x.Status != 1 && x.Status != 2 && x.Status != 3);
                    if (obj == null && obj.Poster != CurrentUser)
                    {
                        return(false);
                    }
                    obj.Status       = 1;
                    obj.NeedApproval = true;
                    CurrentDbContext.SaveChanges();
                    goto default;

                case "Rented":
                    obj = CurrentDbContext.ClassifiedDB
                          .Include("Poster")
                          .SingleOrDefault(x => x.Id == adId && x.Status != 1 && x.Status != 2 && x.Status != 3);
                    if (obj == null && obj.Poster != CurrentUser)
                    {
                        return(false);
                    }
                    obj.Status       = 2;
                    obj.NeedApproval = true;
                    CurrentDbContext.SaveChanges();
                    goto default;

                default:
                    //LuceneSearch.AddUpdateLuceneIndex(obj);
                    break;
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemple #5
0
        public Category AddCategory(Category newItem)
        {
            var addeditem = CurrentDbContext.CategoryDB.Add(newItem);

            addeditem.SubCategories = null;
            addeditem.SeoName       = SeoManager.GetSeoCategory(addeditem.Name);
            CurrentDbContext.SaveChanges();
            return(addeditem);
        }
Exemple #6
0
        public Category EditCategory(Category item)
        {
            Category var = CurrentDbContext.CategoryDB.SingleOrDefault(c => c.Id == item.Id);

            var.Name    = item.Name;
            var.SeoName = SeoManager.GetSeoCategory(var.Name);
            CurrentDbContext.SaveChanges();
            return(var);
        }
Exemple #7
0
        public SubCategory EditSubCat(SubCategoryEdit item)
        {
            SubCategory var = CurrentDbContext.SubCategoryDB.Include("Category").SingleOrDefault(s => s.StringId == item.StringId);

            var.Name    = item.Name;
            var.SeoName = SeoManager.GetSeoCategory(var.Category.Name, var.Name);
            CurrentDbContext.SaveChanges();

            return(var);
        }
Exemple #8
0
 public CountryBase AddCountry(CountryAdd newItem)
 {
     if (!CurrentDbContext.CountryDB.Any(a => a.Name.Contains(newItem.Name)))
     {
         var addedItem = CurrentDbContext.CountryDB.Add(Mapper.Map <Country>(newItem));
         addedItem.SeoName = SeoManager.GetSeoLocation(addedItem.Name);
         CurrentDbContext.SaveChanges();
         return((addedItem == null) ? null : Mapper.Map <CountryBase>(addedItem));
     }
     return(null);
 }
Exemple #9
0
        public void AdminRemovePremiumRole(string userEmail)
        {
            // 1. Get user and remove from 'Premium' role
            var user = UserManager.AccountManager.FindByEmail(userEmail);

            UserManager.AccountManager.RemoveFromRole(user.Id, "Premium");

            var dat = CurrentDbContext.PremUserDataDB.SingleOrDefault(x => x.UserProfileId == user.Id);

            user.PremiumUserData = null;
            CurrentDbContext.SaveChanges();
        }
Exemple #10
0
        public void AdminRoleChange(string userEmail, string oldRole, string newRole)
        {
            if (oldRole == newRole)
            {
                return;
            }
            if (oldRole.Contains("User") && newRole.Contains("Premium"))
            {
                AdminAddPremiumRole(userEmail);
            }
            else if (oldRole.Contains("Premium") && newRole.Contains("User"))
            {
                AdminRemovePremiumRole(userEmail);
            }
            else
            {
                // 1. Get user
                var user = UserManager.FindByEmailWithAds(userEmail);
                if (user == null)
                {
                    return;
                }
                UserManager.AccountManager.RemoveFromRole(user.Id, oldRole);
                UserManager.AccountManager.AddToRole(user.Id, (newRole == "Unbanned") ? "User" : newRole);

                if (newRole == "Banned" || newRole == "Unbanned")
                {
                    foreach (var ad in user.ClassifiedAds)
                    {
                        foreach (var rep in ad.Reports)
                        {
                            rep.Status = (newRole == "Banned" ? 1 : (newRole == "Unbanned" ? 0 : 0));
                        }
                        if (newRole == "Banned" && ad.Status == 1)
                        {
                            ad.Category.TotalClassifiedAdsCount--;
                            ad.SubCategory.ClassifiedAdsCount--;
                            // Remove from Lucene
                            LuceneSearch.ClearLuceneIndexRecord(ad.Id, ad.Photos);
                        }
                        else if (newRole == "Unbanned")
                        {
                            ad.Category.TotalClassifiedAdsCount++;
                            ad.SubCategory.ClassifiedAdsCount++;
                            // Add to Lucene
                            LuceneSearch.AddUpdateLuceneIndex(ad);
                        }
                        ad.Status = (newRole == "Banned" ? 1 : (newRole == "Unbanned" ? 0 : 0));
                    }
                }
                CurrentDbContext.SaveChanges();
            }
        }
        /// <summary>
        ///     Creates new user and Person Record and returns auto-generated UserId
        /// </summary>
        /// <param name="newUser">The new user.</param>
        /// <returns></returns>
        /// <exception cref="System.NotImplementedException"></exception>
        public int CreateNewUser(User newUser)
        {
            var result = -1;

            var added = CurrentDbSet.Add(newUser);

            if (!added.IsNull())
            {
                result = CurrentDbContext.SaveChanges();
            }

            return(result);
        }
Exemple #12
0
        public bool RenewMyAd(int adId)
        {
            var now = DateTime.Now;
            var ad  = CurrentDbContext.ClassifiedDB.Include("Poster").SingleOrDefault(x => x.Id == adId && x.Poster.Id == UserId);

            if (ad == null || ad.ExpiryTimeStamp.Value.Subtract(now).Days > 14)
            {
                return(false);
            }
            ad.ExpiryTimeStamp = ExpiryDate.CalculateDate(DateTime.Now, ad.AdType, ad.Category.Name, ad.SubCategory.Name);
            CurrentDbContext.SaveChanges();
            HangfireManager.ScheduleDateCheck(ad.Id, DateTime.Now, ad.ExpiryTimeStamp.Value);
            return(true);
        }
Exemple #13
0
 // Close a classified ad report
 public bool AdminCloseReport(int repId)
 {
     // get existing
     try
     {
         var obj = CurrentDbContext.ReportDB.SingleOrDefault(x => x.Id == repId);
         obj.Status = 1;
         CurrentDbContext.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public ContactInfo EditContactInfo(ContactInfo model)
        {
            {
                AccountManager.CurrentUser.ContactName = model.ContactName != null?TextEditor.CleanAdContactName(model.ContactName) : null;

                AccountManager.CurrentUser.PhoneNumber  = (!string.IsNullOrEmpty(model.ContactNumber) ? (model.ContactNumber.Contains("-") ? model.ContactNumber : model.ContactNumber.Insert(3, "-").ToString()) : model.ContactNumber);
                AccountManager.CurrentUser.PhoneNumber2 = (!string.IsNullOrEmpty(model.ContactNumber2) ? (model.ContactNumber2.Contains("-") ? model.ContactNumber2 : model.ContactNumber2.Insert(3, "-").ToString()) : model.ContactNumber2);
                AccountManager.CurrentUser.PhoneNumber3 = (!string.IsNullOrEmpty(model.ContactNumber3) ? (model.ContactNumber3.Contains("-") ? model.ContactNumber3 : model.ContactNumber3.Insert(3, "-").ToString()) : model.ContactNumber3);
                CurrentDbContext.SaveChanges();
            }
            return(new ContactInfo()
            {
                ContactName = AccountManager.CurrentUser.ContactName, ContactNumber = AccountManager.CurrentUser.PhoneNumber
            });
        }
Exemple #15
0
 /// <summary>
 /// 自带事务,调用此方法保存
 /// </summary>
 public int SaveChanges()
 {
     try
     {
         return(CurrentDbContext.SaveChanges());
     }
     catch (DbException ex)
     {
         throw new CustomSystemException($"数据库保存失败!{ex.Message}", ResponseCode.DbEx);
     }
     catch (Exception ex)
     {
         throw new CustomSystemException($"数据库保存失败!{ex.Message}", ResponseCode.DbEx);
     }
 }
 private bool SetFeaturedPromotionAd(Trinbago_MVC5.Models.ClassifiedAd ad)
 {
     if (ad.AdPromotion.FeaturedAd != null && !ad.AdPromotion.FeaturedAd.Status && ad.AdPromotion.FeaturedAd.Duration > 0)
     {
         ad.AdPromotion.FeaturedAd.Status = true;
         ad.TimeStamp = DateTime.Now;
         ad.AdPromotion.FeaturedAd.StartDate = DateTime.Now;
         ad.AdPromotion.FeaturedAd.EndDate   = ad.AdPromotion.FeaturedAd.StartDate.Value.AddDays(PromotionStaticInfo.PromotionDuration.DurationRange.SingleOrDefault(x => x.Weeks == ad.AdPromotion.FeaturedAd.Duration).Days);
         ad.ExpiryTimeStamp = ad.TimeStamp.AddMonths(3);
         CurrentDbContext.SaveChanges();
         HangfireManager.ScheduleFeaturedAdExpiry(ad.Id, ad.AdPromotion.FeaturedAd.StartDate.Value, ad.AdPromotion.FeaturedAd.EndDate.Value);
         return(true);
     }
     return(false);
 }
Exemple #17
0
        public void AdQueueApproveAd(int adId)
        {
            var ad = CurrentDbContext.ClassifiedDB
                     .Include("Poster")
                     .SingleOrDefault(x => x.Id == adId);

            if (ad != null)
            {
                ad.Status       = 0;
                ad.NeedApproval = false;
                CurrentDbContext.SaveChanges();
                // Add to Lucene
                LuceneSearch.AddUpdateLuceneIndex(ad);
            }
        }
Exemple #18
0
        public RegionBase EditRegion(RegionEdit editItem)
        {
            var o = CurrentDbContext.RegionDB.Include("Country").SingleOrDefault(r => r.Id == editItem.Id);

            if (o != null)
            {
                o.Name    = editItem.Name;
                o.Lat     = editItem.Lat;
                o.Lng     = editItem.Lng;
                o.Zoom    = editItem.Zoom;
                o.SeoName = SeoManager.GetSeoLocation(o.Country.Name, o.Name);
                CurrentDbContext.SaveChanges();
            }

            return((o == null) ? null : Mapper.Map <RegionBase>(editItem));
        }
Exemple #19
0
        // Close a user posted ad
        public bool AdminCloseAd(int Id, string closingOptions, HttpServerUtilityBase server)
        {
            // get existing
            try
            {
                ClassifiedAdAlias obj = new ClassifiedAdAlias();

                switch (closingOptions)
                {
                case "None":
                    ClassifiedManager.RemoveClassifiedAd(Id);
                    break;

                case "Sold":
                    obj = CurrentDbContext.ClassifiedDB.Include("Poster").Include("Category").Include("SubCategory").SingleOrDefault(x => x.Id == Id && x.Status != 1 && x.Status != 2);
                    if (obj == null)
                    {
                        return(false);
                    }
                    obj.Status          = 1;
                    obj.ExpiryTimeStamp = DateTime.Now.AddDays(30);
                    CurrentDbContext.SaveChanges();
                    goto default;

                case "Rented":
                    obj = CurrentDbContext.ClassifiedDB.Include("Poster").Include("Category").Include("SubCategory").SingleOrDefault(x => x.Id == Id && x.Status != 1 && x.Status != 2);
                    if (obj == null)
                    {
                        return(false);
                    }
                    obj.Status          = 2;
                    obj.ExpiryTimeStamp = DateTime.Now.AddDays(30);
                    CurrentDbContext.SaveChanges();
                    goto default;

                default:
                    LuceneSearch.ClearLuceneIndexRecord(obj.Id);
                    LuceneSearch.AddUpdateLuceneIndex(obj);
                    break;
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemple #20
0
        public bool AdminOpenAd(int Id)
        {
            // get existing
            try
            {
                var obj = CurrentDbContext.ClassifiedDB.Include("Photos")
                          .Include("Country")
                          .Include("Region")
                          .Include("Poster")
                          .Include("AdInfo")
                          .Include("Category")
                          .Include("SubCategory")
                          .SingleOrDefault(x => x.Id == Id);

                if (obj.Status == -1)
                {
                    var obj2 = CurrentDbContext.ReportDB.Include("ClassifiedAd").Where(x => x.ClassifiedAd.Id == Id);
                    if (obj2 != null)
                    {
                        foreach (var o in obj2)
                        {
                            o.OpenRequest = false;
                        }
                    }
                }

                if (obj.Status != 0)
                {
                    obj.Status = 0;
                    obj.Category.TotalClassifiedAdsCount++;
                    obj.SubCategory.ClassifiedAdsCount++;
                    CurrentDbContext.SaveChanges();
                    // Add to Lucene
                    LuceneSearch.AddUpdateLuceneIndex(obj);
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemple #21
0
        public bool AdminRemoveUser(string userId)
        {
            // Remove user ads
            if (AdminRemoveUserAds(userId))
            {
                // Remove user
                var userroles = UserManager.AccountManager.GetRoles(userId);
                foreach (var role in userroles.ToList())
                {
                    UserManager.AccountManager.RemoveFromRole(userId, role);
                }
                UserManager.AccountManager.Delete(UserManager.AccountManager.FindById(userId));

                CurrentDbContext.SaveChanges();
                return(true);
            }
            return(false);
        }
 public bool AddPromotionToCart(int adId, int?bumpAd, bool urgentAd, int?topAd, int?featuredAd)
 {
     if (!bumpAd.HasValue && !urgentAd && !topAd.HasValue && !featuredAd.HasValue)
     {
         return(false);
     }
     if (!IsAdInCart(adId))
     {
         using (var dbContextTransaction = CurrentDbContext.Database.BeginTransaction())
         {
             CartItem newCartItem = new CartItem();
             newCartItem.ClassifiedAd = CurrentDbContext.ClassifiedDB.SingleOrDefault(x => x.Id == adId);
             newCartItem.User         = CurrentUser;
             CurrentDbContext.PromotionCartDB.Add(newCartItem);
             CurrentDbContext.SaveChanges();
         }
     }
     return(true);
 }
Exemple #23
0
        public SubCategory AddSubCategory(SubCategoryAdd newItem)
        {
            SubCategory addeditem = Mapper.Map <SubCategory>(newItem);

            addeditem.StringId = MySecurity.GetGen();
            var cat = CurrentDbContext.CategoryDB.Include("SubCategories").SingleOrDefault(x => x.Id == newItem.CategoryId);

            cat.SubCategories.Add(addeditem);
            addeditem.Category = cat;
            CurrentDbContext.SaveChanges();
            if (addeditem.Category.Name == "Business Services")
            {
                addeditem.AdInfoTemplate = CurrentDbContext.TemplateDB.FirstOrDefault(x => x.TemplateName == "BUSSERV");
            }
            addeditem.SeoName = SeoManager.GetSeoCategory(addeditem.Category.Name, addeditem.Name);
            CurrentDbContext.SaveChanges();

            return(addeditem);
        }
Exemple #24
0
 // Delete a user posted message
 public bool AdminMessageDelete(int msgId)
 {
     // get existing
     try
     {
         var obj = CurrentDbContext.GenMessageDB.SingleOrDefault(x => x.Id == msgId);
         if (obj == null)
         {
             return(false);
         }
         CurrentDbContext.GenMessageDB.Remove(obj);
         CurrentDbContext.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Exemple #25
0
 public bool AdminDeleteReportAd(int id)
 {
     try
     {
         var obj = CurrentDbContext.ReportDB.Include("ClassifiedAd.Reports").SingleOrDefault(r => r.Id == id && r.Status == 1);
         if (obj == null)
         {
             return(false);
         }
         obj.ClassifiedAd.Reports.Remove(obj);
         obj.ClassifiedAd = null;
         CurrentDbContext.ReportDB.Remove(obj);
         CurrentDbContext.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Exemple #26
0
        public void AdQueueUpdateAd(int adId)
        {
            var ad = CurrentDbContext.ClassifiedDB
                     .Include("Poster")
                     .SingleOrDefault(x => x.Id == adId);

            if (ad != null)
            {
                ad.NeedApproval = false;
                if (ad.Status == 1 || ad.Status == 2)
                {
                    var dtn = DateTime.Now;
                    ad.ExpiryTimeStamp = dtn.AddMonths(1);
                    HangfireManager.ScheduleRemoval(ad.Id, dtn, ad.ExpiryTimeStamp.Value);
                }
                CurrentDbContext.SaveChanges();
                LuceneSearch.ClearLuceneIndexRecord(ad.Id, ad.Photos);
                // Update Lucene
                LuceneSearch.AddUpdateLuceneIndex(ad);
            }
        }
Exemple #27
0
        public void AdminCountAds()
        {
            var i = CurrentDbContext.SubCategoryDB.Include("ClassifiedAds");

            foreach (var x in i)
            {
                x.ClassifiedAdsCount = x.ClassifiedAds.Where(u => u.Status == 0).Count();
            }
            CurrentDbContext.SaveChanges();
            var a = CurrentDbContext.CategoryDB.Include("SubCategories");

            foreach (var x in a)
            {
                x.TotalClassifiedAdsCount = 0;
                foreach (var z in x.SubCategories)
                {
                    x.TotalClassifiedAdsCount += z.ClassifiedAdsCount;
                }
            }
            CurrentDbContext.SaveChanges();
        }
 public bool RemoveFromShoppingCart(int adId)
 {
     {
         using (var dbTansactions = CurrentDbContext.Database.BeginTransaction())
         {
             try
             {
                 var cartitem = CurrentDbContext.Users
                                .Include("PromotionCart.ClassifiedAd").Select(u => new { Id = u.Id, PromotionCart = u.PromotionCart })
                                .FirstOrDefault(x => x.Id == UserId).PromotionCart.FirstOrDefault(p => p.ClassifiedAd.Id == adId);
                 var pI = CurrentDbContext.PromotionInfoDB.Include("CartItem").Where(x => x.CartItem.Id == cartitem.Id);
                 CurrentDbContext.PromotionInfoDB.RemoveRange(pI);
                 CurrentDbContext.SaveChanges();
                 CurrentDbContext.PromotionCartDB.Remove(cartitem);
                 CurrentDbContext.SaveChanges();
                 dbTansactions.Commit();
                 return(true);
             }
             catch (Exception)
             { return(false); }
         }
     }
 }
Exemple #29
0
 /// <summary>
 /// Delete all closed ad reports
 /// </summary>
 /// <returns></returns>
 public bool AdminDeleteAllClosedReportAds()
 {
     try
     {
         var objs = CurrentDbContext.ReportDB.Include("ClassifiedAd.Reports").Where(r => r.Status == 1);
         if (objs == null)
         {
             return(false);
         }
         foreach (var obj in objs)
         {
             obj.ClassifiedAd.Reports.Remove(obj);
             obj.ClassifiedAd = null;
             CurrentDbContext.ReportDB.Remove(obj);
         }
         CurrentDbContext.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Exemple #30
0
        public RegionBase AddRegion(RegionAdd newItem)
        {
            // get associated object
            var o = CurrentDbContext.CountryDB.Include("Regions").SingleOrDefault(a => a.Id == newItem.CountryId);

            if (o == null)
            {
                return(Mapper.Map <RegionBase>(newItem));
            }

            // check for duplicate region
            var dup = o.Regions.SingleOrDefault(a => a.Name == newItem.Name);

            if (!o.Regions.Any(a => a.Name == newItem.Name))
            {
                var addedItem = CurrentDbContext.RegionDB.Add(Mapper.Map <Region>(newItem));
                addedItem.Country = o;
                addedItem.SeoName = SeoManager.GetSeoLocation(addedItem.Country.Name, addedItem.Name);
                o.RegionCount++;
                CurrentDbContext.SaveChanges();
                return((addedItem == null) ? null : Mapper.Map <RegionBase>(addedItem));
            }
            return(Mapper.Map <RegionBase>(newItem));
        }