public async Task <IActionResult> Settings() { if (string.IsNullOrEmpty(HttpContext.Session.GetString("HomeID"))) { return(RedirectToAction("Login", "Home")); } var settings = new HomeSettingPostViewModel(); using (var httpClient = new HttpClient()) { var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/settings"; httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString()); httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString()); using (var response = await httpClient.GetAsync(requestUri)) { string content = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { settings = JsonConvert.DeserializeObject <HomeSettingPostViewModel>(content); } } } if (settings != null) { return(View(settings)); } return(View()); }
public async Task <IActionResult> Settings(HomeSettingPostViewModel settings) { if (settings.RentDueDateDay <= 0 || settings.RentDueDateDay >= 28) { ModelState.AddModelError("RentDueDateDay", "Rent due date day value can only be between 1 and 27, included."); return(View(settings)); } using (var httpClient = new HttpClient()) { var requestUri = $"{Configuration.DefaultAPI}/{CurrentControllerName}/settings"; httpClient.DefaultRequestHeaders.Add("CurrentUserID", CurrentUserID.ToString()); httpClient.DefaultRequestHeaders.Add("CurrentHomeID", CurrentHomeID.ToString()); using (var response = await httpClient.PostAsJsonAsync(requestUri, settings)) { var content = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { settings = JsonConvert.DeserializeObject <HomeSettingPostViewModel>(content); if (settings.ChangeHttpSession) { HttpContext.Session.SetString("HomeName", settings.HomeName); } } } } return(RedirectToAction(nameof(Index))); }
public ActionResult PostHomeSettings([FromBody] HomeSettingPostViewModel settings) { try { var currentUserID = 0l; var currentHomeID = 0l; var re = Request; var headers = re.Headers; if (headers.ContainsKey("CurrentUserID")) { currentUserID = long.Parse(headers.GetCommaSeparatedValues("CurrentUserID").FirstOrDefault()); } if (headers.ContainsKey("CurrentHomeID")) { currentHomeID = long.Parse(headers.GetCommaSeparatedValues("CurrentHomeID").FirstOrDefault()); } var settingsExists = new BaseCRUDService(currentUserID).GetEntity <HomeSettingPostViewModel>(x => x.HomeID == currentHomeID); if (settingsExists != null) { settings.ID = settingsExists.ID; } settings.HomeID = currentHomeID; var home = new BaseCRUDService(currentUserID).GetEntity <HomePostViewModel>(currentHomeID); var currentHomeName = home.Name; if (!string.IsNullOrEmpty(settings.HomeName) && !home.Name.Equals(settings.HomeName)) { home.Name = settings.HomeName; new BaseCRUDService(currentUserID).Save(home); } settings = new BaseCRUDService(currentUserID).Save(settings); if (!string.IsNullOrEmpty(settings.HomeName) && !currentHomeName.Equals(settings.HomeName)) { settings.ChangeHttpSession = true; } if (settings != null) { return(Ok(settings)); } else { return(NotFound()); } } catch (System.Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, $"{ex.Message}")); } }