// 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); } }
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)); }
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); } }
public Category AddCategory(Category newItem) { var addeditem = CurrentDbContext.CategoryDB.Add(newItem); addeditem.SubCategories = null; addeditem.SeoName = SeoManager.GetSeoCategory(addeditem.Name); CurrentDbContext.SaveChanges(); return(addeditem); }
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); }
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); }
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); }
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(); }
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); }
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); }
// 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 }); }
/// <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); }
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); } }
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)); }
// 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); } }
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); } }
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); }
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); }
// 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); } }
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); } }
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); } }
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); } } } }
/// <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); } }
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)); }