public Task BindModelAsync(ModelBindingContext bindingContext) { int.TryParse(bindingContext.ValueProvider.GetValue("Page").FirstValue, out int page); SpeseOptions options = speseOptions.CurrentValue; var inputModel = new SpeseListInputModel(page, options.PerPage); bindingContext.Result = ModelBindingResult.Success(inputModel); return(Task.CompletedTask); }
public async Task <IActionResult> Index(SpeseListInputModel input) { ViewData["Title"] = "Elenco delle spese"; ListViewModel <SpeseViewModel> spese = await spesaService.GetSpeseAsync(input); SpeseListViewModel viewModel = new SpeseListViewModel { Spese = spese, Input = input }; return(View(viewModel)); }
public async Task <ListViewModel <SpeseViewModel> > GetSpeseAsync(SpeseListInputModel model) { string mese = DateTime.Now.ToString("MM"); string anno = DateTime.Now.ToString("yyyy"); string mesePrec1 = DateTime.Now.AddMonths(-1).ToString("MM"); string annoPrec1 = DateTime.Now.AddMonths(-1).ToString("yyyy"); string mesePrec2 = DateTime.Now.AddMonths(-2).ToString("MM"); string annoPrec2 = DateTime.Now.AddMonths(-2).ToString("yyyy"); FormattableString query = $@"SELECT IdSpesa, Descrizione, Importo, Valuta, Mese, Anno FROM Spese WHERE Mese LIKE {mese} AND Anno LIKE {anno} ORDER BY IdSpesa DESC LIMIT {model.Limit} OFFSET {model.Offset}; SELECT COUNT(*) FROM Spese WHERE Mese LIKE {mese} AND Anno LIKE {anno}; SELECT COUNT(*) FROM Spese WHERE Mese LIKE {mesePrec1} AND Anno LIKE {annoPrec1}; SELECT COUNT(*) FROM Spese WHERE Mese LIKE {mesePrec2} AND Anno LIKE {annoPrec2}; SELECT SUM(Importo) FROM Spese WHERE Mese LIKE {mese} AND Anno LIKE {anno};"; DataSet dataSet = await db.QueryAsync(query); var dataTable = dataSet.Tables[0]; var speseList = new List <SpeseViewModel>(); foreach (DataRow speseRow in dataTable.Rows) { SpeseViewModel speseViewModel = SpeseViewModel.FromDataRow(speseRow); speseList.Add(speseViewModel); } ListViewModel <SpeseViewModel> result = new ListViewModel <SpeseViewModel> { Results = speseList, TotalCount = Convert.ToInt32(dataSet.Tables[1].Rows[0][0]), TotalMese = Convert.ToInt32(dataSet.Tables[1].Rows[0][0]), Total1MesePrec = Convert.ToInt32(dataSet.Tables[2].Rows[0][0]), Total2MesePrec = Convert.ToInt32(dataSet.Tables[3].Rows[0][0]), TotaleSpese = Convert.ToString(dataSet.Tables[4].Rows[0][0]) }; return(result); }