using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Newtonsoft.Json; using System.Text; using VirtualTask.Models; using X.PagedList; namespace VirtualTask.Controllers { public class Rapp_NewController : Controller { string apiUrl = string.Empty; string urlBase = string.Empty; string token = string.Empty; HttpClient client; public Rapp_NewController() { client = new HttpClient(); } #region INDEX public IActionResult Index(string searchString, int? page = 1) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); if (string.IsNullOrEmpty(token)) return RedirectToAction("Index", "Login"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "rappnewList"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); client = new HttpClient(); client.BaseAddress = baseAddress; List modelList = new List(); HttpResponseMessage response = client.GetAsync(baseAddress).Result; if (response.IsSuccessStatusCode) { string data = response.Content.ReadAsStringAsync().Result; modelList = JsonConvert.DeserializeObject>(data); } if (!string.IsNullOrEmpty(searchString)) { modelList = modelList.Where(s => s.descrizione_intervento.ToUpper().Contains(searchString.ToUpper())).ToList(); ViewData["CurrentFilter"] = searchString; } else ViewData["CurrentFilter"] = null; if (page != null && page < 1) { page = 1; } var pageSize = 10; var shortLinks = modelList .OrderByDescending(s => s.seriale_rapportino) .ToPagedList(page ?? 1, pageSize); return View(shortLinks); } #endregion INDEX #region CREATE public IActionResult Create() { ViewBag.AllStockList = LoadStockitems(); return View(); } [HttpPost] public IActionResult Create(Rapp_New model) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); if (string.IsNullOrEmpty(token)) return RedirectToAction("Index", "Login"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "rappnew/add"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); client.BaseAddress = baseAddress; string data = JsonConvert.SerializeObject(model); StringContent content = new StringContent(data, Encoding.UTF8, "application/json"); HttpResponseMessage response = client.PostAsync(baseAddress, content).Result; if (response.IsSuccessStatusCode) { return RedirectToAction("Index"); } return View(); } #endregion CREATE #region DETAIL public IActionResult Details(string id) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "rappnewList"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); client = new HttpClient(); client.BaseAddress = baseAddress; Rapp_New rapp = new Rapp_New(); List modelList = new List(); HttpResponseMessage response = client.GetAsync(baseAddress).Result; if (response.IsSuccessStatusCode) { string data = response.Content.ReadAsStringAsync().Result; modelList = JsonConvert.DeserializeObject>(data); rapp = modelList.Where(x => x.seriale_rapportino.Equals(id)).First(); } return View(rapp); } #endregion DETAIL #region EDIT public IActionResult Edit(string id) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "rappnewList"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); client = new HttpClient(); client.BaseAddress = baseAddress; Rapp_New rapp = new Rapp_New(); List modelList = new List(); HttpResponseMessage response = client.GetAsync(baseAddress).Result; if (response.IsSuccessStatusCode) { string data = response.Content.ReadAsStringAsync().Result; modelList = JsonConvert.DeserializeObject>(data); rapp = modelList.Where(x => x.seriale_rapportino.Equals(id)).First(); } return View(rapp); } [HttpPost] public IActionResult Edit(Rapp_New rapp) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "rappnew/mod"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); client = new HttpClient(); client.BaseAddress = baseAddress; string data = JsonConvert.SerializeObject(rapp); StringContent content = new StringContent(data, Encoding.UTF8, "application/json"); HttpResponseMessage response = client.PostAsync(baseAddress, content).Result; if (response.IsSuccessStatusCode) { return RedirectToAction("Index"); } return View(rapp); } #endregion EDIT #region DELETE [HttpGet] public IActionResult Delete(string id) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "rappnewList"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); client = new HttpClient(); client.BaseAddress = baseAddress; Rapp_New rapp = new Rapp_New(); List modelList = new List(); HttpResponseMessage response = client.GetAsync(baseAddress).Result; if (response.IsSuccessStatusCode) { string data = response.Content.ReadAsStringAsync().Result; modelList = JsonConvert.DeserializeObject>(data); rapp = modelList.Where(x => x.seriale_rapportino.Equals(id)).First(); } return View(rapp); } [HttpPost, ActionName("DeleteConfirmed")] public IActionResult DeleteConfirmed(string id) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "rappnew/del?" + "serialeRapportino=" + id + "&"; urlBase = urlBase + "token=" + token; Uri baseAddress = new Uri(urlBase); client = new HttpClient(); client.BaseAddress = baseAddress; string data = JsonConvert.SerializeObject(id); StringContent content = new StringContent(data, Encoding.UTF8, "application/json"); HttpResponseMessage response = client.PostAsync(baseAddress, content).Result; if (response.IsSuccessStatusCode) { return RedirectToAction("Index"); } return View(); } #endregion DELETE //metodo per avere riempire combobox con la tabella delle chiusure private List LoadStockitems() { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); apiUrl = helper.GetStringValue("apiUrl"); urlBase = apiUrl + "codici_chiusura"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); client = new HttpClient(); client.BaseAddress = baseAddress; List selectItems = new List(); List modelList = new List(); HttpResponseMessage response = client.GetAsync(baseAddress).Result; if (response.IsSuccessStatusCode) { string data = response.Content.ReadAsStringAsync().Result; modelList = JsonConvert.DeserializeObject>(data); foreach (var role in modelList) { SelectListItem listItem = new SelectListItem(); listItem.Value = role.cccodice; listItem.Text = role.ccdescr; selectItems.Add(listItem); } } return selectItems; } } }