public ActionResult EditUser([DataSourceRequest] DataSourceRequest request, AdministratorRead product) { if (product != null && ModelState.IsValid) { // productService.Update(product); } return(Json(new[] { product }.ToDataSourceResult(request, ModelState))); }
public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { //if (!ModelState.IsValid) //{ // return View(model); //} AdministratorRead jeeUser = null; HttpClient Client = new HttpClient(); var dotNetUser = await UserManager.FindByEmailAsync(model.Email); var dotNetUser2 = await UserManager.FindByNameAsync(model.Email); if (dotNetUser == null && dotNetUser2 == null) //user n'existe pas , ni par email ou login { Client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = Client.GetAsync("http://localhost:18080/gestion-resources-humaine-web/api/adnene/user/getUserByEmailAndPassword/" + model.Email + "/" + model.Password).Result; if (response.IsSuccessStatusCode) { jeeUser = response.Content.ReadAsAsync <AdministratorRead>().Result; } if (jeeUser == null || jeeUser.email == null) //si recherche user par mail ne marche pas , on cherche par login { HttpResponseMessage response2 = Client.GetAsync("http://localhost:18080/gestion-resources-humaine-web/api/adnene/user/getUserByLogin/" + model.Email).Result; if (response2.IsSuccessStatusCode) { jeeUser = response2.Content.ReadAsAsync <AdministratorRead>().Result; } } if (jeeUser != null) { ApplicationUser user = null; if (jeeUser.address != null) { user = new ApplicationUser { jeeUserId = jeeUser.id, UserName = jeeUser.login, Email = jeeUser.email, role = jeeUser.role, country = jeeUser.address.country, state = jeeUser.address.state, city = jeeUser.address.city, street = jeeUser.address.addressLine2, zipCode = jeeUser.address.zipCode, cin = jeeUser.cin, first_name = jeeUser.first_name, last_name = jeeUser.last_name, house_number = jeeUser.address.addressLine1, phone_number = jeeUser.phone_number, PhoneNumber = jeeUser.phone_number, picture = jeeUser.picture, registration_date = DateTime.Now, status = jeeUser.status } } ; else { user = new ApplicationUser { jeeUserId = jeeUser.id, UserName = jeeUser.login, Email = jeeUser.email, role = jeeUser.role, cin = jeeUser.cin, first_name = jeeUser.first_name, last_name = jeeUser.last_name, phone_number = jeeUser.phone_number, PhoneNumber = jeeUser.phone_number, picture = jeeUser.picture, registration_date = DateTime.Today, status = jeeUser.status } }; var result2 = await UserManager.CreateAsync(user, model.Password); if (result2.Succeeded) { //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); } else { AddErrors(result2); return(View(model)); } } } HttpResponseMessage response3 = Client.GetAsync("http://localhost:18080/gestion-resources-humaine-web/api/login/login/password").Result; if (response3.IsSuccessStatusCode) { IEnumerable <string> headerValues = response3.Headers.GetValues("Authorization"); List <string> l = headerValues.ToList <string>(); string bearer = l.First <string>(); string token = bearer.Substring("Bearer ".Length).Trim(); Session["JeeToken"] = token; Debug.WriteLine(token); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true ApplicationUser appUser = await UserManager.FindByEmailAsync(model.Email); if (appUser == null) { appUser = await UserManager.FindByNameAsync(model.Email); } var result = SignInStatus.Failure; if (appUser != null && !appUser.status.Equals("blocked") && !(appUser.status.Equals("pending"))) { result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false); if (result == SignInStatus.Failure)// si l'utilisateur entre une adresse email au lieu du login ,alors il le trouve pas eet donc on doit recuperer le login pour se connecter { var userByMail = UserManager.FindByEmail(model.Email); if (userByMail != null) { result = await SignInManager.PasswordSignInAsync(userByMail.UserName, model.Password, model.RememberMe, shouldLockout : false); } } } switch (result) { case SignInStatus.Success: Session["dotNetUser"] = appUser; // type=ApplicationUser Session["JeeUser"] = jeeUser; //type=Models.AdministratorRead return(RedirectToLocal(returnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login attempt."); return(View(model)); } }