private MarketModel ConvertToStoreNonVisit(Market market)
        {
            try
            {
                MarketModel _market = new MarketModel();
                _market.MarketID = market.MarketID;
                _market.MarketGUID = market.MarketGUID.ToString();
                _market.UserGUID = market.UserGUID != null ? market.UserGUID.ToString() : Guid.Empty.ToString();
                _market.OrganizationGUID = market.OrganizationGUID != null ? market.OrganizationGUID.ToString() : Guid.Empty.ToString();
                _market.OwnerGUID = market.OwnerGUID != null ? market.OwnerGUID.ToString() : Guid.Empty.ToString();
                _market.MarketName = market.MarketName;
                _market.MarketPhone = market.MarketPhone;
                _market.PrimaryContactGUID = market.PrimaryContactGUID != null ? market.PrimaryContactGUID.ToString() : Guid.Empty.ToString();
                if (!string.IsNullOrEmpty(market.RMUserID))
                {
                    GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByUserID(market.RMUserID, _market.OrganizationGUID);
                    if (_globalUser != null)
                    {
                        UserProfile _userprofile = _IUserProfileRepository.GetUserProfileByUserID(_globalUser.UserGUID, new Guid(_market.OrganizationGUID));
                        if (_userprofile != null)
                        {
                            _market.RMName = _userprofile.FirstName + " " + _userprofile.LastName;
                        }
                        else
                        {
                            _market.RMName = "";
                        }
                    }

                }
                else
                {
                    _market.RMName = "";
                }
                if (!string.IsNullOrEmpty(market.FMUserID))
                {
                    GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByUserID(market.FMUserID, Session["OrganizationGUID"].ToString());
                    if (_globalUser != null)
                    {
                        UserProfile _userprofile = _IUserProfileRepository.GetUserProfileByUserID(_globalUser.UserGUID, new Guid(_market.OrganizationGUID));
                        if (_userprofile != null)
                        {
                            _market.FMName = _userprofile.FirstName + " " + _userprofile.LastName;
                        }
                        else
                        {
                            _market.FMName = "";
                        }
                    }

                }
                else
                {
                    _market.FMName = "";
                }
                _market.FirstName = market.FirstName;
                _market.LastName = market.LastName;
                _market.MobilePhone = market.MobilePhone;
                _market.HomePhone = market.HomePhone;
                _market.Emails = market.Emails;
                _market.AddressLine1 = market.AddressLine1;
                _market.AddressLine2 = market.AddressLine2;
                _market.City = market.City;
                _market.State = market.State;
                _market.Country = market.Country;
                _market.ZipCode = market.ZipCode;
                _market.RegionGUID = market.RegionGUID != null ? market.RegionGUID.ToString() : Guid.Empty.ToString();
                _market.TerritoryGUID = market.TerritoryGUID != null ? market.TerritoryGUID.ToString() : Guid.Empty.ToString();
                _market.RegionName = market.RegionGUID != null ? _IRegionRepository.GetRegionNameByRegionGUID(new Guid(market.RegionGUID.ToString())) : "";
                _market.TerritoryName = market.TerritoryGUID != null ? _ITerritoryRepository.GetTerritoryNameByTerritoryGUID(new Guid(market.TerritoryGUID.ToString())) : "";
                _market.LastStoreVisitedDate = market.LastStoreVisitedDate != null ? Session["TimeZoneID"] != null ? _IUserRepository.GetLocalDateTime(market.LastStoreVisitedDate, Session["TimeZoneID"].ToString()) : market.LastStoreVisitedDate.ToString() : "";

                return _market;
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return null;
            }


        }
        //
        // GET: /CustomerView/
        public ActionResult Index(string id = "", string customerid = "", string regionguid = "", string selection = "", string Contact_RowCount = "", string Store_RowCount = "", int page = 1, string Contact_Search = "", string Store_Search = "")
        {
            Logger.Debug("Inside CustomerView Controller- Index");
            try
            {
                ViewBag.CustomerID = customerid;
                ViewBag.RegionGUID = regionguid;
                int contact_TotalPage = 0;
                int contact_TotalRecord = 0;
                int contact_pCount = 0;

                int store_TotalPage = 0;
                int store_TotalRecord = 0;
                int store_pCount = 0;

                if (Session["OrganizationGUID"] != null)
                {
                    if (!string.IsNullOrEmpty(Contact_RowCount))
                    {
                        int.TryParse(Contact_RowCount, out contact_pCount);
                        pageContactCountList(contact_pCount);

                    }
                    else
                    {
                        pageContactCountList(contact_pCount);
                    }
                    if (!string.IsNullOrEmpty(Store_RowCount))
                    {
                        int.TryParse(Store_RowCount, out store_pCount);
                        pageStoreCountList(store_pCount);

                    }
                    else
                    {
                        pageStoreCountList(store_pCount);
                    }


                    customerview pcustomerview = new customerview();
                    pcustomerview.PeopleViewModel = new PeopleViewModel();
                    pcustomerview.MarketViewModel = new MarketViewModel();
                    pcustomerview.PlaceModel = new PlaceModel();


                    if (!string.IsNullOrEmpty(customerid))
                    {
                        ViewBag.CustomerID = customerid;
                        StringBuilder sb = new StringBuilder();
                        sb.Append("<div class='actions'>");
                        sb.Append("<div class='btn-group'>");
                        if (!string.IsNullOrEmpty(regionguid))
                        {
                            sb.Append("<a href='#' id='ulaworkergroup' class='btn green' data-toggle='dropdown'><i class='icon-map-marker'></i> " + _IRegionRepository.GetRegionNameByRegionGUID(new Guid(regionguid)) + " <i class='icon-angle-down'></i></a>");
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(selection) && selection == "All")
                            {
                                sb.Append("<a href='#' id='ulaworkergroup' class='btn green' data-toggle='dropdown'><i class='icon-map-marker'></i> All <i class='icon-angle-down'></i></a>");
                            }
                            else
                            {
                                sb.Append("<a href='#' id='ulaworkergroup' class='btn green' data-toggle='dropdown'><i class='icon-map-marker'></i> Select Region <i class='icon-angle-down'></i></a>");
                            }
                        }
                        sb.Append("<ul id='ulworkgroup' style='height:100px;overflow-y:scroll' class='dropdown-menu pull-right'>");
                        if (string.IsNullOrEmpty(selection) || selection != "All")
                        {
                            //sb.Append("<li><a href=" + Url.Action("Index", "CustomerView", new { id = "Stores", customerid = customerid, selection = "All" }) + ">All</a></li>");
                            sb.Append("<li><a onclick=\"RedirectAction('Stores','');\">All</a></li>");
                        }
                        List<Region> RegionList = _IRegionRepository.GetRegionByOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString())).ToList();
                        foreach (Region item in RegionList)
                        {
                            //sb.Append("<li><a href=" + Url.Action("Index", "CustomerView", new { id = "Stores", customerid = customerid, regionguid = item.RegionGUID.ToString() }) + " data-groupguid=" + item.RegionGUID + ">" + item.Name + "</a></li>");
                            sb.Append("<li><a onclick=\"RedirectAction('Stores','" + item.RegionGUID + "','" + customerid + "');\" data-groupguid=" + item.RegionGUID + ">" + item.Name + "</a></li>");
                        }
                        sb.Append("</ul>");
                        sb.Append("</div>");
                        sb.Append("</div>");
                        ViewBag.RegionList = sb.ToString();

                        Session["CustomerGUID"] = customerid;
                        if (!string.IsNullOrEmpty(id))
                        {
                            TempData["TabName"] = id;
                        }
                        else
                        {
                            TempData["TabName"] = "Details";
                        }
                        #region Contact Details

                        var peopleList = new PeopleViewModel();
                        peopleList.PeopleList = new List<PeopleModel>();
                        var appPeople = new List<Person>();

                        appPeople = _IPeopleRepository.GetPeopleByPlaceGUID(new Guid(customerid)).ToList();
                        ViewBag.PlaceGUID = customerid;

                        if (appPeople != null && appPeople.Count > 0)
                        {
                            ViewBag.Contact_Search = Contact_Search;
                            if (!string.IsNullOrEmpty(Contact_Search))
                            {
                                Contact_Search = Contact_Search.ToLower();
                                appPeople = appPeople.Where(
                                    p => (!String.IsNullOrEmpty(p.FirstName) && p.FirstName.ToLower().StartsWith(Contact_Search))
                                || (!String.IsNullOrEmpty(p.BusinessPhone) && p.BusinessPhone.ToLower().StartsWith(Contact_Search))
                                || (!String.IsNullOrEmpty(p.MobilePhone) && p.MobilePhone.ToLower().StartsWith(Contact_Search))
                                || (!String.IsNullOrEmpty(p.Emails) && p.Emails.ToLower().StartsWith(Contact_Search))).ToList();
                            }



                            contact_TotalRecord = appPeople.ToList().Count;
                            contact_TotalPage = (contact_TotalRecord / (int)ViewBag.pageContactCountValue) + ((contact_TotalRecord % (int)ViewBag.pageContactCountValue) > 0 ? 1 : 0);

                            ViewBag.Contact_TotalRows = contact_TotalRecord;
                            appPeople = appPeople.OrderBy(a => a.OrganizationGUID).Skip(((page - 1) * (int)ViewBag.pageContactCountValue)).Take((int)ViewBag.pageContactCountValue).ToList();

                            foreach (var people in appPeople.ToList())
                            {
                                peopleList.PeopleList.Add(new PeopleModel
                                {
                                    PeopleGUID = people.PeopleGUID.ToString(),
                                    PlaceGUID = people.PlaceGUID.ToString(),
                                    CompanyName = people.CompanyName,
                                    BusinessPhone = people.BusinessPhone,
                                    MarketGUID = people.MarketGUID.ToString(),
                                    FirstName = people.FirstName,
                                    LastName = people.LastName,
                                    UserGUID = people.UserGUID.ToString(),
                                    OrganizationGUID = people.OrganizationGUID.ToString(),
                                    MobilePhone = people.MobilePhone,
                                    HomePhone = people.HomePhone,
                                    Emails = people.Emails,
                                    AddressLine1 = people.AddressLine1,
                                    AddressLine2 = people.AddressLine2,
                                    City = people.City,
                                    State = people.State,
                                    Country = people.Country,
                                    ZipCode = people.ZipCode,
                                    StoreID = getStoreID(people.PeopleGUID.ToString())

                                });
                            }
                        }

                        var viewModel = new PeopleViewModel();
                        // viewModel.Place = placeList.PlaceList.AsEnumerable();
                        viewModel.People = peopleList.PeopleList.AsEnumerable();
                        pcustomerview.PeopleViewModel = viewModel;
                        #endregion

                        #region Customer Stop Details

                        var marketList = new MarketViewModel();
                        marketList.MarketList = new List<MarketModel>();
                        var appMarket = new List<Market>();
                        if (!string.IsNullOrEmpty(regionguid))
                        {
                            TempData["TabName"] = "Stores";
                            appMarket = _IMarketRepository.GetMarketByOwnerandRegionGUID(new Guid(regionguid), new Guid(customerid), 1).ToList();
                        }
                        else
                        {
                            appMarket = _IMarketRepository.GetMarketByOwnerGUID(new Guid(customerid)).ToList();
                        }

                        if (appMarket != null && appMarket.Count > 0)
                        {
                            ViewBag.Store_Search = Store_Search;
                            if (!string.IsNullOrEmpty(Store_Search))
                            {
                                Store_Search = Store_Search.ToLower();
                                appMarket = appMarket.Where(
                                    p => (!String.IsNullOrEmpty(p.MarketName) && p.MarketName.ToLower().StartsWith(Store_Search))
                                || (!String.IsNullOrEmpty(p.MarketID) && p.MarketID.ToLower().StartsWith(Store_Search))
                                || (!String.IsNullOrEmpty(_IUserProfileRepository.GetUserProfileByUserID(new Guid(p.UserGUID.ToString()), new Guid(p.OrganizationGUID.ToString())).FirstName) && (_IUserProfileRepository.GetUserProfileByUserID(new Guid(p.UserGUID.ToString()), new Guid(p.OrganizationGUID.ToString())).FirstName).ToLower().Contains(Store_Search))
                                || (!String.IsNullOrEmpty(p.MarketPhone) && p.MarketPhone.ToLower().StartsWith(Store_Search))
                                || (!String.IsNullOrEmpty(p.Emails) && p.Emails.ToLower().StartsWith(Store_Search))).ToList();
                            }

                            store_TotalRecord = appMarket.ToList().Count;
                            store_TotalPage = (store_TotalRecord / (int)ViewBag.pageStoreCountValue) + ((store_TotalRecord % (int)ViewBag.pageStoreCountValue) > 0 ? 1 : 0);

                            ViewBag.Store_TotalRows = store_TotalRecord;
                            appMarket = appMarket.OrderBy(a => a.OrganizationGUID).Skip(((page - 1) * (int)ViewBag.pageStoreCountValue)).Take((int)ViewBag.pageStoreCountValue).ToList();

                            foreach (var market in appMarket.ToList())
                            {
                                MarketModel MarketModel = new MarketModel();

                                MarketModel.MarketID = market.MarketID;
                                MarketModel.MarketGUID = market.MarketGUID.ToString();
                                MarketModel.UserGUID = market.UserGUID != null ? market.UserGUID.ToString() : Guid.Empty.ToString();
                                MarketModel.OrganizationGUID = market.OrganizationGUID != null ? market.OrganizationGUID.ToString() : Guid.Empty.ToString();
                                MarketModel.OwnerGUID = market.OwnerGUID != null ? market.OwnerGUID.ToString() : Guid.Empty.ToString();
                                MarketModel.MarketName = market.MarketName;
                                MarketModel.MarketPhone = market.MarketPhone;
                                MarketModel.PrimaryContactGUID = market.PrimaryContactGUID != null ? market.PrimaryContactGUID.ToString() : Guid.Empty.ToString();
                                MarketModel.FirstName = market.FirstName;

                                if (!string.IsNullOrEmpty(market.RMUserID))
                                {
                                    GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByUserID(market.RMUserID, Session["OrganizationGUID"].ToString());
                                    if (_globalUser != null)
                                    {
                                        UserProfile _userprofile = _IUserProfileRepository.GetUserProfileByUserID(_globalUser.UserGUID, new Guid(MarketModel.OrganizationGUID));
                                        if (_userprofile != null)
                                        {
                                            MarketModel.RMName = _userprofile.FirstName + " " + _userprofile.LastName;
                                        }
                                        else
                                        {
                                            MarketModel.RMName = "";
                                        }
                                    }

                                }
                                MarketModel.LastName = market.LastName;
                                MarketModel.MobilePhone = market.MobilePhone;
                                MarketModel.HomePhone = market.HomePhone;
                                MarketModel.Emails = market.Emails;
                                MarketModel.AddressLine1 = market.AddressLine1;
                                MarketModel.AddressLine2 = market.AddressLine2;
                                MarketModel.City = market.City;
                                MarketModel.State = market.State;
                                MarketModel.Country = market.Country;
                                MarketModel.ZipCode = market.ZipCode;
                                MarketModel.RegionGUID = market.RegionGUID != null ? market.RegionGUID.ToString() : Guid.Empty.ToString();
                                MarketModel.TerritoryGUID = market.TerritoryGUID != null ? market.TerritoryGUID.ToString() : Guid.Empty.ToString();
                                MarketModel.RegionName = market.RegionGUID != null ? _IRegionRepository.GetRegionNameByRegionGUID(new Guid(market.RegionGUID.ToString())) : "";
                                MarketModel.TerritoryName = market.TerritoryGUID != null ? _ITerritoryRepository.GetTerritoryNameByTerritoryGUID(new Guid(market.TerritoryGUID.ToString())) : "";
                                marketList.MarketList.Add(MarketModel);
                            }
                        }

                        var mviewModel = new MarketViewModel();
                        //  mviewModel.Place = placeList.PlaceList.AsEnumerable();
                        mviewModel.Market = marketList.MarketList.AsEnumerable();
                        pcustomerview.MarketViewModel = mviewModel;
                        #endregion

                        #region Customer Edit
                        PlaceModel lplace = new PlaceModel();
                        lplace.PlaceGUID = customerid;
                        Place Place = _IPlaceRepository.GetPlaceByID(new Guid(lplace.PlaceGUID));
                        if (Place != null)
                        {
                            lplace.PlaceGUID = Place.PlaceGUID.ToString();
                            lplace.PlaceID = Place.PlaceID;
                            lplace.UserGUID = Place.UserGUID.ToString();
                            lplace.OrganizationGUID = Place.OrganizationGUID != null ? Place.OrganizationGUID.ToString() : Guid.Empty.ToString();
                            lplace.PlaceName = Place.PlaceName;
                            lplace.FirstName = Place.FirstName;
                            lplace.LastName = Place.LastName;
                            lplace.MobilePhone = Place.MobilePhone;
                            lplace.PlacePhone = Place.PlacePhone;
                            lplace.HomePhone = Place.HomePhone;
                            lplace.Emails = Place.Emails;
                            lplace.AddressLine1 = Place.AddressLine1;
                            lplace.AddressLine2 = Place.AddressLine2;
                            lplace.City = Place.City;
                            lplace.State = Place.State;
                            lplace.Country = Place.Country;
                            lplace.ZipCode = Place.ZipCode;
                            Session["PlaceName"] = Place.PlaceName;
                            pcustomerview.PlaceModel = lplace;
                            ViewBag.ClientID = lplace.PlaceGUID.ToString();
                            //UserProfile _userProfile = _IUserProfileRepository.GetUserProfileByUserID(Place.UserGUID);
                            //if (_userProfile != null)
                            //{
                            //    pcustomerview.ManagerName = _userProfile.FirstName + " " + _userProfile.LastName;
                            //}
                            //else
                            //{
                            //    pcustomerview.ManagerName = "";
                            //}

                        }
                        #endregion

                        if (!string.IsNullOrEmpty(Contact_RowCount))
                            ViewBag.pageContactCountValue = int.Parse(Contact_RowCount);
                        else
                            ViewBag.pageContactCountValue = 5;
                        if (!string.IsNullOrEmpty(Store_RowCount))
                            ViewBag.pageStoreCountValue = int.Parse(Store_RowCount);
                        else
                            ViewBag.pageStoreCountValue = 5;
                        bool contact = false;
                        bool store = false;
                        if (null != Request && System.Text.RegularExpressions.Regex.IsMatch(Request.Url.ToString(), string.Format(@"\b{0}\b", "Contacts")))
                            contact = true;
                        if (null != Request && System.Text.RegularExpressions.Regex.IsMatch(Request.Url.ToString(), string.Format(@"\b{0}\b", "Stores")))
                            store = true;

                        if (contact)
                            TempData["TabName"] = "Contacts";
                        else if (store)
                            TempData["TabName"] = "Stores";
                    }
                    return View(pcustomerview);
                }
                else
                {
                    return RedirectToAction("SessionTimeOut", "User");
                }

            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return RedirectToAction("Login", "User");
            }
        }
        public JsonResult SaveItem(string _marketModel)
        {
            //ViewBag.PeopleModelItem = _peopleModel;
            Logger.Debug("Inside People Controller- SaveItem");
            JsonResult result = new JsonResult();
            try
            {
                System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
                var people = js.Deserialize<dynamic>(_marketModel);
                MarketModel Market = new MarketModel();
                Market.MarketName = people["MarketName"];
                Market.RegionGUID = people["RegionGUID"];
                Market.TerritoryGUID = people["TerritoryGUID"];
                Market.FirstName = people["FirstName"];
                Market.LastName = people["LastName"];
                Market.MobilePhone = people["MobilePhone"];
                Market.MarketPhone = people["MarketPhone"];
                Market.HomePhone = people["HomePhone"];
                Market.Emails = people["Email"];
                Market.AddressLine1 = people["Address1"];
                Market.AddressLine2 = people["Address2"];
                Market.City = people["City"];
                Market.State = people["State"];
                Market.Country = people["Country"];
                Market.ZipCode = people["ZipCode"];

                TempData["MarketModel"] = Market;
                result.Data = "success";
                result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
                return result;
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                result.Data = "failure";
                return result;
            }
            //  people["ID"] 

        }
        public ActionResult Delete(string id = "", string customerguid = "")
        {
            Logger.Debug("Inside Market Controller- Delete");
            try
            {
                if (Session["OrganizationGUID"] != null)
                {
                    MarketModel market = new MarketModel();
                    market.MarketGUID = id;
                    _IMarketRepository.DeleteMarket(new Guid(market.MarketGUID));
                    // _IMarketRepository.Save();

                    return RedirectToAction("Index", "CustomerView", new { id = "Stores", customerid = customerguid });
                }
                else
                {
                    return RedirectToAction("SessionTimeOut", "User");
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return RedirectToAction("Index");
            }
        }
        public ActionResult Edit(MarketViewForCreate marketcreate)
        {
            Logger.Debug("Inside Place Controller- Edit Http Post");
            try
            {
                if (Session["OrganizationGUID"] != null)
                {
                    TempData["TabName"] = "Stores";
                    ViewBag.MarketName = !string.IsNullOrEmpty(marketcreate.MarketModel.MarketName) ? marketcreate.MarketModel.MarketName.ToString() : _IMarketRepository.GetMarketByID(new Guid(marketcreate.MarketModel.MarketGUID)).MarketName;
                    DropdownValues();
                    if (ModelState.IsValid)
                    {
                        MarketModel market = new MarketModel();
                        market = marketcreate.MarketModel;
                        Market Market = new Market();
                        Market.MarketGUID = new Guid(market.MarketGUID);
                        Market.MarketID = market.MarketID;
                        Market.IsDefault = true;
                        if (!string.IsNullOrEmpty(market.UserGUID) && market.UserGUID != Guid.Empty.ToString())
                        {
                            Market.UserGUID = new Guid(market.UserGUID);
                        }
                        else
                        {
                            Market.UserGUID = null;
                        }
                        Market.EntityType = market.EntityType;
                        if (!string.IsNullOrEmpty(market.OrganizationGUID) && market.OrganizationGUID != Guid.Empty.ToString())
                        {
                            Market.OrganizationGUID = new Guid(market.OrganizationGUID);
                        }
                        else
                        {
                            Market.OrganizationGUID = new Guid(Session["OrganizationGUID"].ToString());
                        }
                        if (!string.IsNullOrEmpty(market.OwnerGUID) && market.OwnerGUID != Guid.Empty.ToString())
                        {
                            Market.OwnerGUID = new Guid(market.OwnerGUID);
                        }
                        else
                        {
                            Market.OwnerGUID = null;
                        }
                        Market.MarketName = market.MarketName;
                        if (!string.IsNullOrEmpty(market.PrimaryContactGUID) && market.PrimaryContactGUID != Guid.Empty.ToString())
                        {
                            Market.PrimaryContactGUID = new Guid(market.PrimaryContactGUID);
                        }
                        else
                        {
                            Market.PrimaryContactGUID = null;
                        }
                        if (!string.IsNullOrEmpty(market.RegionGUID) && market.RegionGUID != Guid.Empty.ToString())
                        {
                            Market.RegionGUID = new Guid(market.RegionGUID);
                            Region _region = _IRegionRepository.GetRegionByID(new Guid(market.RegionGUID));
                            if (_region != null)
                            {
                                Market.RegionName = _region.Name;
                            }
                        }
                        else
                        {
                            Market.RegionGUID = null;
                        }
                        if (!string.IsNullOrEmpty(market.TerritoryGUID) && market.TerritoryGUID != Guid.Empty.ToString())
                        {
                            Market.TerritoryGUID = new Guid(market.TerritoryGUID);
                            Territory _territory = _ITerritoryRepository.GetTerritoryByID(new Guid(market.TerritoryGUID));
                            if (_territory != null)
                            {
                                Market.TeritoryID = _territory.TerritoryID;
                            }
                        }
                        else
                        {
                            Market.TerritoryGUID = null;
                        }
                        if (!string.IsNullOrEmpty(market.RMUserGUID) && market.RMUserGUID != Guid.Empty.ToString())
                        {
                            GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByID(new Guid(market.RMUserGUID));
                            if (_globalUser != null)
                            {
                                Market.RMUserID = _globalUser.USERID;
                            }
                        }
                        if (!string.IsNullOrEmpty(market.FMUserGUID) && market.FMUserGUID != Guid.Empty.ToString())
                        {
                            GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByID(new Guid(market.FMUserGUID));
                            if (_globalUser != null)
                            {
                                Market.FMUserID = _globalUser.USERID;
                            }
                        }


                        Market.FirstName = market.FirstName;
                        Market.LastName = market.LastName;
                        Market.MobilePhone = market.MobilePhone;
                        Market.MarketPhone = market.MarketPhone;
                        Market.HomePhone = market.HomePhone;
                        Market.Emails = market.Emails;
                        Market.AddressLine1 = market.AddressLine1;
                        Market.AddressLine2 = market.AddressLine2;
                        Market.City = market.City;
                        Market.State = market.State;
                        Market.Country = market.Country;
                        Market.ZipCode = market.ZipCode;
                        Market.CreateDate = Convert.ToDateTime(market.CreateDate);
                        Market.UpdatedDate = DateTime.UtcNow;
                        Market.IsDeleted = false;

                        LatLong latLong = new LatLong();
                        latLong = GetLatLngCode(Market.AddressLine1, Market.AddressLine2, Market.City, Market.State, Market.Country, Market.ZipCode);
                        Market.TimeZone = getTimeZone(latLong.Latitude, latLong.Longitude).ToString();
                        Market.Latitude = latLong.Latitude;
                        Market.Longitude = latLong.Longitude;


                        //As per disscussion with kousik
                        var lWebClient = new WebClient();
                        string lTempData = String.Format(ConfigurationManager.AppSettings.Get("ClientStoreURL"), Market.MarketID);
                        lTempData = lWebClient.DownloadString(lTempData);
                        S_POSStoreResponse lObjPOSResp = new JavaScriptSerializer().Deserialize<S_POSStoreResponse>(lTempData);
                        if (null == lObjPOSResp || !lObjPOSResp.store.apistatus.Equals("OK"))
                        {
                            //If this returns null, return not found error to the mobile
                        }
                        else
                        {
                            Market.StoreJSON = new JavaScriptSerializer().Serialize(lObjPOSResp);
                            Market.StoreJSON = Convert.ToBase64String(Encoding.UTF8.GetBytes(Market.StoreJSON));
                        }


                        int marketUpdateResult = _IMarketRepository.UpdateMarket(Market);
                        //int marketUpdateResult = _IMarketRepository.Save();
                        if (marketUpdateResult > 0)
                        {
                            return RedirectToAction("Index", "CustomerView", new { id = "Stores", customerid = Market.OwnerGUID.ToString() });
                        }
                        else
                        {
                            List<AspUser> RMUserList = new List<AspUser>();
                            var appUser = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString()), "ENT_U_RM").OrderBy(sort => sort.FirstName).ToList();
                            //if (string.IsNullOrEmpty(id))
                            {
                                RMUserList.Add(new AspUser { FirstName = "None", LastName = "", UserGUID = Guid.Empty.ToString(), OrganizationGUID = "" });
                                foreach (var user in appUser.ToList())
                                {
                                    RMUserList.Add(new AspUser { FirstName = user.FirstName, LastName = user.LastName, UserGUID = user.UserGUID.ToString() });
                                }
                            }
                            List<AspUser> FMUserList = new List<AspUser>();
                            var appUserFM = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString()), "ENT_U").OrderBy(sort => sort.FirstName).ToList();
                            //if (string.IsNullOrEmpty(id))
                            {
                                FMUserList.Add(new AspUser { FirstName = "None", LastName = "", UserGUID = Guid.Empty.ToString(), OrganizationGUID = "" });
                                foreach (var user in appUserFM.ToList())
                                {
                                    FMUserList.Add(new AspUser { FirstName = user.FirstName, LastName = user.LastName, UserGUID = user.UserGUID.ToString() });
                                }
                            }

                            marketcreate.RMUser = RMUserList.AsEnumerable();
                            marketcreate.FMUser = FMUserList.AsEnumerable();

                            return View(marketcreate);
                        }

                    }
                    else
                    {
                        List<AspUser> RMUserList = new List<AspUser>();
                        var appUser = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString()), "ENT_U_RM").OrderBy(sort => sort.FirstName).ToList();
                        //if (string.IsNullOrEmpty(id))
                        {
                            RMUserList.Add(new AspUser { FirstName = "None", LastName = "", UserGUID = Guid.Empty.ToString(), OrganizationGUID = "" });
                            foreach (var user in appUser.ToList())
                            {
                                RMUserList.Add(new AspUser { FirstName = user.FirstName, LastName = user.LastName, UserGUID = user.UserGUID.ToString() });
                            }
                        }
                        List<AspUser> FMUserList = new List<AspUser>();
                        var appUserFM = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString()), "ENT_U").OrderBy(sort => sort.FirstName).ToList();
                        //if (string.IsNullOrEmpty(id))
                        {
                            FMUserList.Add(new AspUser { FirstName = "None", LastName = "", UserGUID = Guid.Empty.ToString(), OrganizationGUID = "" });
                            foreach (var user in appUserFM.ToList())
                            {
                                FMUserList.Add(new AspUser { FirstName = user.FirstName, LastName = user.LastName, UserGUID = user.UserGUID.ToString() });
                            }
                        }
                        marketcreate.RMUser = RMUserList.AsEnumerable();
                        marketcreate.FMUser = FMUserList.AsEnumerable();
                        return View(marketcreate);
                    }
                }
                else
                {
                    return RedirectToAction("SessionTimeOut", "User");
                }

            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return RedirectToAction("Login", "User");
            }
        }
        public ActionResult Edit(string id = "", string marketguid = "")
        {
            Logger.Debug("Inside Market Controller- Create");
            try
            {

                if (Session["OrganizationGUID"] != null)
                {
                    Session["CustomerName"] = null;

                    TempData["TabName"] = "Stores";
                    Market EditMarket = _IMarketRepository.GetMarketByID(new Guid(marketguid));
                    MarketModel Market = new MarketModel();
                    if (EditMarket != null)
                    {
                        ViewBag.MarketName = EditMarket.MarketName;
                        Market.MarketGUID = EditMarket.MarketGUID.ToString();
                        Market.MarketID = !string.IsNullOrEmpty(EditMarket.MarketID) ? EditMarket.MarketID.ToString() : "";
                        Market.IsDefault = Convert.ToBoolean(EditMarket.IsDefault);
                        Market.UserGUID = EditMarket.UserGUID != null ? EditMarket.UserGUID.ToString() : Guid.Empty.ToString();
                        Market.EntityType = Convert.ToInt32(EditMarket.EntityType);
                        Market.OrganizationGUID = EditMarket.OrganizationGUID != null ? EditMarket.OrganizationGUID.ToString() : Guid.Empty.ToString();
                        Market.OwnerGUID = EditMarket.OwnerGUID != null ? EditMarket.OwnerGUID.ToString() : Guid.Empty.ToString();
                        Session["CustomerGUID"] = Market.OwnerGUID;
                        //   Market.ContactName = EditMarket.PrimaryContactGUID != null ? _IPeopleRepository.GetPeopleNameByPeopleGUID(new Guid(EditMarket.PrimaryContactGUID.ToString())) : "";
                        Market.MarketName = EditMarket.MarketName;
                        Market.PrimaryContactGUID = EditMarket.PrimaryContactGUID != null ? EditMarket.PrimaryContactGUID.ToString() : Guid.Empty.ToString();
                        Market.RegionGUID = EditMarket.RegionGUID != null ? EditMarket.RegionGUID.ToString() : Guid.Empty.ToString();
                        Market.TerritoryGUID = EditMarket.TerritoryGUID != null ? EditMarket.TerritoryGUID.ToString() : Guid.Empty.ToString();
                        Market.RegionName = EditMarket.RegionName;
                        Market.TerritoryID = EditMarket.TeritoryID;

                        if (!string.IsNullOrEmpty(EditMarket.RMUserID))
                        {
                            GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByUserID(EditMarket.RMUserID, Session["OrganizationGUID"].ToString());
                            if (_globalUser != null)
                            {
                                Market.RMUserGUID = _globalUser.UserGUID.ToString();
                                UserProfile _userprofile = _IUserProfileRepository.GetUserProfileByUserID(_globalUser.UserGUID, new Guid(Market.OrganizationGUID));
                                if (_userprofile != null)
                                {
                                    Market.RMName = _userprofile.FirstName + " " + _userprofile.LastName;
                                }
                            }
                            else
                            {
                                Market.RMUserGUID = Guid.Empty.ToString();

                            }

                        }
                        if (!string.IsNullOrEmpty(EditMarket.FMUserID))
                        {
                            GlobalUser _globalUser = _IGlobalUserRepository.GetGlobalUserByUserID(EditMarket.FMUserID, Session["OrganizationGUID"].ToString());
                            if (_globalUser != null)
                            {
                                Market.FMUserGUID = _globalUser.UserGUID.ToString();
                                UserProfile _userprofile = _IUserProfileRepository.GetUserProfileByUserID(_globalUser.UserGUID, new Guid(Market.OrganizationGUID));
                                if (_userprofile != null)
                                {
                                    Market.FMName = _userprofile.FirstName + " " + _userprofile.LastName;
                                }
                            }
                            else
                            {
                                Market.FMUserGUID = Guid.Empty.ToString();
                            }

                        }
                        Market.FirstName = EditMarket.FirstName;
                        Market.LastName = EditMarket.LastName;
                        Market.MobilePhone = EditMarket.MobilePhone;
                        Market.MarketPhone = EditMarket.MarketPhone;
                        Market.HomePhone = EditMarket.HomePhone;
                        Market.Emails = EditMarket.Emails;
                        Market.AddressLine1 = EditMarket.AddressLine1;
                        Market.AddressLine2 = EditMarket.AddressLine2;
                        Market.City = EditMarket.City;
                        Market.State = EditMarket.State;
                        Market.Country = EditMarket.Country;
                        Market.ZipCode = EditMarket.ZipCode;
                        Market.CreateDate = Convert.ToDateTime(EditMarket.CreateDate);


                    }


                    DropdownValues();
                    if (Market != null && !string.IsNullOrEmpty(Market.RegionGUID))
                    {
                        var TerritoryDetails = _ITerritoryRepository.GetTerritoryByRegionGUID(new Guid(Market.RegionGUID)).ToList().OrderBy(r => r.Name).Select(r => new SelectListItem
                        {
                            Value = r.TerritoryGUID.ToString(),
                            Text = r.Name
                        });
                        ViewBag.TerritoryDetails = new SelectList(TerritoryDetails, "Value", "Text");

                    }

                    List<AspUser> RMUserList = new List<AspUser>();
                    var appUser = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString()), "ENT_U_RM").OrderBy(sort => sort.FirstName).ToList();
                    //if (string.IsNullOrEmpty(id))
                    {
                        RMUserList.Add(new AspUser { FirstName = "None", LastName = "", UserGUID = Guid.Empty.ToString(), OrganizationGUID = "" });
                        foreach (var user in appUser.ToList())
                        {
                            RMUserList.Add(new AspUser { FirstName = user.FirstName, LastName = user.LastName, UserGUID = user.UserGUID.ToString() });
                        }
                    }
                    List<AspUser> FMUserList = new List<AspUser>();
                    var appUserFM = _IUserProfileRepository.GetUserProfilesbyOrganizationGUID(new Guid(Session["OrganizationGUID"].ToString()), "ENT_U").OrderBy(sort => sort.FirstName).ToList();
                    //if (string.IsNullOrEmpty(id))
                    {
                        FMUserList.Add(new AspUser { FirstName = "None", LastName = "", UserGUID = Guid.Empty.ToString(), OrganizationGUID = "" });
                        foreach (var user in appUserFM.ToList())
                        {
                            FMUserList.Add(new AspUser { FirstName = user.FirstName, LastName = user.LastName, UserGUID = user.UserGUID.ToString() });
                        }
                    }
                    var MarketViewForCreate = new MarketViewForCreate();
                    MarketViewForCreate.RMUser = RMUserList.AsEnumerable();
                    MarketViewForCreate.FMUser = FMUserList.AsEnumerable();
                    MarketViewForCreate.MarketModel = Market;
                    return View(MarketViewForCreate);
                }
                else
                {
                    return RedirectToAction("SessionTimeOut", "User");
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return RedirectToAction("Login", "User");
            }
        }