public async Task <ScadenzaViewModel> EditScadenzaAsync(ScadenzaEditInputModel inputModel) { Scadenza scadenza = await dbContext.Scadenze.FindAsync(inputModel.IDScadenza); if (scadenza == null) { throw new ScadenzaNotFoundException(inputModel.IDScadenza); } try { //Mapping scadenza.Beneficiario = inputModel.Beneficiario; scadenza.DataScadenza = inputModel.DataScadenza; scadenza.DataPagamento = inputModel.DataPagamento; scadenza.GiorniRitardo = inputModel.GiorniRitardo; scadenza.Sollecito = inputModel.Sollecito; scadenza.Importo = inputModel.Importo; scadenza.IDBeneficiario = inputModel.IDBeneficiario; scadenza.IDUser = user.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value; dbContext.Update(scadenza); await dbContext.SaveChangesAsync(); } catch (Exception ex) { throw new Exception(ex.Message); } return(ScadenzaViewModel.FromEntity(scadenza)); }
public async Task <ScadenzaViewModel> EditScadenzaAsync(ScadenzaEditInputModel inputModel) { ScadenzaViewModel viewModel = await scadenzaService.EditScadenzaAsync(inputModel); memoryCache.Remove($"Scadenze{inputModel.IDScadenza}"); return(viewModel); }
public async Task <IActionResult> Edit(ScadenzaEditInputModel inputModel) { inputModel.Beneficiario = service.GetBeneficiarioById(inputModel.IDBeneficiario); if (ModelState.IsValid) { if (inputModel.DataPagamento.HasValue) { inputModel.GiorniRitardo = service.DateDiff(inputModel.DataScadenza, inputModel.DataPagamento.Value); } else { inputModel.GiorniRitardo = service.DateDiff(inputModel.DataScadenza, DateTime.Now.Date); } await service.EditScadenzaAsync(inputModel); //Gestione Ricevute if (Ricevute != null) { await ricevute.CreateRicevutaAsync(Ricevute); } Ricevute = null; TempData["Message"] = "Aggiornamento effettuato correttamente".ToUpper(); return(RedirectToAction("Index")); } else { ViewData["Title"] = "Aggiorna Scadenza".ToUpper(); inputModel.Beneficiari = service.GetBeneficiari; return(View(inputModel)); } }
public async Task <ScadenzaEditInputModel> GetScadenzaForEditingAsync(int id) { logger.LogInformation("Ricevuto identificativo scadenza {id}", id); IQueryable <ScadenzaEditInputModel> queryLinq = dbContext.Scadenze .AsNoTracking() .Where(scadenza => scadenza.IDScadenza == id) .Select(scadenza => ScadenzaEditInputModel.FromEntity(scadenza)); //Usando metodi statici come FromEntity, la query potrebbe essere inefficiente. Mantenere il mapping nella lambda oppure usare un extension method personalizzato ScadenzaEditInputModel viewModel = await queryLinq.FirstOrDefaultAsync(); if (viewModel == null) { logger.LogWarning("Scadenza {id} not found", id); throw new ScadenzaNotFoundException(id); } return(viewModel); }