/// <summary> /// Method to get all seeds by Id. /// </summary> /// <param name="SeedId"></param> /// <returns></returns> public IList<SeedDetail> GetSeedsById(string SeedId, string MemberId) { IList<SeedDetail> lstSeedDetail = new List<SeedDetail>(); SeedDetail objSeedDetail = new SeedDetail(); SeedAction objSeed = new SeedAction(); //For finding total reply seeds of the current seed //int getCounter = 200; // IList<Seed> seedDataCounter = (objSeed.GetSeedsByParrentSeedID(SeedId)).Take(getCounter).OrderBy(x => x.createDate).ToList(); // Seed seedData = objSeed.GetSeedBySeedId(SeedId); int likesCount = seedData.Ratings.Where(x => x.likes.Equals("Like")).ToList().Count; int replyCount = Convert.ToInt16(objSeed.GetReplySeedCount(SeedId));// seedData.Commitments.ToList().Count; int commentsCount = seedData.Comments.ToList().Count; objSeedDetail.Title = seedData.title; if (seedData.Member.organisationName != null) { objSeedDetail.MemberName = seedData.Member.organisationName; } else { objSeedDetail.MemberName = seedData.Member.firstName + " " + seedData.Member.lastName; } objSeedDetail.City = seedData.Location.City.name; objSeedDetail.Address = seedData.Location.crossStreet; objSeedDetail.State = seedData.Location.City.Region.name; objSeedDetail.CreateDate = Convert.ToDateTime(seedData.createDate).ToString("MMMM dd, yyyy"); objSeedDetail.Description = seedData.description; objSeedDetail.Likes = likesCount + " Likes"; objSeedDetail.ReplySeeds = replyCount + " Reply Seeds"; objSeedDetail.Comments= commentsCount + " Comments"; objSeedDetail.RootSeedID =seedData.id.ToString(); objSeedDetail.ParentSeedID = seedData.parentSeedID != null ? seedData.parentSeedID.ToString() : seedData.id.ToString(); string tmpCategory = ""; foreach (Category c in seedData.Categories) { if (tmpCategory.Length > 0) tmpCategory = tmpCategory + ", " + c.name; else tmpCategory = c.name; } objSeedDetail.Categories = tmpCategory; if (seedData.Tags != null && seedData.Tags.Count > 0) { objSeedDetail.Keywords = seedData.Tags.FirstOrDefault().name.ToString(); } else { objSeedDetail.Keywords = ""; } objSeedDetail.MemberID = seedData.Member.id.ToString(); objSeedDetail.Zip = seedData.Location.zipcode; int counter = objSeed.getSeedRatingCountByMemberId(SeedId, MemberId, "Like"); if (counter > 0) { objSeedDetail.Rating= "Disable"; } else { objSeedDetail.Rating = "Enable"; } objSeedDetail.Latitude = seedData.Location.localLat.ToString(); objSeedDetail.Longitude = seedData.Location.localLong.ToString(); string imgPath = "No Image"; if (seedData.Media != null && seedData.Media.Where(x => x.type.Equals("Image")).Count() > 0) { imgPath = seedData.Media.Where(x => x.type.Equals("Image")).OrderByDescending(x => x.dateUploaded).FirstOrDefault().path; imgPath = imgPath.Substring(imgPath.LastIndexOf('/')); if (imgPath.Length > 1) { imgPath = System.Configuration.ConfigurationManager.AppSettings["RootURL"].ToString() + "/UploadedMedia" + imgPath; } else { imgPath = "No Image"; } } objSeedDetail.Path = imgPath; lstSeedDetail.Add(objSeedDetail); return lstSeedDetail; }
/// <summary> /// Search Seeds /// </summary> /// <param name="Criteria"></param> /// <param name="sortBy"></param> /// <param name="radius"></param> /// <param name="counter"></param> /// <returns></returns> public IList<SeedDetail> SearchSeeds(string Criteria, string sortBy, string radius, string counter) { SeedAction objSeed = new SeedAction(); IList<Seed> seedData = new List<Seed>(); IList<Seed> tmpSeedList = null; CategoryAction objCategory = new CategoryAction(); string searchOthers = ""; string searchZip = ""; int seedCounter = Convert.ToInt32(counter) + 1; string[] criteriaArr = Criteria.Trim().Split(' '); foreach (string str in criteriaArr) { //Checking that searchstring contains zipcode if (this.checkCriteria(str)) { searchZip = str; } else { searchOthers = searchOthers + " " + str; } } searchOthers = searchOthers.Trim(); if (searchZip.Length > 0) { // radius = "50"; tmpSeedList = objSeed.GetAllSeedsByZip(radius, searchZip); foreach (Seed sData in tmpSeedList) { if (sData.status.Equals(SystemStatements.STATUS_NEW) || sData.status.Equals(SystemStatements.STATUS_GROWING)) { seedData.Add(sData); } //seedData.Add(sData); } } if (searchOthers.Length > 0 && seedData.Distinct().ToList().Count < seedCounter) { //Searching in Category IList<Category> catList = objCategory.GetAllCategoriesByName(searchOthers); foreach (Category cat in catList) { tmpSeedList = objSeed.GetAllSeedsByCategory(cat.id.ToString()); foreach (Seed sData in tmpSeedList) { seedData.Add(sData); } } if (seedData.Distinct().ToList().Count < seedCounter) { tmpSeedList = objSeed.GetAllSeedsByTitle(searchOthers); foreach (Seed sData in tmpSeedList) { seedData.Add(sData); } } if (seedData.Distinct().ToList().Count < seedCounter) { //Searching in Description tmpSeedList = objSeed.GetAllSeedsByDescription(searchOthers); foreach (Seed sData in tmpSeedList) { seedData.Add(sData); } } if (seedData.Distinct().ToList().Count < seedCounter) { //Searching in FirstName tmpSeedList = objSeed.GetAllSeedsByUserName(searchOthers); foreach (Seed sData in tmpSeedList) { seedData.Add(sData); } } if (seedData.Distinct().ToList().Count < seedCounter) { //Searching in CrossStreet tmpSeedList = objSeed.GetSeedByCrossStreet(searchOthers); foreach (Seed sData in tmpSeedList) { seedData.Add(sData); } } if (seedData.Distinct().ToList().Count < seedCounter) { //Searching in City tmpSeedList = objSeed.GetSeedByCity(searchOthers); foreach (Seed sData in tmpSeedList) { seedData.Add(sData); } } } // string tmp = ""; seedData = seedData.Distinct().Take(seedCounter).ToList(); if (!string.IsNullOrEmpty(sortBy)) { switch (sortBy) { case "1": seedData = seedData.OrderBy(x => x.Categories.FirstOrDefault() != null ? x.Categories.FirstOrDefault().name : "").ToList(); break; case "2": seedData = seedData.OrderBy(x => x.Location.zipcode).ToList(); break; case "3": seedData = seedData.OrderBy(x => x.title).ToList(); break; default: seedData = seedData.OrderBy(x => x.title).ToList(); break; } } string tmpCName = ""; IList<SeedDetail> lstSeedList = new List<SeedDetail>(); foreach (Seed s in seedData) { SeedDetail objSeedDetail = new SeedDetail(); string imgPath = "No Image"; int likesCount = s.Ratings.Where(x => x.likes.Equals("Like")).ToList().Count; int replyCount =Convert.ToInt16(objSeed.GetReplySeedCount(s.id.ToString()));// s.Commitments.ToList().Count; int commentsCount = s.Comments.ToList().Count; if (s.Media != null && s.Media.Count > 0) { imgPath = s.Media.FirstOrDefault().path; imgPath = imgPath.Substring(imgPath.LastIndexOf('/')); if (imgPath.Length > 1) imgPath = System.Configuration.ConfigurationManager.AppSettings["RootURL"].ToString() + "/UploadedMedia" + imgPath; else imgPath = "No Image"; } objSeedDetail.SeedID = s.id.ToString(); objSeedDetail.Title = s.title; if (s.Location.City != null) { // tmp += "||" + s.Location.City.name; objSeedDetail.City = s.Location.City.name; } if (s.Location.City.Region != null) { objSeedDetail.State = s.Location.City.Region.code; //tmp += "||" + s.Location.City.Region.code; } if (s.Location != null) { objSeedDetail.Zip = s.Location.zipcode; // tmp += "||" + s.Location.zipcode; } objSeedDetail.Path = imgPath; // tmp += "||" + imgPath; if (s.Categories != null && s.Categories.Count > 0) { tmpCName = s.Categories.FirstOrDefault().name; } if (s.Location != null) { objSeedDetail.Latitude = s.Location.localLat.ToString(); objSeedDetail.Longitude = s.Location.localLong.ToString(); } objSeedDetail.TempCategory = tmpCName; // tmp += "||" + tmpCName; objSeedDetail.MemberName = s.Member.firstName + " " + s.Member.lastName; objSeedDetail.Address = s.Location.crossStreet; objSeedDetail.CreateDate = Convert.ToDateTime(s.createDate).ToString(); objSeedDetail.Description = s.description; objSeedDetail.Likes = likesCount + " Likes"; objSeedDetail.Comments = commentsCount + " Comments"; objSeedDetail.ReplySeeds = replyCount + " Reply Seeds"; objSeedDetail.PopularCount = (likesCount + commentsCount + replyCount).ToString(); //tmp += "||" + s.Member.firstName + " " + s.Member.lastName + "||" + s.Location.crossStreet + "||" + Convert.ToDateTime(s.createDate).ToString("dd MMMM yyyy") + "||" + s.description + "||" + likesCount + " Likes" + "||" + commitmentCount + " Commitments" + "||" + commentsCount + " Comments"; string tmpCategory = ""; foreach (Category c in s.Categories) { if (tmpCategory.Length > 0) tmpCategory = tmpCategory + "," + c.name; else tmpCategory = c.name; } objSeedDetail.Categories = tmpCategory; // tmp = tmp + "||" + tmpCategory; lstSeedList.Add(objSeedDetail); }//For each seed return lstSeedList; }