getAllReviewsbyFreeSearch() public method

public getAllReviewsbyFreeSearch ( string Genus, string Species ) : IList
Genus string
Species string
return IList
Example #1
0
        //GET: /AddReview/ListAll
        public ActionResult ListAll(int? page, int? searched)
        {
            if (page.HasValue) {
                //return RedirectToAction("ListAll", new { collection = (FormCollection)Session["search_form"], page = page, searched = 1 });

                ITaxonRepository RPtaxons = new TaxonRepository();
                IReviewRepository RPreviews = new ReviewRepository();

                string freesearch, searchcountry, searchall = "";

                FormCollection collection = (FormCollection)Session["search_form"];

                try {
                    //freesearch = collection["search1"];
                    freesearch = collection["search_free"];
                    searchcountry = collection["search2"];
                    searchall = collection["search3"];

                    IList<ReviewDesc> reviews = null;
                    IList<ReviewDesc> reviews2 = null;

                    //return reviews;

                    string nodata = "No search results found";
                    if (freesearch != null) {
                        var search = collection["searchspecies"];
                        if (search.IndexOf('-') == -1)
                            return RedirectToAction("Search", "SearchReview");
                        string searchstring = collection["searchspecies"];
                        searchstring = searchstring.Trim();
                        string[] splitstring = searchstring.Split('-');

                        //Have changed coding now - the genus species is returned, so need to split further to keep same method
                        string[] taxonString = splitstring[0].Split(' ');

                        reviews = RPreviews.getAllReviewsbyFreeSearch(taxonString[0].Trim(), taxonString[1].Trim());
                    }
                    else if (searchcountry != null) {
                        string countryID = collection["searchcountry"];
                        if (countryID.ToUpper().Contains(UpdateUtils.SELECT_ALL)) {
                            reviews = this.GetAllReviews(null);

                        }
                        else {
                            int country = int.Parse(countryID);
                            reviews = RPreviews.getAllReviewsbyCountry(country);
                        }

                    }
                    else if (searchall != null) {
                        int phase = int.Parse(collection["phase"]);
                        string kingdom = collection["kingdom"];
                        //-2 is for select all
                        int genus = -2;
                        int species = -2;
                        int country = -2;

                        if (collection["agenus"] != null)
                            genus = int.Parse(collection["agenus"]);
                        if (collection["aspecies"] != null)
                            species = int.Parse(collection["aspecies"]);
                        if (collection["acountries"] != null) {
                            country = int.Parse(collection["acountries"]);
                        }

                        if (kingdom.Equals(UpdateUtils.ALL_KINGDOM.ToString())) {
                            IList<ReviewDesc> reviewstemp = RPreviews.getAllReviewsbySearchAll(phase, UpdateUtils.ANIMALS, genus, species, country);
                            reviews2 = RPreviews.getAllReviewsbySearchAll(phase, UpdateUtils.PLANTS, genus, species, country);

                            if (reviewstemp != null && reviews2 != null)
                                reviews = reviewstemp.Concat(reviews2).ToList();

                            if (reviewstemp == null && reviews2 != null)
                                reviews = reviews2;

                            if (reviewstemp != null && reviews2 == null)
                                reviews = reviewstemp;
                            else {
                                reviews = null;
                            }

                        }

                        else {
                            reviews = RPreviews.getAllReviewsbySearchAll(phase, kingdom, genus, species, country);
                        }

                    }

                    int count = 0;
                    if (reviews != null)
                        count = reviews.Count;

                    if (count > 0) {
                        for (int i = 0; i < count; i++) {

                            //        reviews[i].TaxonName = RPtaxons.getReviewTaxonName(reviews[i].TaxonID, reviews[i].Taxontype,
                            //                                                        reviews[i].Kingdom);
                            reviews[i].Paragraph = RPtaxons.getParagraphStagePerReview(reviews[i].ID);
                            reviews[i].Concern = RPreviews.getConcernForReview(reviews[i].ID);
                            reviews[i].DeadlineDate = RPtaxons.getDeadlineDatePerReview(reviews[i].ID);
                        }

                    }

                    int ij = 10;
                    if (reviews == null) {

                        return RedirectToAction("Search", "SearchReview", new { NoSearchResults = true });
                    }
                    var sortedReviews = from r in reviews
                                        orderby r.DateAdded
                                        select r;
                    //PageIndex
                    int PageIndex = 0;
                    if (page.HasValue)
                        PageIndex = (int)page;

                    IPagedList<ReviewDesc> pagedReview = sortedReviews.ToPagedList(PageIndex, UpdateUtils.DEFAULT_PAGE_SIZE);

                    ViewData["AllReviews"] = pagedReview;//sortedReviews.ToPagedList(1,count);
                    ViewData["PageSize"] = UpdateUtils.DEFAULT_PAGE_SIZE;
                    ViewData["PageNumber"] = PageIndex;
                    ViewData["TotalItemCount"] = count;
                    return View();
                }
                catch {
                    return RedirectToAction("Search", "SearchReview");
                }

            }

            ViewData["AllReviews"] = this.GetAllReviews(page);

            return View();
        }