public ActionResult register_new(adminModel adminModel) { var error_message = new object(); if (string.IsNullOrWhiteSpace(adminModel.adminName) || string.IsNullOrWhiteSpace(adminModel.adminLastName) || string.IsNullOrWhiteSpace(adminModel.adminPassword) || string.IsNullOrWhiteSpace(adminModel.adminEmail)) { error_message = "error, something went wrong with the request"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } List <Admin> admins = new List <Admin>(); using (var api = new HttpClient()) { api.BaseAddress = new Uri("https://localhost:44343/api/admin/"); api.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var get_admin = api.GetAsync("all"); get_admin.Wait(); var result = get_admin.Result; if (result.StatusCode == HttpStatusCode.OK) { var s = result.Content.ReadAsAsync <List <Admin> >(); s.Wait(); admins = s.Result; } else if (result.StatusCode == HttpStatusCode.NotFound) { var s = result.Content.ReadAsAsync <List <Admin> >(); s.Wait(); admins = s.Result; } } if (admins.Count() > 0) { error_message = "error, admin exists"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } var salt = EncryptionVerifiers.generate_salt(); var real_password = EncryptionVerifiers.encrypt_value(salt, adminModel.adminPassword); Admin admin = new Admin { Email = adminModel.adminEmail, FirstName = adminModel.adminName, LastName = adminModel.adminLastName, Password = real_password, Salt = salt }; var flag = false; using (var api = new HttpClient()) { api.BaseAddress = new Uri("https://localhost:44343/api/admin/"); api.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var post = api.PostAsJsonAsync <Admin>("new", admin); post.Wait(); var result = post.Result; if (result.StatusCode == HttpStatusCode.Created) { var s = result.Content.ReadAsAsync <bool>(); s.Wait(); flag = s.Result; } else if (result.StatusCode == HttpStatusCode.NotFound) { var s = result.Content.ReadAsAsync <bool>(); s.Wait(); flag = s.Result; } else { error_message = "error, internal server error please try again later"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } } if (!flag) { error_message = "error, could not regsiter at this moment, please try again later"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } else { //FormsAuthentication.SetAuthCookie(admin.Email, false); error_message = Url.Action("Login", "login"); return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } }
public ActionResult sign_in(AdminLogin adminlog) { var error_message = new object(); if (string.IsNullOrWhiteSpace(adminlog.adminLoginEmail) || string.IsNullOrWhiteSpace(adminlog.adminLoginPassword)) { error_message = "error, bad request could not be processed further"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } //call admin object and verify Admin admin = new Admin(); using (var api = new HttpClient()) { api.BaseAddress = new Uri("https://localhost:44343/api/admin/"); api.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var post = api.PostAsJsonAsync <string>("search/email", adminlog.adminLoginEmail); post.Wait(); var result = post.Result; if (result.StatusCode == HttpStatusCode.OK) { var s = result.Content.ReadAsAsync <Admin>(); s.Wait(); admin = s.Result; } else if (result.StatusCode == HttpStatusCode.NotFound) { var s = result.Content.ReadAsAsync <Admin>(); s.Wait(); admin = s.Result; } else { error_message = "error, internal server error please try again later"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } } //if not admin exist please return the admin error view if (admin == null) { error_message = "error, admin does not exists"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } var pass = EncryptionVerifiers.encrypt_value(admin.Salt, adminlog.adminLoginPassword); if (pass == admin.Password) { FormsAuthentication.SetAuthCookie(admin.Email, false); AdminSession session = new AdminSession { sessionId = admin.AdminId }; Session["adSession"] = session; error_message = Url.Action("home", "admin"); return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } else { error_message = "error, bad credentials"; return(Json(error_message, "application/json; charset=utf-8", Encoding.UTF8, JsonRequestBehavior.DenyGet)); } }