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");
            }
        }
        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 Create(string id = "", string customerid = "")
        {
            Logger.Debug("Inside Market Controller- Create");
            try
            {

                if (Session["OrganizationGUID"] != null)
                {
                    Session["CustomerName"] = null;
                    Session["CustomerGUID"] = customerid;
                    TempData["TabName"] = "Stores";
                    DropdownValues();

                    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();

                    return View(MarketViewForCreate);
                }
                else
                {
                    return RedirectToAction("SessionTimeOut", "User");
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return RedirectToAction("Login", "User");
            }
        }