public ActionResult Default(string addr, string criteria, string[] sel0, string searchCriteriaTxt, string btnNext, string btnPrevious, string postLat, string postLng, string postZip)
        {
            GetTopPlanters();

            ViewData["LocLat"] = postLat;
            ViewData["LocLng"] = postLng;

            #region fb Coding
            string appid = ConfigurationManager.AppSettings["AppID"];
            ViewData["AppID"] = ConfigurationManager.AppSettings["AppID"];

            Repository repoObj = new Repository();
            Member memberData = (Member)SessionStore.GetSessionValue(SessionStore.Memberobject);
            if (memberData != null)
            {

            }
            else
            {
                FacebookConnect fbConnect = new FacebookConnect();
                if (fbConnect.IsConnected)
                {
                    // message = "You are connected to Facebook";

                    //Use the wrapper class to get the access token
                    string token = fbConnect.AccessToken;
                    //Alternatively you can just pull the accesstoken out directly with the following line
                    //string token = HttpContext.Request.Cookies["fbs_" + ConfigurationManager.AppSettings["AppID"]]["\"access_token"];

                    //Note - you need to decode the token or it will be encoded twice.
                    token = HttpUtility.UrlDecode(token);

                    FacebookAPI api = new FacebookAPI(token);
                    JSONObject me = api.Get("/" + fbConnect.UserID);
                    SessionStore.SetSessionValue(SessionStore.FacebookConnect, "FacebookUserLoggedIn");

                    return RedirectToAction("DiscoverSeed", "Seed");
                }
                else
                {

                }
            }
            #endregion

            #region Search Code
            //Category Selected Seeds
            Session["SelectedCategory"] = null;
            str = sel0;
            string myChoise = null;
            if (sel0 != null)
            {
                for (int i = 0; i < sel0.Length; i++)
                {
                    if (i == 0)
                    {
                        myChoise = sel0[0];
                    }
                    else
                    {
                        myChoise = myChoise + "," + sel0[i];
                    }
                }
            }
            Session["SelectedCategory"] = myChoise;

            ViewData["SelectedCategory"] = Session["SelectedCategory"];
            if (sel0 != null)
            {
                if (sel0.Count() == 1 && sel0[0].ToString().Equals("all"))
                    Session["SelectedCategory"] = null;
            }
            #endregion

            #region Home Page Paging
            if (btnNext == ".." || btnPrevious == ".")
            {
                int PageCount = Convert.ToInt32(Session["PageCount"]);
                int rowCount = Convert.ToInt32(Session["RowCount"]);
                int NoOfPage = rowCount / 10;
                if (rowCount % 10 != 0)
                {
                    NoOfPage += 1;
                }

                IList<Seed> lstseed = (IList<Seed>)SessionStore.GetSessionValue(SessionStore.DiscoverSeed);
                if (btnNext != null && btnNext == "..")
                {
                    int skipRecord = PageCount * 10;
                    IList<Seed> lst = lstseed.Skip(skipRecord).ToList();
                    ViewData["SeedList"] = lst.Take(10).ToList();
                    PageCount += 1;
                    Session["PageCount"] = PageCount;
                    if (PageCount == NoOfPage)
                    {
                        ViewData["NxtVisibility"] = "visibility:hidden;";
                        ViewData["PrevVisibility"] = "visibility:visible;";
                    }
                }
                else if (btnPrevious != null && btnPrevious == ".")
                {
                    int takeRecord = (PageCount - 1) * 10;
                    IList<Seed> lst = lstseed.Take(takeRecord).ToList();
                    ViewData["SeedList"] = lst.Reverse().Take(10).Reverse().ToList();
                    PageCount -= 1;
                    if (PageCount == 1)
                    {
                        ViewData["NxtVisibility"] = "visibility:visible;";
                        ViewData["PrevVisibility"] = "visibility:hidden;";
                    }
                    Session["PageCount"] = PageCount;
                }

                ViewData["MarkerList"] = MarkerGenerator((IList<Seed>)ViewData["SeedList"]);
                return View();
            }
            #endregion

            #region Search Logic
            if (addr != "" || criteria != "" || sel0 != null)
            {
                string categList = string.Empty;
                if (sel0 != null)
                {
                    if (sel0.Count() == 1 && sel0[0].ToString().Equals("all"))
                    {
                        categList = "all";
                    }
                    else if (sel0.Count() > 0 && !sel0[0].ToString().Equals("all"))
                    {
                        for (int c = 0; c < sel0.Count(); c++)
                        {
                            if (string.IsNullOrEmpty(categList))
                                categList = "'" + sel0[c].ToString() + "'";
                            else
                                categList = categList + ",'" + sel0[c].ToString() + "'";
                        }
                    }
                    else if (sel0.Count() > 1 && sel0[0].ToString().Equals("all"))
                    {
                        for (int c = 1; c < sel0.Count(); c++)
                        {
                            if (string.IsNullOrEmpty(categList))
                                categList = "'" + sel0[c].ToString() + "'";
                            else
                                categList = categList + ",'" + sel0[c].ToString() + "'";
                        }
                    }
                }

                //Neighborhood
                try
                {
                    if (!string.IsNullOrEmpty(addr))
                    {
                        if (!addr.Contains(','))
                        {
                            string[] checkString = addr.Trim().Split(' ');
                            if (checkString.Length > 1)
                            {
                                int splitCount = checkString.Count();
                                if (checkString[splitCount - 1].ToString().Length == 2)
                                {
                                    int idx = addr.LastIndexOf(' ');
                                    string idxString = addr.Insert(idx, ",");
                                    addr = idxString;
                                }
                            }
                        }
                    }
                }
                catch { }

                string[] splitString1 = addr.Split(',');
                string cityName1 = string.Empty;
                if (splitString1.Length > 0)
                {
                    string citySplit = splitString1[0].ToString();
                    if (citySplit.Contains("Your Location"))
                        citySplit = citySplit.Replace("Your Location : ", "");

                    cityName1 = citySplit;
                }
                ViewData["CatLocation"] = cityName1;
                IList<Seed> newListSeed = this.getHomeSearchResult(cityName1, categList, criteria, postZip, criteria);
                ViewData["SeedList"] = newListSeed.Distinct().ToList();

                if (newListSeed.Count > 0)
                {
                    ViewData["SeedList"] = newListSeed.OrderByDescending(x => x.createDate).ToList();
                }
                else
                {
                    newListSeed = repoObj.List<Seed>().Where(x => (x.status.Equals(SystemStatements.STATUS_NEW) || x.status.Equals(SystemStatements.STATUS_GROWING))).Take(20).OrderByDescending(x => x.createDate).ToList();
                    ViewData["SeedList"] = newListSeed;
                    ViewData["CitySearchMsg"] = "<span>Sorry, no seeds planted in '" + cityName1 + "' area. Showing latest additions.</span>";
                    string streamFeed = "Select top 20 * from Seed order by createDate desc";
                    SessionStore.SetSessionValue(SessionStore.DefaultFeed, streamFeed);
                }

                if (newListSeed.Count > 0)
                    SessionStore.SetSessionValue(SessionStore.DiscoverSeed, newListSeed);
                Session["RowCount"] = newListSeed.Count();
                Session["PageCount"] = "1";
                ViewData["PrevVisibility"] = "visibility:hidden;";
                if (newListSeed.Count > 10)
                    ViewData["NxtVisibility"] = "visibility:visible;";
                else
                    ViewData["NxtVisibility"] = "visibility:hidden;";

                CommonMethods objCmnMethods = new CommonMethods();
                string locLatLng = Session["LocLatLng"].ToString();
                string[] locLatLngSplit = locLatLng.Split(',');
                foreach (Seed sd in newListSeed)
                {
                    sd.seedDistance = (int)objCmnMethods.distance(Convert.ToDouble(locLatLngSplit[0].ToString()), Convert.ToDouble(locLatLngSplit[1].ToString()), Convert.ToDouble(sd.Location.localLat), Convert.ToDouble(sd.Location.localLong));
                }
                if (newListSeed.Count > 0)
                    SessionStore.SetSessionValue(SessionStore.DiscoverSeed, newListSeed);
                ViewData["SeedList"] = newListSeed.OrderBy(x => x.seedDistance).ToList();
                ViewData["MarkerList"] = MarkerGenerator(newListSeed);
                ViewData["Criteria"] = criteria;

                if (newListSeed.Count > 0)
                {
                    CategoryAction objCat = new CategoryAction();
                    IList<Category> categ = new List<Category>();
                    Category c = null;
                    foreach (Seed s in newListSeed)
                    {
                        IList<Category> listCategory = s.Categories.ToList();
                        if (listCategory.Count > 0)
                        {
                            foreach (Category c1 in listCategory)
                            {
                                c = objCat.GetCategoryById(s.Categories.FirstOrDefault().id.ToString());
                                if (c != null)
                                    categ.Add(c);
                            }
                        }
                    }
                    ViewData["SeedCategories"] = categ.Distinct().ToList();
                }
            }
            #endregion

            return View();
        }
        public ActionResult TopPeople(string peopleSearch)
        {
            #region
            MemberAction objMember = new MemberAction();
            Member memberData = (Member)SessionStore.GetSessionValue(SessionStore.Memberobject);
            //Search User by name
            IList<Member> memberSearchList = objMember.GetMembersByName(peopleSearch);
            if (memberSearchList.Count > 0)
            {
                ViewData["MostActive"] = memberSearchList;
                SessionStore.SetSessionValue(SessionStore.PeopleSearch, memberSearchList);
            }
            else
            {
                //Most Active if search does not return result
                IList<Member> memberList = objMember.GetAllMember();
                if (memberData != null)
                {
                    memberList = memberList.Where(x => x.id != memberData.id).OrderByDescending(x => x.Seeds.Count()).ToList();
                }
                else
                {
                    memberList = memberList.OrderByDescending(x => x.Seeds.Count()).ToList();
                }
                ViewData["MostActive"] = memberList;
                ViewData["NoResult"] = "Your search did not return any result, showing most active users";
            }

            //Nearby Users
            CommonMethods objCmnMethods = new CommonMethods();
            string strIpAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
            if (strIpAddress == "127.0.0.1")
                strIpAddress = "61.246.241.162";

            string ipLocation = objCmnMethods.IP2AddressAPI(strIpAddress);
            string zipCodeSearch = string.Empty;
            string[] currentAddress;
            if (!string.IsNullOrEmpty(ipLocation))
            {
                //IPaddressAPI
                currentAddress = ipLocation.Split(',');

                if (string.IsNullOrEmpty(currentAddress[7].Replace("\"", "").ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[7].Replace("\"", "").ToString();
            }
            else
            {
                //MaxMind
                ipLocation = objCmnMethods.IP2AddressMaxMind();
                currentAddress = ipLocation.Split('\'');

                if (string.IsNullOrEmpty(currentAddress[15].ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[15].ToString();
            }
            IList<Member> lstMember = new List<Member>();
            if (memberData != null)
                lstMember = objMember.GetMembersByZip(zipCodeSearch).Where(x => x.id != memberData.id).ToList();
            else
                lstMember = objMember.GetMembersByZip(zipCodeSearch);
            ViewData["NearbyUsers"] = lstMember.Distinct().ToList();
            return View();
            #endregion
        }
        public ActionResult Default()
        {
            #region PreviousCoding
            Repository repoObj = new Repository();
            Member memberData = (Member)SessionStore.GetSessionValue(SessionStore.Memberobject);
            if (memberData != null)
            {
                //ViewData["LocationData"] = locations;
                //ViewData["Memberlocation"] = memberLocation;
            }
            else
            {
                string logoutString = TempData["Logout"] as string;
                if (logoutString != "Logout")
                {
                    const string myFacebookApiKey = "101151816623334";
                    const string myFacebookSecret = "65f49046dce2d1f54d6991e43c4af675";

                    var connectSession = new ConnectSession(myFacebookApiKey, myFacebookSecret);
                    if (connectSession.IsConnected())
                    {
                        ViewData["FBConnected"] = true;
                        var api = new Api(connectSession);
                        ViewData["FBUser"] = api.Users.GetInfo();
                        ViewData["UserID"] = api.Users.GetInfo().uid;
                        SessionStore.SetSessionValue(SessionStore.FacebookConnect, "FacebookUserLoggedIn");
                        string[] fbDetails = new string[2];
                        fbDetails[0] = Convert.ToString("fb_" + api.Users.GetInfo().uid);
                        fbDetails[1] = api.Users.GetInfo().name;
                        SessionStore.SetSessionValue("FacebookDetails", fbDetails);
                        api.Session.Logout();
                        connectSession.Logout();
                        return RedirectToAction("FBUser", "Member");
                    }
                }
            }
            #endregion

            GetTopPlanters();

            CommonMethods objCmnMethods = new CommonMethods();

            string strIpAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
            if (strIpAddress == "127.0.0.1")
                strIpAddress = "61.246.241.162";

            string citySearch = string.Empty;
            string stateSearch = string.Empty;
            string zipCodeSearch = string.Empty;
            string latSearch = string.Empty;
            string lngSearch = string.Empty;
            string[] currentAddress;

            string ipLocation = objCmnMethods.MaxMindIPData(strIpAddress);
            if (!string.IsNullOrEmpty(ipLocation) && (!ipLocation.Contains("IP_NOT_FOUND")))
            {
                //IPaddressAPI
                currentAddress = ipLocation.Split(',');

                if (string.IsNullOrEmpty(currentAddress[1].Replace("\"", "").ToString()))
                    stateSearch = "AZ";
                else
                {
                    stateSearch = currentAddress[1].Replace("\"", "").ToString();
                    //stateSearch = "WA";
                }

                if (string.IsNullOrEmpty(currentAddress[2].ToString()))
                    citySearch = "Phoenix";
                else
                {
                    citySearch = currentAddress[2].Replace("\"", "").ToString();
                    //citySearch = "Seattle";
                }

                if (string.IsNullOrEmpty(currentAddress[3].Replace("\"", "").ToString()))
                {
                    //zipCodeSearch = "85027";
                    SeedAction objS = new SeedAction();
                    LocationAction objLocation = new LocationAction();
                    string cityId = objLocation.GetCityIdByCityName(citySearch, stateSearch);
                    zipCodeSearch = objS.GetZipOfSeedByCityId(cityId);
                }
                else
                    zipCodeSearch = currentAddress[3].Replace("\"", "").ToString();

                latSearch = currentAddress[4].Replace("\"", "").ToString();
                lngSearch = currentAddress[5].Replace("\"", "").ToString();
            }
            else
            {
                //MaxMind
                ipLocation = objCmnMethods.IP2AddressMaxMind();
                currentAddress = ipLocation.Split('\'');

                if (string.IsNullOrEmpty(currentAddress[7].ToString()))
                    stateSearch = "AZ";
                else
                    stateSearch = currentAddress[7].ToString();

                if (string.IsNullOrEmpty(currentAddress[5].ToString()))
                    citySearch = "Phoenix";
                else
                    citySearch = currentAddress[5].ToString();

                if (string.IsNullOrEmpty(currentAddress[15].ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[15].ToString();

                latSearch = currentAddress[11].ToString();
                lngSearch = currentAddress[13].ToString();
            }

            ViewData["LocLat"] = latSearch;
            ViewData["LocLng"] = lngSearch;
            Session["LocLatLng"] = latSearch + "," + lngSearch;

            SeedAction objSeed = new SeedAction();
            IList<Seed> lstSeed = getHomeSearchResult(citySearch, "", "", zipCodeSearch, "");
            if (lstSeed.Count > 0)
            {
                ViewData["SeedList"] = lstSeed.OrderByDescending(x => x.createDate).ToList();
                ViewData["userLocation"] = "Your Location : " + citySearch + ", " + stateSearch;
                ViewData["CatLocation"] = citySearch + ", " + stateSearch;
            }
            else
            {
                lstSeed = repoObj.List<Seed>().Where(x => x.status.Equals(SystemStatements.STATUS_NEW) || x.status.Equals(SystemStatements.STATUS_GROWING)).OrderByDescending(x => x.createDate).Take(20).ToList();
                ViewData["SeedList"] = lstSeed;
                ViewData["userLocation"] = "Your Location : " + citySearch + ", " + stateSearch;
                ViewData["CatLocation"] = citySearch + ", " + stateSearch;
                ViewData["CitySearchMsg"] = "<span>Sorry, no seeds planted in '" + citySearch + "' area. Showing latest additions.</span>";
                string streamFeed = "Select top 20 * from Seed order by createDate desc";
                SessionStore.SetSessionValue(SessionStore.DefaultFeed, streamFeed);
            }

            string advSearch = TempData["DiscoverSeed"] as string;
            if (advSearch != "AdvanceSearch")
            {
                if (lstSeed.Count > 0)
                    SessionStore.SetSessionValue(SessionStore.DiscoverSeed, lstSeed);
            }

            if (SessionStore.GetSessionValue(SessionStore.DiscoverSeed) != null)
                lstSeed = (IList<Seed>)SessionStore.GetSessionValue(SessionStore.DiscoverSeed);

            int rowCount = lstSeed.Count;
            Session["RowCount"] = rowCount;
            Session["PageCount"] = "1";
            ViewData["SeedList"] = lstSeed.Take(10).ToList();
            ViewData["PrevVisibility"] = "visibility:hidden;";
            if (lstSeed.Count > 10)
                ViewData["NxtVisibility"] = "visibility:visible;";
            else
                ViewData["NxtVisibility"] = "visibility:hidden;";

            foreach (Seed sd in lstSeed)
            {
                sd.seedDistance = (int)objCmnMethods.distance(Convert.ToDouble(latSearch), Convert.ToDouble(lngSearch), Convert.ToDouble(sd.Location.localLat), Convert.ToDouble(sd.Location.localLong));
            }
            if (lstSeed.Count > 0)
                SessionStore.SetSessionValue(SessionStore.DiscoverSeed, lstSeed);
            ViewData["SeedList"] = lstSeed.OrderBy(x => x.seedDistance).ToList();

            ViewData["MarkerList"] = MarkerGenerator((IList<Seed>)ViewData["SeedList"]);

            //ListBox
            if (Session["SelectedCategory"] != null)
            {
                Session["SelectedCategory"] = null;
            }
            else
            {
                if (str != null)
                {
                    string myString = null;
                    for (int i = 0; i < str.Length; i++)
                    {
                        if (i == 0)
                        {
                            myString = str[i];

                        }
                        else
                        {
                            myString = myString + "," + str[i];
                        }
                    }
                    Session["SelectedCategory"] = myString;
                    ViewData["SelectedCategories"] = myString;
                }
            }
            //ListBox
            if (lstSeed.Count > 0)
            {
                CategoryAction objCat = new CategoryAction();
                IList<Category> categ = new List<Category>();
                Category c = null;
                foreach (Seed s in lstSeed)
                {
                    IList<Category> listCategory = s.Categories.ToList();
                    if (listCategory.Count > 0)
                    {
                        foreach (Category c1 in listCategory)
                        {
                            c = objCat.GetCategoryById(s.Categories.FirstOrDefault().id.ToString());
                            if (c != null)
                                categ.Add(c);
                        }
                    }
                }
                ViewData["SeedCategories"] = categ.Distinct().ToList();
            }

            return View();
        }
        public IList<Seed> getNewestNearby(string radius)
        {
            #region
            CommonMethods objCmnMethods = new CommonMethods();
            string strIpAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
            if (strIpAddress == "127.0.0.1")
                strIpAddress = "61.246.241.162";

            string ipLocation = objCmnMethods.IP2AddressAPI(strIpAddress);
            string citySearch = string.Empty;
            string stateSearch = string.Empty;
            string zipCodeSearch = string.Empty;
            string latSearch = string.Empty;
            string lngSearch = string.Empty;
            string[] currentAddress;
            if (!string.IsNullOrEmpty(ipLocation))
            {
                //IPaddressAPI
                currentAddress = ipLocation.Split(',');

                if (string.IsNullOrEmpty(currentAddress[4].Replace("\"", "").ToString()))
                    stateSearch = "AZ";
                else
                    stateSearch = currentAddress[4].Replace("\"", "").ToString();

                if (string.IsNullOrEmpty(currentAddress[6].ToString()))
                    citySearch = "Phoenix";
                else
                    citySearch = currentAddress[6].Replace("\"", "").ToString();

                if (string.IsNullOrEmpty(currentAddress[7].Replace("\"", "").ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[7].Replace("\"", "").ToString();

                latSearch = currentAddress[8].Replace("\"", "").ToString();
                lngSearch = currentAddress[9].Replace("\"", "").ToString();
            }
            else
            {
                //MaxMind
                ipLocation = objCmnMethods.IP2AddressMaxMind();
                currentAddress = ipLocation.Split('\'');

                if (string.IsNullOrEmpty(currentAddress[7].ToString()))
                    stateSearch = "AZ";
                else
                    stateSearch = currentAddress[7].ToString();

                if (string.IsNullOrEmpty(currentAddress[5].ToString()))
                    citySearch = "Phoenix";
                else
                    citySearch = currentAddress[5].ToString();

                if (string.IsNullOrEmpty(currentAddress[15].ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[15].ToString();

                latSearch = currentAddress[11].ToString();
                lngSearch = currentAddress[13].ToString();
            }
            SeedAction objSeed = new SeedAction();
            IList<Seed> lstSeed = objSeed.GetAllSeedsByZip(radius, zipCodeSearch);
            return lstSeed.Where(x => (x.status.Equals(SystemStatements.STATUS_NEW) || x.status.Equals(SystemStatements.STATUS_GROWING))).ToList();
            #endregion
        }
        public IList<Seed> ProximitySort()
        {
            IList<Seed> listSeed = null;
            string ip = System.Web.HttpContext.Current.Request.UserHostAddress;
            if (ip == "127.0.0.1")
                ip = "61.246.241.162";

            CommonMethods objCmnMethods = new CommonMethods();
            //MaxMind
            string zipSearch = string.Empty;
            string[] currentAddress = objCmnMethods.IP2AddressMaxMind().Split('\'');
            if (currentAddress[15].ToString() == "")
                zipSearch = "85027";

            listSeed = getHomeSearchResult("", "", "", zipSearch, "");
            return listSeed;
        }
        public ActionResult Streams()
        {
            #region
            CommonMethods objCmnMethods = new CommonMethods();
            string strIpAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
            if (strIpAddress == "127.0.0.1")
                strIpAddress = "61.246.241.162";

            string ipLocation = objCmnMethods.IP2AddressAPI(strIpAddress);
            string zipCodeSearch = string.Empty;
            string[] currentAddress;
            if (!string.IsNullOrEmpty(ipLocation))
            {
                //IPaddressAPI
                currentAddress = ipLocation.Split(',');

                if (string.IsNullOrEmpty(currentAddress[7].Replace("\"", "").ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[7].Replace("\"", "").ToString();
            }
            else
            {
                //MaxMind
                ipLocation = objCmnMethods.IP2AddressMaxMind();
                currentAddress = ipLocation.Split('\'');

                if (string.IsNullOrEmpty(currentAddress[15].ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[15].ToString();
            }

            StreamAction objStream = new StreamAction();
            IList<ssStream> streamData = new List<ssStream>();
            streamData = objStream.GetAllStreamByZip(zipCodeSearch);

            if (streamData.Count() < 1)
                streamData = objStream.GetLatestStreams();

            streamData = streamData.Distinct().ToList();
            ViewData["SearchStream"] = streamData;

            IList<ssStream> latestStreams = new List<ssStream>();
            latestStreams = objStream.GetLatestStreams();
            ViewData["LatestStreams"] = latestStreams;

            IList<ssStream> mostPopularStreams = new List<ssStream>();
            mostPopularStreams = objStream.GetMostPopularStreams();
            ViewData["MostPopular"] = mostPopularStreams;

            ViewData["SearchTerm"] = "Nearby Feeds";
            return View();
            #endregion
        }
        public IList<Seed> getHomeSearchResult(string city, string catId, string keyword, string zip, string userName)
        {
            #region Logic
            IList<Seed> seedList = new List<Seed>();
            Repository repoObj = new Repository();
            SeedAction objSeed = new SeedAction();

            string searchString = "";
            if (catId != null && catId.Length > 0)
            {
                searchString = "select distinct seed.* from seed, Seed_has_Category where (status='New' or status='Growing')";
            }
            else
            {
                searchString = "select distinct seed.* from seed where (status='New' or status='Growing')";
            }
            bool flag = false;

            #region Search in location table
            if ((!string.IsNullOrEmpty(city) && city != "Set Your location") || (!string.IsNullOrEmpty(zip) && zip != "Zipcode"))
            {
                searchString += " and locationid in ( select distinct(id) from location where ";
                if (city.Length > 0 && city != "City")
                {
                    if (!string.IsNullOrEmpty(zip))
                        searchString += "cityid in (select id from City where name = '" + city + "' )";
                    else
                        searchString += "cityid in (select id from City where name = '" + city + "' ))";
                    flag = true;
                }

                if (!string.IsNullOrEmpty(zip))
                {
                    if (zip.Length > 0 && zip != "Zipcode")
                    {
                        CommonMethods cmnMethod = new CommonMethods();
                        string zipResult = cmnMethod.GetZipByRadiusNew("25", zip);
                        if (flag)
                        {
                            searchString += " or ";
                        }

                        if (!string.IsNullOrEmpty(zipResult))
                        {
                            searchString = searchString.Substring(0, searchString.Length - 1);
                            searchString += " zipcode in (" + zipResult + "))";
                        }
                        else
                        {
                            searchString += " zipcode in (" + zip + "))";
                        }

                        flag = true;
                    }
                }
            }
            #endregion

            #region Search according to categories
            if (catId != null && catId.Length > 0)
            {
                if (!catId.Equals("all"))
                    searchString += " and Seed_has_Category.categoryId in (" + catId + ") and Seed.id=Seed_has_Category.seedId";
            }
            #endregion

            #region Search in username, firstname, lastname
            if (!string.IsNullOrEmpty(userName))
            {
                if (userName != "Search by user, category, keywords")
                {
                    if (userName.Contains('@'))
                    {
                        searchString += " and Seed.ownerId in (Select id from Member where username = '******')";
                    }
                    else
                    {
                        string fName = string.Empty;
                        string lName = string.Empty;
                        string[] splt = userName.Split(' ');
                        if (splt.Count() > 1)
                        {
                            fName = splt[0].ToString();
                            lName = splt[1].ToString();
                            searchString += " and Seed.ownerId in (select id from Member where firstName = '" + fName + "' or lastName='" + lName + "')";
                        }
                        else
                        {
                            fName = splt[0].ToString();
                            searchString += " and Seed.ownerId in (select id from Member where firstName = '" + fName + "')";
                        }
                    }
                }
            }
            #endregion

            #region Search in title or description
            if (!string.IsNullOrEmpty(keyword))
            {
                if (keyword.Length > 0 && keyword != "Search by user, category, keywords")
                {
                    searchString += " or (Seed.title like '%" + keyword + "%' or Seed.description like '%" + keyword + "%')";
                }
            }
            #endregion

            seedList = repoObj.ListPPP<Seed>("usp_SearchSeeds", searchString).ToList();
            IList<Seed> returnSeedList = (from s in seedList select s).Distinct().ToList();
            SessionStore.SetSessionValue(SessionStore.DefaultFeed, searchString);
            return returnSeedList;
            #endregion
        }
        public ActionResult SearchSeeds()
        {
            #region
            CommonMethods objCmnMethods = new CommonMethods();

            string strIpAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
            if (strIpAddress == "127.0.0.1")
                strIpAddress = "61.246.241.162";

            string ipLocation = objCmnMethods.IP2AddressAPI(strIpAddress);
            string citySearch = string.Empty;
            string stateSearch = string.Empty;
            string zipCodeSearch = string.Empty;
            string latSearch = string.Empty;
            string lngSearch = string.Empty;
            string[] currentAddress;
            if (!string.IsNullOrEmpty(ipLocation))
            {
                //IPaddressAPI
                currentAddress = ipLocation.Split(',');

                if (string.IsNullOrEmpty(currentAddress[4].Replace("\"", "").ToString()))
                    stateSearch = "AZ";
                else
                    stateSearch = currentAddress[4].Replace("\"", "").ToString();

                if (string.IsNullOrEmpty(currentAddress[6].ToString()))
                    citySearch = "Phoenix";
                else
                    citySearch = currentAddress[6].Replace("\"", "").ToString();

                if (string.IsNullOrEmpty(currentAddress[7].Replace("\"", "").ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[7].Replace("\"", "").ToString();

                latSearch = currentAddress[8].Replace("\"", "").ToString();
                lngSearch = currentAddress[9].Replace("\"", "").ToString();
            }
            else
            {
                //MaxMind
                ipLocation = objCmnMethods.IP2AddressMaxMind();
                currentAddress = ipLocation.Split('\'');

                if (string.IsNullOrEmpty(currentAddress[7].ToString()))
                    stateSearch = "AZ";
                else
                    stateSearch = currentAddress[7].ToString();

                if (string.IsNullOrEmpty(currentAddress[5].ToString()))
                    citySearch = "Phoenix";
                else
                    citySearch = currentAddress[5].ToString();

                if (string.IsNullOrEmpty(currentAddress[15].ToString()))
                    zipCodeSearch = "85027";
                else
                    zipCodeSearch = currentAddress[15].ToString();

                latSearch = currentAddress[11].ToString();
                lngSearch = currentAddress[13].ToString();
            }

            IList<Seed> lstSeed = null;
            if (SessionStore.GetSessionValue(SessionStore.SearchSeeds) != null)
                lstSeed = (IList<Seed>)SessionStore.GetSessionValue(SessionStore.SearchSeeds);

            foreach (Seed sd in lstSeed)
            {
                sd.seedDistance = (int)objCmnMethods.distance(Convert.ToDouble(latSearch), Convert.ToDouble(lngSearch), Convert.ToDouble(sd.Location.localLat), Convert.ToDouble(sd.Location.localLong));
            }
            ViewData["SearchSeeds"] = lstSeed;
            return View();
            #endregion
        }
        public ActionResult AddStreamFeed(string gFeedTitle, string gFeedDesc, string gIsPublic, string seedLocationStreamFeed, string seedCoordinatesStreamFeed, string txtCategoryStreamFeed, string feedLocation, string profileLocValue, string NewLocValue, string LocationRadius, string CoordinatesRadius, string gIsMedia, string txtIncludeTerms, string txtExcludeTerms, string isEdit, string StreamId)
        {
            #region Front Logic
            try
            {
                Member memberData = (Member)SessionStore.GetSessionValue(SessionStore.Memberobject);
                StreamAction objStream = new StreamAction();
                ssStream stream = new ssStream();
                stream.title = gFeedTitle;
                stream.description = gFeedDesc;

                string feedQuery = "Select Seed.* from Seed where (seed.[status] = 'New' or seed.[status] = 'Growing')";

                #region add location in query
                if (!string.IsNullOrEmpty(feedLocation))
                {
                    if (feedLocation != "AllLocations")
                    {
                        string radius = string.Empty;
                        string radiusZipList = string.Empty;
                        string ZipCodeFeed = string.Empty;
                        if (feedLocation == "ProfileLocation")
                        {
                            radius = profileLocValue;
                            if (memberData.MemberProfiles != null)
                            {
                                if (memberData.MemberProfiles.FirstOrDefault().Location.zipcode != null)
                                    ZipCodeFeed = Convert.ToString(memberData.MemberProfiles.FirstOrDefault().Location.zipcode);
                            }
                            else
                                ZipCodeFeed = "85027";
                        }
                        if (feedLocation == "NewLocation")
                        {
                            radius = NewLocValue;

                            //Format address
                            string[] splitAddressFeed = LocationRadius.Split(',');
                            if (splitAddressFeed.Length > 4)
                            {
                                string[] splitZipRegion = splitAddressFeed[3].ToString().Trim().Split(' ');
                                ZipCodeFeed = splitZipRegion[1].ToString().Trim();
                            }
                            else
                            {
                                string[] splitZipRegion = splitAddressFeed[2].ToString().Trim().Split(' ');
                                ZipCodeFeed = splitZipRegion[1].ToString().Trim();
                            }
                            //End formatting address
                        }

                        //Get zip codes according to radius
                        CommonMethods objCommon = new CommonMethods();
                        radiusZipList = objCommon.GetZipByRadius(radius, ZipCodeFeed);
                        //End get zip codes according to radius

                        if (string.IsNullOrEmpty(radiusZipList))
                            radiusZipList = ZipCodeFeed;

                        feedQuery += " and locationId in (Select id from Location where zipcode in (" + radiusZipList + "))";
                    }
                }
                #endregion

                #region include terms in query
                if (!string.IsNullOrEmpty(txtIncludeTerms))
                {
                    string inCondition = string.Empty;
                    string[] includeTerms = txtIncludeTerms.Split(',');
                    for (int i = 0; i < includeTerms.Length; i++)
                    {
                        if (i == 0)
                            inCondition = "'" + includeTerms[i].ToString() + "'";
                        else
                            inCondition += ",'" + includeTerms[i].ToString() + "'";
                    }
                    feedQuery += " and Seed.id in (select sc.seedId from Category c ,Seed_has_Category sc where c.id=sc.categoryId and c.name in (" + inCondition + ") union select Seed.id from Seed,Member where Member.id = Seed.ownerId and Member.firstName in (" + inCondition + "))";
                }
                #endregion

                #region exclude terms in query
                if (!string.IsNullOrEmpty(txtExcludeTerms))
                {
                    string exCondition = string.Empty;
                    string[] excludeTerms = txtExcludeTerms.Split(',');
                    for (int i = 0; i < excludeTerms.Length; i++)
                    {
                        if (i == 0)
                            exCondition = "'" + excludeTerms[i].ToString() + "'";
                        else
                            exCondition += ",'" + excludeTerms[i].ToString() + "'";
                    }
                    feedQuery += " and Seed.id not in (select sc.seedId from Category c ,Seed_has_Category sc where c.id=sc.categoryId and c.name in (" + exCondition + ") union select Seed.id from Seed,Member where Member.id = Seed.ownerId and Member.firstName in (" + exCondition + "))";
                }
                #endregion

                #region add media in query
                if (!string.IsNullOrEmpty(gIsMedia))
                {
                    switch (gIsMedia)
                    {
                        case "All":
                            feedQuery += " and Seed.id in (Select m.seedId from Media m)";
                            break;
                        case "NoMedia":
                            feedQuery += " and Seed.id not in (Select m.seedId from Media m)";
                            break;
                        case "PhotosOnly":
                            feedQuery += " and Seed.id in (Select m.seedId from Media m where m.[type]='" + SystemStatements.MEDIA_IMAGE + "')";
                            break;
                        case "VideosOnly":
                            feedQuery += " and Seed.id in (Select m.seedId from Media m where m.[type]='" + SystemStatements.MEDIA_VIDEO + "')";
                            break;
                        default:
                            break;
                    }
                }
                #endregion

                stream.criteria = feedQuery;
                stream.streamType = SystemStatements.STREAM_FEED;
                stream.ownerId = memberData.id;

                if (isEdit == "Yes" && !string.IsNullOrEmpty(StreamId))
                {
                    ssStream ss = objStream.GetStreamById(StreamId);
                    ss.title = gFeedTitle;
                    ss.description = gFeedDesc;
                    ss.criteria = feedQuery;
                    ss.isPublic = Convert.ToBoolean(gIsPublic);
                    if (!string.IsNullOrEmpty(seedLocationStreamFeed))
                    {
                        //Format address
                        string StreetAddress = string.Empty;
                        string City = string.Empty;
                        string ZipCode = string.Empty;
                        string StateCode = string.Empty;
                        string[] splitAddress = seedLocationStreamFeed.Split(',');
                        string feedCountry = string.Empty;
                        if (splitAddress.Length > 4)
                        {
                            StreetAddress = splitAddress[0].ToString() + ", " + splitAddress[1].ToString();
                            City = splitAddress[2].ToString().Trim();
                            string[] splitZipRegion = splitAddress[3].ToString().Trim().Split(' ');
                            ZipCode = splitZipRegion[1].ToString().Trim();
                            StateCode = splitZipRegion[0].ToString().Trim();
                            feedCountry = splitAddress[4].ToString();
                        }
                        else
                        {
                            StreetAddress = splitAddress[0].ToString();
                            City = splitAddress[1].ToString().Trim();
                            string[] splitZipRegion = splitAddress[2].ToString().Trim().Split(' ');
                            ZipCode = splitZipRegion[1].ToString().Trim();
                            StateCode = splitZipRegion[0].ToString().Trim();
                            feedCountry = splitAddress[3].ToString();
                        }
                        //End formatting address
                        if (feedCountry.Trim().Equals("USA") || feedCountry.Trim().Equals("US"))
                            feedCountry = feedCountry.Trim();
                        else
                            throw new Exception("Feeds can not be created outside region of United States");

                        LocationAction objLocation = new LocationAction();
                        SeedAction objSeed = new SeedAction();
                        string latLong = seedCoordinatesStreamFeed;
                        string[] strSplitLatLong = latLong.Split(',');
                        string lat = strSplitLatLong[0].ToString();
                        string longt = strSplitLatLong[1].ToString();
                        string crossStreet = StreetAddress.Trim();
                        string cityId = objLocation.GetCityIdByCityName(City, StateCode);
                        if (string.IsNullOrEmpty(cityId))
                            cityId = objSeed.AddCity(City, StateCode);
                        Location loc = objLocation.CreateLocation(cityId, ZipCode, Convert.ToDouble(lat), Convert.ToDouble(longt), crossStreet);
                        ss.locationId = loc.id;
                    }
                    ss = objStream.UpdateStream1(ss);
                    if (txtCategoryStreamFeed != null)
                    {
                        string catIds = string.Empty;
                        string[] splitCategories = txtCategoryStreamFeed.Split(',');
                        for (int i = 0; i < splitCategories.Length; i++)
                        {
                            CategoryAction objCatg = new CategoryAction();
                            string idCatg = objCatg.GetCategoryIdByCategoryName(splitCategories[i].ToString());
                            if (!string.IsNullOrEmpty(idCatg))
                            {
                                if (string.IsNullOrEmpty(catIds))
                                    catIds = idCatg;
                                else
                                    catIds = catIds + "," + idCatg;
                            }
                        }
                        if (!string.IsNullOrEmpty(catIds))
                        {
                            string[] arrCatIds = catIds.Split(',');
                            objStream.AddFeedCategories(Convert.ToString(ss.id), arrCatIds);
                        }
                    }
                    if (!string.IsNullOrEmpty(Convert.ToString(ss.id)))
                    {
                        return RedirectToAction("ManageMyFeeds", "SeedStream");
                    }
                    return RedirectToAction("UnexpectedError", "Error");
                }

                if (!string.IsNullOrEmpty(seedLocationStreamFeed))
                {
                    //Format address
                    string StreetAddress = string.Empty;
                    string City = string.Empty;
                    string ZipCode = string.Empty;
                    string StateCode = string.Empty;
                    string[] splitAddress = seedLocationStreamFeed.Split(',');
                    string feedCountry = string.Empty;
                    if (splitAddress.Length > 4)
                    {
                        StreetAddress = splitAddress[0].ToString() + ", " + splitAddress[1].ToString();
                        City = splitAddress[2].ToString().Trim();
                        string[] splitZipRegion = splitAddress[3].ToString().Trim().Split(' ');
                        ZipCode = splitZipRegion[1].ToString().Trim();
                        StateCode = splitZipRegion[0].ToString().Trim();
                        feedCountry = splitAddress[4].ToString();
                    }
                    else
                    {
                        StreetAddress = splitAddress[0].ToString();
                        City = splitAddress[1].ToString().Trim();
                        string[] splitZipRegion = splitAddress[2].ToString().Trim().Split(' ');
                        ZipCode = splitZipRegion[1].ToString().Trim();
                        StateCode = splitZipRegion[0].ToString().Trim();
                        feedCountry = splitAddress[3].ToString();
                    }
                    //End formatting address
                    if (feedCountry.Trim().Equals("USA") || feedCountry.Trim().Equals("US"))
                        feedCountry = feedCountry.Trim();
                    else
                        throw new Exception("Feeds can not be created outside region of United States");

                    LocationAction objLocation = new LocationAction();
                    SeedAction objSeed = new SeedAction();
                    string latLong = seedCoordinatesStreamFeed;
                    string[] strSplitLatLong = latLong.Split(',');
                    string lat = strSplitLatLong[0].ToString();
                    string longt = strSplitLatLong[1].ToString();
                    string crossStreet = StreetAddress.Trim();
                    string cityId = objLocation.GetCityIdByCityName(City, StateCode);
                    if (string.IsNullOrEmpty(cityId))
                        cityId = objSeed.AddCity(City, StateCode);
                    Location loc = objLocation.CreateLocation(cityId, ZipCode, Convert.ToDouble(lat), Convert.ToDouble(longt), crossStreet);
                    stream.locationId = loc.id;
                }
                stream.isPublic = Convert.ToBoolean(gIsPublic);

                stream = objStream.CreateStream1(stream);
                if (txtCategoryStreamFeed != null)
                {
                    string catIds = string.Empty;
                    string[] splitCategories = txtCategoryStreamFeed.Split(',');
                    for (int i = 0; i < splitCategories.Length; i++)
                    {
                        CategoryAction objCatg = new CategoryAction();
                        string idCatg = objCatg.GetCategoryIdByCategoryName(splitCategories[i].ToString());
                        if (!string.IsNullOrEmpty(idCatg))
                        {
                            if (string.IsNullOrEmpty(catIds))
                                catIds = idCatg;
                            else
                                catIds = catIds + "," + idCatg;
                        }
                    }
                    if (!string.IsNullOrEmpty(catIds))
                    {
                        string[] arrCatIds = catIds.Split(',');
                        objStream.AddFeedCategories(Convert.ToString(stream.id), arrCatIds);
                    }
                }
                if (!string.IsNullOrEmpty(Convert.ToString(stream.id)))
                {
                    return RedirectToAction("ManageMyFeeds", "SeedStream");
                }
                return RedirectToAction("UnexpectedError", "Error");
            }
            catch (Exception ex)
            {
                SessionStore.SetSessionValue("PlantError", "Error occurred while creating feed#" + ex.Message.ToString());
                return RedirectToAction("PlantError", "Seed");
            }
            #endregion
        }
Exemple #10
0
        /// <summary>
        /// Method to get list of seeds by zip
        /// </summary>
        /// <param name="radius"></param>
        /// <param name="zip"></param>
        /// <returns></returns>
        public IList<Seed> GetAllSeedsByZip(string radius, string zip)
        {
            #region Business Logic

            IList<Seed> seedData = new List<Seed>();

            try
            {
                CommonMethods commMethods = new CommonMethods();

                DataTable allZipCodes = commMethods.GetZipListByRadiusNew(radius, zip);

                //string abc = commMethods.GetZipByRadius(radius, zip);

                IList<Location> locationList = repoObj.List<Location>().ToList();

                IList<Location> FilterZip =
                 (from u in locationList
                 join p in allZipCodes.AsEnumerable() on u.zipcode
                 equals p.Field<string>("Zip").Trim().ToUpper()
                 select u).Distinct().ToList();

                //seedData = repoObj.List<Location>(x => x.zipcode.Equals(zip) && (x.status.Equals(SystemStatements.STATUS_NEW) || x.status.Equals(SystemStatements.STATUS_GROWING))).ToList();

               // IList<Location> locationList = repoObj.List<Location>(x => x.zipcode.Equals(zip)).ToList();

                foreach (Location l in FilterZip)
                {
                    if (l.Seeds != null && l.Seeds.Count > 0)
                    {
                        seedData.Add(l.Seeds.FirstOrDefault());
                    }
                    //foreach (Seed s in l.Seeds)
                    //{
                        //if (s.status.Equals(SystemStatements.STATUS_NEW) || s.status.Equals(SystemStatements.STATUS_GROWING))
                        //{

                       // }ss
                    //}
                }
            }

            catch (Exception ex)
            {
                WriteError(ex);
            }
            return seedData;
            #endregion
        }
        public ActionResult AdvanceSearch(string AdvLocation, string currentLocValue, string AnotherLocValue, string LocationAdvSearchRadius, string CoordinatesAdvSearchRadius, string advMedia, string advReplySeeds, string txtAdvSearchIncludeTerms, string txtAdvSearchExcludeTerms)
        {
            #region Front Logic
            Member memberData = (Member)SessionStore.GetSessionValue(SessionStore.Memberobject);
            SeedAction objSeed = new SeedAction();

            string advSearchQuery = "Select Seed.* from Seed where (seed.[status] = 'New' or seed.[status] = 'Growing')";
            if (advReplySeeds != "IncludeReplySeeds")
                advSearchQuery += " and seed.parentSeedID is null";

            #region add location in query
            if (!string.IsNullOrEmpty(AdvLocation))
            {
                if (AdvLocation != "AllLocations")
                {
                    string radius = string.Empty;
                    string radiusZipList = string.Empty;
                    string ZipCodeAdvSearch = string.Empty;
                    if (AdvLocation == "CurrentLocation")
                    {
                        radius = currentLocValue;
                        CommonMethods objCmnMethods = new CommonMethods();

                        string strIpAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
                        if (strIpAddress == "127.0.0.1")
                            strIpAddress = "61.246.241.162";

                        string ipLocation = objCmnMethods.IP2AddressAPI(strIpAddress);

                        string[] currentAddress;
                        if (!string.IsNullOrEmpty(ipLocation))
                        {
                            //IPaddressAPI
                            currentAddress = ipLocation.Split(',');
                            if (string.IsNullOrEmpty(currentAddress[7].Replace("\"", "").ToString()))
                                ZipCodeAdvSearch = "85027";
                            else
                                ZipCodeAdvSearch = currentAddress[7].Replace("\"", "").ToString();
                        }
                        else
                        {
                            //MaxMind
                            ipLocation = objCmnMethods.IP2AddressMaxMind();
                            currentAddress = ipLocation.Split('\'');
                            if (string.IsNullOrEmpty(currentAddress[15].ToString()))
                                ZipCodeAdvSearch = "85027";
                            else
                                ZipCodeAdvSearch = currentAddress[15].ToString();
                        }
                    }
                    if (AdvLocation == "NewLocation")
                    {
                        radius = AnotherLocValue;

                        //Format address
                        string[] splitAddressSearch = LocationAdvSearchRadius.Split(',');
                        if (splitAddressSearch.Length > 4)
                        {
                            string[] splitZipRegion = splitAddressSearch[3].ToString().Trim().Split(' ');
                            ZipCodeAdvSearch = splitZipRegion[1].ToString().Trim();
                        }
                        else
                        {
                            string[] splitZipRegion = splitAddressSearch[2].ToString().Trim().Split(' ');
                            ZipCodeAdvSearch = splitZipRegion[1].ToString().Trim();
                        }
                        //End formatting address
                    }

                    //Get zip codes according to radius
                    CommonMethods objCommon = new CommonMethods();
                    radiusZipList = objCommon.GetZipByRadiusNew(radius, ZipCodeAdvSearch);
                    //End get zip codes according to radius

                    if (string.IsNullOrEmpty(radiusZipList))
                        radiusZipList = ZipCodeAdvSearch;

                    advSearchQuery += " and locationId in (Select id from Location where zipcode in (" + radiusZipList + "))";
                }
            }
            #endregion

            #region include terms in query
            if (!string.IsNullOrEmpty(txtAdvSearchIncludeTerms))
            {
                string inCondition = string.Empty;
                string[] includeTerms = txtAdvSearchIncludeTerms.Split(',');
                for (int i = 0; i < includeTerms.Length; i++)
                {
                    if (i == 0)
                        inCondition = "'" + includeTerms[i].ToString() + "'";
                    else
                        inCondition += ",'" + includeTerms[i].ToString() + "'";
                }
                advSearchQuery += " and Seed.id in (select sc.seedId from Category c ,Seed_has_Category sc where c.id=sc.categoryId and c.name in (" + inCondition + ") union select Seed.id from Seed,Member where Member.id = Seed.ownerId and Member.firstName in (" + inCondition + "))";
            }
            #endregion

            #region exclude terms in query
            if (!string.IsNullOrEmpty(txtAdvSearchExcludeTerms))
            {
                string exCondition = string.Empty;
                string[] excludeTerms = txtAdvSearchExcludeTerms.Split(',');
                for (int i = 0; i < excludeTerms.Length; i++)
                {
                    if (i == 0)
                        exCondition = "'" + excludeTerms[i].ToString() + "'";
                    else
                        exCondition += ",'" + excludeTerms[i].ToString() + "'";
                }
                advSearchQuery += " and Seed.id not in (select sc.seedId from Category c ,Seed_has_Category sc where c.id=sc.categoryId and c.name in (" + exCondition + ") union select Seed.id from Seed,Member where Member.id = Seed.ownerId and Member.firstName in (" + exCondition + "))";
            }
            #endregion

            #region add media in query
            if (!string.IsNullOrEmpty(advMedia))
            {
                switch (advMedia)
                {
                    case "All":
                        advSearchQuery += " and Seed.id in (Select m.seedId from Media m)";
                        break;
                    case "NoMedia":
                        advSearchQuery += " and Seed.id not in (Select m.seedId from Media m)";
                        break;
                    case "PhotosOnly":
                        advSearchQuery += " and Seed.id in (Select m.seedId from Media m where m.[type]='" + SystemStatements.MEDIA_IMAGE + "')";
                        break;
                    case "VideosOnly":
                        advSearchQuery += " and Seed.id in (Select m.seedId from Media m where m.[type]='" + SystemStatements.MEDIA_VIDEO + "')";
                        break;
                    default:
                        break;
                }
            }
            #endregion

            IList<Seed> lstSeed = null;
            lstSeed = objSeed.GetSeedListByCriteria(advSearchQuery);
            lstSeed = lstSeed.Distinct().ToList();
            SessionStore.SetSessionValue(SessionStore.SearchSeeds, lstSeed);
            TempData["DiscoverSeed"] = "AdvanceSearch";
            #endregion

            return RedirectToAction("SearchSeeds", "Home");
        }
        /// <summary>
        /// Method to get stream by zip
        /// </summary>
        /// <param name="zip"></param>
        /// <returns></returns>
        public IList<ssStream> GetAllStreamByZip(string zip)
        {
            #region Business Logic
            IList<ssStream> streamData = new List<ssStream>();
            try
            {
                CommonMethods commMethods = new CommonMethods();
                DataTable allZipCodes = commMethods.GetZipListByRadius("25", zip);
                IList<Location> locationList = repoObj.List<Location>().ToList();
                IList<Location> FilterZip =
                 (from u in locationList
                  join p in allZipCodes.AsEnumerable() on u.zipcode
                  equals p.Field<string>("Zip").Trim().ToUpper()
                  select u).Distinct().ToList();

                foreach (Location loc in FilterZip)
                {
                    if (loc.ssStreams != null && loc.ssStreams.Count > 0)
                    {
                        streamData.Add(loc.ssStreams.FirstOrDefault());
                    }
                }
            }
            catch (Exception ex)
            {
                WriteError(ex);
            }
            return streamData;
            #endregion
        }