public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var userFactory = new UserFactory();
                var user = userFactory.GetUserById(model.UserName, model.Password);
                //var user = await Factory.FindAsync(model.UserName, model.Password);
                if (user != null)
                {
                    return RedirectToLocal(returnUrl);
                }
                else
                {
                    ModelState.AddModelError("", "Invalid username or password.");
                }
            }

            // Keep returnUrl not to kick user out to landing page
            ViewBag.ReturnUrl = returnUrl;

            // If we got this far, something failed, redisplay form
            return View(model);
        }
        public JsonResult UserLogin(LoginViewModel data)
        {
            try
            {

                using (ISEEEntities context = new ISEEEntities())
                {
                    var query = from f in context.Factories.ToList()
                                join fp in context.FactoryParms on
                                 f.FactoryId equals fp.FactoryId
                                join fd in context.FactoryDistances on
                                f.FactoryId equals fd.FactoryId
                                join country in context.Countries on
                                fp.Country equals country.CountryCode

                                where (String.Compare(f.UserName, data.UserName, StringComparison.OrdinalIgnoreCase) == 0) &&
                                (String.CompareOrdinal(f.Password, data.Password) == 0)

                                select new
                                {
                                    FactoryGuid = (Guid)f.FactoryKey,
                                    FactoryDesc = f.FactoryDesc,
                                    FactoryID = f.FactoryId,
                                    Country = fp.Country,
                                    CountryDesc = country.CountryDesc,
                                    StopEmployeeTime = (int)fp.StopEmployeeTime,
                                    SlipTime = fp.SplitTime,
                                    Lat = (double)fp.Lat,
                                    Long = (double)fp.Long,
                                    Zoom = (int)fp.Zoom,
                                    MapProvider = (int)fp.MapProvider,
                                    SmsProvider = (int)fp.SmsProvider,
                                    PhoneAreaCode = fp.PhoneAreaCode,
                                    CompanyLogo = fp.CompanyLogo,
                                    CurrentGmt = country.CurrentGmt,
                                    MapSearchModule = fd.MapSearchModule,
                                    RadiusSearch = fd.RadiusSearch,
                                    TopEmployeeSearch = fd.TopEmployeeSearch,
                                    ZoomSearchLevel = fd.ZoomSearchLevel,
                                    CalendarShowRadius = fd.CalendarShowRadius,
                                    CalenderShowZoomLevel = fd.CalenderShowZoomLevel,
                                };

                    var loginData = query.ToList()[0];
                    SessionManagement.FactoryID = loginData.FactoryID;
                    SessionManagement.FactoryDesc = loginData.FactoryDesc;
                    SessionManagement.CountryDesc = loginData.CountryDesc;
                    SessionManagement.FactoryID = loginData.FactoryID;
                    SessionManagement.Country = loginData.Country;
                    SessionManagement.CurrentGmt = loginData.CurrentGmt;
                    SessionManagement.SmsProvider = loginData.SmsProvider;
                    SessionManagement.PhoneAreaCode = loginData.PhoneAreaCode;
                    SessionManagement.MapProvider = loginData.MapProvider;
                    //SessionManegment.SessionManagement. = loginData.;
                    //SessionManegment.SessionManagement. = loginData.;
                    //SessionManegment.SessionManagement. = loginData.;
                    //SessionManegment.SessionManagement. = loginData.;
                    //SessionManegment.SessionManagement. = loginData.;
                    var defaultLang = context.MainStringTables.ToList();
                    if (SessionManagement.Language.Contains("CL"))
                    {
                        SessionManagement.Sunday = defaultLang.Where(x => x.DefaultLanguage == "Sunday").Select(x => x.HE).FirstOrDefault();
                        SessionManagement.Monday = defaultLang.Where(x => x.DefaultLanguage == "Monday").Select(x => x.HE).FirstOrDefault();
                        SessionManagement.Tuesday = defaultLang.Where(x => x.DefaultLanguage == "Tuesday").Select(x => x.HE).FirstOrDefault();
                        SessionManagement.Wednesday = defaultLang.Where(x => x.DefaultLanguage == "Wednesday").Select(x => x.HE).FirstOrDefault();
                        SessionManagement.Thursday = defaultLang.Where(x => x.DefaultLanguage == "Thursday").Select(x => x.HE).FirstOrDefault();
                        SessionManagement.Friday = defaultLang.Where(x => x.DefaultLanguage == "Friday").Select(x => x.HE).FirstOrDefault();
                        SessionManagement.Saturday = defaultLang.Where(x => x.DefaultLanguage == "Saturday").Select(x => x.HE).FirstOrDefault();
                        //SessionManagement.Language
                    }
                    else if (SessionManagement.Language == "RU")
                    {
                        SessionManagement.Sunday = defaultLang.Where(x => x.DefaultLanguage == "Sunday").Select(x => x.RU).FirstOrDefault();
                        SessionManagement.Monday = defaultLang.Where(x => x.DefaultLanguage == "Monday").Select(x => x.RU).FirstOrDefault();
                        SessionManagement.Tuesday = defaultLang.Where(x => x.DefaultLanguage == "Tuesday").Select(x => x.RU).FirstOrDefault();
                        SessionManagement.Wednesday = defaultLang.Where(x => x.DefaultLanguage == "Wednesday").Select(x => x.RU).FirstOrDefault();
                        SessionManagement.Thursday = defaultLang.Where(x => x.DefaultLanguage == "Thursday").Select(x => x.RU).FirstOrDefault();
                        SessionManagement.Friday = defaultLang.Where(x => x.DefaultLanguage == "Friday").Select(x => x.RU).FirstOrDefault();
                        SessionManagement.Saturday = defaultLang.Where(x => x.DefaultLanguage == "Saturday").Select(x => x.RU).FirstOrDefault();
                        //SessionManagement.Language
                    }

                    else if (SessionManagement.Language.Contains("MX"))
                    {
                        SessionManagement.Sunday = defaultLang.Where(x => x.DefaultLanguage == "Sunday").Select(x => x.ES).FirstOrDefault();
                        SessionManagement.Monday = defaultLang.Where(x => x.DefaultLanguage == "Monday").Select(x => x.ES).FirstOrDefault();
                        SessionManagement.Tuesday = defaultLang.Where(x => x.DefaultLanguage == "Tuesday").Select(x => x.ES).FirstOrDefault();
                        SessionManagement.Wednesday = defaultLang.Where(x => x.DefaultLanguage == "Wednesday").Select(x => x.ES).FirstOrDefault();
                        SessionManagement.Thursday = defaultLang.Where(x => x.DefaultLanguage == "Thursday").Select(x => x.ES).FirstOrDefault();
                        SessionManagement.Friday = defaultLang.Where(x => x.DefaultLanguage == "Friday").Select(x => x.ES).FirstOrDefault();
                        SessionManagement.Saturday = defaultLang.Where(x => x.DefaultLanguage == "Saturday").Select(x => x.ES).FirstOrDefault();
                        //SessionManagement.Language
                    }

                    else if (SessionManagement.Language == "DE")
                    {
                        SessionManagement.Sunday = defaultLang.Where(x => x.DefaultLanguage == "Sunday").Select(x => x.DE).FirstOrDefault();
                        SessionManagement.Monday = defaultLang.Where(x => x.DefaultLanguage == "Monday").Select(x => x.DE).FirstOrDefault();
                        SessionManagement.Tuesday = defaultLang.Where(x => x.DefaultLanguage == "Tuesday").Select(x => x.DE).FirstOrDefault();
                        SessionManagement.Wednesday = defaultLang.Where(x => x.DefaultLanguage == "Wednesday").Select(x => x.DE).FirstOrDefault();
                        SessionManagement.Thursday = defaultLang.Where(x => x.DefaultLanguage == "Thursday").Select(x => x.DE).FirstOrDefault();
                        SessionManagement.Friday = defaultLang.Where(x => x.DefaultLanguage == "Friday").Select(x => x.DE).FirstOrDefault();
                        SessionManagement.Saturday = defaultLang.Where(x => x.DefaultLanguage == "Saturday").Select(x => x.DE).FirstOrDefault();
                        //SessionManagement.Language
                    }

                    else
                    {
                        SessionManagement.Sunday = defaultLang.Where(x => x.DefaultLanguage == "Sunday").Select(x => x.EN).FirstOrDefault();
                        SessionManagement.Monday = defaultLang.Where(x => x.DefaultLanguage == "Monday").Select(x => x.EN).FirstOrDefault();
                        SessionManagement.Tuesday = defaultLang.Where(x => x.DefaultLanguage == "Tuesday").Select(x => x.EN).FirstOrDefault();
                        SessionManagement.Wednesday = defaultLang.Where(x => x.DefaultLanguage == "Wednesday").Select(x => x.EN).FirstOrDefault();
                        SessionManagement.Thursday = defaultLang.Where(x => x.DefaultLanguage == "Thursday").Select(x => x.EN).FirstOrDefault();
                        SessionManagement.Friday = defaultLang.Where(x => x.DefaultLanguage == "Friday").Select(x => x.EN).FirstOrDefault();
                        SessionManagement.Saturday = defaultLang.Where(x => x.DefaultLanguage == "Saturday").Select(x => x.EN).FirstOrDefault();
                        //SessionManagement.Language
                    }

                }
            }
            catch (Exception)
            {

                throw;
            }

            //using (ISEEEntities context = new ISEEEntities())
            //{
            //    var user = context.Factories.Where(d => d.UserName == data.UserName && d.Password == data.Password).Select(x => x.FactoryId).FirstOrDefault();
            //}
            return new JsonResult { Data = 1, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }