public virtual ActionResult AddKeyword(string keywordPhrase) { var keyword = new SEOKeyword { Phrase = keywordPhrase, Source = SEOKeywordSource.Manual }; Repository.SEOKeyword.Add(keyword); return ProcessKeyword(new KeywordProcessForm {SeoKeywordPhrase = keywordPhrase, SeoKeywordId = keyword.Id}); }
protected override void OnActionExecuting(ActionExecutingContext filterContext) { Log = WebLogFactory.CreateNew(); //Log.Debug(GetType(), "OnActionExecuting"); if (!Request.Url.AbsoluteUri.StartsWith(ConfigurationManager.AppSettings["BaseUrl"])) { filterContext.Result = new RedirectResult(ConfigurationManager.AppSettings["BaseUrl"] + Request.Url.PathAndQuery, true); return; } base.OnActionExecuting(filterContext); ActiveUsersHelper.SetCurrentUserActive(); var isPreLaunchMode = bool.Parse(ConfigurationManager.AppSettings["PreLaunchMode"]); var referrer = filterContext.RequestContext.HttpContext.Request.UrlReferrer; if (!isPreLaunchMode && referrer != null && referrer.Host.ToLower().Contains("google")) { var parameters = HttpUtility.ParseQueryString(referrer.Query); if (parameters.AllKeys.Contains("q")) { var keywordPhrase = parameters["q"]; var currentKeyword = Repository.SEOKeyword.Find(query: sk => sk.ByPhrase(keywordPhrase)).SingleOrDefault(); if(currentKeyword != null) { currentKeyword.HitCount++; Repository.SEOKeyword.Update(currentKeyword); Log.Info(GetType(), "Keyword '{0}' hit no {1} from url '{2}'", currentKeyword.Phrase, currentKeyword.HitCount, HttpContextHelper.RequestUrl); } else { var keyword = new SEOKeyword { Phrase = keywordPhrase }; Repository.SEOKeyword.Add(keyword); RequestSeoKeyword = keyword; Log.Info(GetType(), "New Keyword {0}", keyword.Phrase); } } } }
private void GenerateBDDTestingData() { //generating users var userSalt = CryptoHelper.CreateSalt(); var user = new User { Email = "*****@*****.**", IsActivated = true, Password = "******", PasswordSalt = userSalt, BankAccountNumber = "654510157739999994584019961664" }; Repository.User.Add(user); Repository.User.AddEmailConfigurationDefaultValue(user); var moderator = new Moderator { PublicName = "Szalony Moderator", User = new User { Email = "*****@*****.**", IsActivated = true, Password = "******", PasswordSalt = userSalt, BankAccountNumber = "116910157739999994584019961664" } }; Repository.User.Add(moderator.User); Repository.Moderator.Add(moderator); Repository.User.AddEmailConfigurationDefaultValue(moderator.User); var expert1 = new Expert { FirstName = "test-name", LastName = "test-surname", PublicName = "test-expert", PhoneNumber = "671707525", VerificationStatus = ExpertVerificationStatus.Verified, User = new User { Email = "*****@*****.**", IsActivated = true, Password = "******", PasswordSalt = userSalt, BankAccountNumber = "204510157739991764584019961664" } }; foreach (var category in Repository.Category.All()) { expert1.Categories.Add(category); expert1.CategoryAttributes.Add(new ExpertCategoryAttributeValues { Category = category, ExpertReason = category.Name + " dfuq am i doing here"} ); } expert1.Microprofiles.Add(new ExpertMicroprofile { Description = "test-desc", Position = "test-position" }); Repository.User.Add(expert1.User); Repository.Expert.Add(expert1); Repository.User.AddEmailConfigurationDefaultValue(expert1.User); Repository.Expert.AssignProvisionToExpert(expert1, ProvisionExpert.Novice); Repository.Partner.Create(expert1.User); var expert2 = new Expert { FirstName = "test-name2", LastName = "test-surname2", PublicName = "test-expert2", PhoneNumber = "271707325", VerificationStatus = ExpertVerificationStatus.Verified, User = new User { Email = "*****@*****.**", IsActivated = true, Password = "******", PasswordSalt = userSalt, BankAccountNumber = "404510157739991344584019961664" } }; foreach (var category in Repository.Category.All()) { expert2.Categories.Add(category); expert2.CategoryAttributes.Add(new ExpertCategoryAttributeValues { Category = category, ExpertReason = category.Name + " dfuq am i doing here 2" } ); } expert2.Microprofiles.Add(new ExpertMicroprofile { Description = "test-desc2", Position = "test-position2" }); Repository.User.Add(expert2.User); Repository.Expert.Add(expert2); Repository.User.AddEmailConfigurationDefaultValue(expert2.User); Repository.Expert.AssignProvisionToExpert(expert2, ProvisionExpert.Novice); Repository.Partner.Create(expert2.User); //generating threads //zadane, opłacone pytanie ([email protected]) bez eksperta var thread1 = new Thread { Priority = ThreadPriority.Medium, Verbosity = ThreadVerbosity.Low, State = ThreadState.Unoccupied, SanitizationStatus = ThreadSanitizationStatus.NotSanitized, Value = 5.00m, IsPaid = true, Author = user, Posts = new List<Post>{new Post { Content = "Pytanie testowe bez eksperta", CreationDate = DateTime.Now.AddDays(-2), LastModificationDate = DateTime.Now.AddDays(-2), Type = PostType.Question, Author = user } }, Category = Repository.Category.Find(c => c.Name == "Nauka") }; thread1.PriceProposals.Add(new PriceProposal { Comment = "Proponuje wyższą cenę", CreationDate = DateTime.Now.AddDays(-1), LastModificationDate = DateTime.Now.AddDays(-1), Expert = expert2, SurchargeValue = 10, VerificationStatus = PriceProposalVerificationStatus.Verified }); Repository.Thread.Add(thread1); thread1.CreationDate = DateTime.Now.AddDays(-2); Repository.Thread.Update(thread1); //zadane, opłacone pytanie z autorem ([email protected]) z ekspertem ([email protected]) var thread2 = new Thread { Priority = ThreadPriority.Medium, Verbosity = ThreadVerbosity.Low, State = ThreadState.Occupied, SanitizationStatus = ThreadSanitizationStatus.NotSanitized, Value = 5.00m, IsPaid = true, Author = user, Expert = expert1, Posts = new List<Post> { new Post { Content = "Pytanie testowe z ekspertem", Type = PostType.Question, Author = user }, new Post { Content = "Odpowiedź testowa", Type = PostType.Answer, Author = expert1.User } }, Category = Repository.Category.Find(c => c.Name == "Nauka") }; Repository.Thread.Add(thread2); // zadane, nieopłacone pytanie var thread3 = new Thread { Priority = ThreadPriority.Medium, Verbosity = ThreadVerbosity.High, State = ThreadState.Unoccupied, SanitizationStatus = ThreadSanitizationStatus.NotSanitized, Value = 20.00m, IsPaid = false, Author = user, Posts = new List<Post> { new Post { Content = "Nieopłacone pytanie testowe", Type = PostType.Question, Author = user } }, Category = Repository.Category.Find(c => c.Name == "Nauka") }; Repository.Thread.Add(thread3); var thread4 = new Thread { Priority = ThreadPriority.Low, Verbosity = ThreadVerbosity.Medium, State = ThreadState.Closed, SanitizationStatus = ThreadSanitizationStatus.NotSanitized, Value = 10.00m, IsPaid = true, Author = user, Posts = new List<Post> { new Post { Content = "Zamknięte pytanie testowe", Type = PostType.Question, Author = user }, new Post { Content = "Odpowiedź testowa", Type = PostType.Answer, Author = expert1.User } }, Category = Repository.Category.Find(c => c.Name == "Nauka") }; Repository.Thread.Add(thread4); //zamkniete i oczyszczone pytanie var thread5 = new Thread { Priority = ThreadPriority.Low, Verbosity = ThreadVerbosity.Medium, State = ThreadState.Closed, SanitizationStatus = ThreadSanitizationStatus.Sanitized, Value = 10.00m, IsPaid = true, Author = user, Expert = expert1, Posts = new List<Post> { new Post { Content = "Zamknięte pytanie testowe sanitized", Type = PostType.Question, Author = user }, new Post { Content = "Odpowiedź testowa sanitized", Type = PostType.Answer, Author = expert1.User } }, Category = Repository.Category.Find(c => c.Name == "Nauka") }; Repository.Thread.Add(thread5); /* generating SEO keywords */ var seoKeyword1 = new SEOKeyword { Category = Repository.Category.Find(c => c.Name == "Nauka"), Phrase = "ekspert", Type = SEOKeywordType.Expert, Status = SEOKeywordStatus.Processed, Source = SEOKeywordSource.Automatic }; Repository.SEOKeyword.Add(seoKeyword1); var seoKeyword2 = new SEOKeyword { Category = Repository.Category.Find(c => c.Name == "Nauka"), Phrase = "fraza", Type = SEOKeywordType.Phrase, Status = SEOKeywordStatus.Processed, Source = SEOKeywordSource.Automatic }; Repository.SEOKeyword.Add(seoKeyword2); var seoKeyword3 = new SEOKeyword { Category = Repository.Category.Find(c => c.Name == "Nauka"), Phrase = "pytanie", Type = SEOKeywordType.Question, Status = SEOKeywordStatus.Processed, Source = SEOKeywordSource.Automatic }; Repository.SEOKeyword.Add(seoKeyword3); }
private void PresetSeoKeyword(SEOKeyword currentKeyword) { if (RequestSeoKeyword != null) { RequestSeoKeyword.CategoryAttributes.AddRange(currentKeyword.CategoryAttributes); RequestSeoKeyword.Category = currentKeyword.Category; RequestSeoKeyword.Type = currentKeyword.Type; Repository.SEOKeyword.Update(RequestSeoKeyword); } }
public KeywordProcessFormModel(SEOKeyword keyword) { SeoKeyword = keyword; KeywordProcessForm = new KeywordProcessForm { SeoKeywordId = keyword.Id, SeoKeywordPhrase = keyword.Phrase }; }