// Update status Of Abonament // Verificam daca a expirat abonament (in functie de data) // Verificam daca a atins nr maxim de sedinte public void RefreshStatusAbonament(int abonamentID, ReportDbContext context) { AbonamentModel abonament = GetAbonamentByAbID(abonamentID, context); if (abonament == null) { return; } if (abonament.NrSedinteEfectuate >= abonament.TipAbonament.NrTotalSedinte) { abonament.StareAbonament = StareAbonament.Finalizat; context.Update(abonament); context.SaveChanges(); return; } if (abonament.DataStop <= DateTime.Now) { abonament.StareAbonament = StareAbonament.Finalizat; context.Update(abonament); context.SaveChanges(); return; } if ((abonament.DataStop - abonament.DataStart).TotalDays > 32) { abonament.StareAbonament = StareAbonament.Extins; } else { abonament.StareAbonament = StareAbonament.Activ; } context.Update(abonament); context.SaveChanges(); }
// Is Abonament coupled to Antrenament? public bool IsAbonamentInAntrenament(AbonamentModel abonament, AntrenamentModel antrenament, ReportDbContext context) { if (context.PersAntrAbTables.FirstOrDefault(elem => elem.AbonamentModelID == abonament.AbonamentModelID && elem.Antrenament.AntrenamentModelID == antrenament.AntrenamentModelID) != null) { return(true); } return(false); }
// Get string Text nr sedinte efectuate By PersonID public string GetNrSedinteEfByPersonID(int persoanaID, ReportDbContext context) { AbonamentModel abonament = GetAbonamentByLastPersonID(persoanaID, context); if (abonament == null) { return("null"); } string text = $"{abonament.NrSedinteEfectuate} / {abonament.TipAbonament.NrTotalSedinte}"; return(text); }
// Get Abonament By Person where is not Finished public AbonamentModel GetAbonamentByPersonID(int persoanaID, ReportDbContext context) { List <AbonamentModel> lista = context.AbonamentModels.Include(t => t.TipAbonament) .Include(p => p.PersoanaModel).ToList(); AbonamentModel abonament = lista.LastOrDefault(p => p.PersoanaModelID == persoanaID && p.StareAbonament != StareAbonament.Finalizat); /**/ return(abonament); } // Get Abonament By Last Person , indiferent de stare abonament public AbonamentModel GetAbonamentByLastPersonID(int persoanaID, ReportDbContext context) { List <AbonamentModel> lista = context.AbonamentModels.Include(t => t.TipAbonament) .Include(p => p.PersoanaModel).ToList(); AbonamentModel abonament = lista.LastOrDefault(p => p.PersoanaModelID == persoanaID); /**/ return(abonament); }
public async Task <IActionResult> Create([Bind("AbonamentModelID,DataStart,TipAbonamentModelID,PersoanaModelID")] AbonamentModel abonamentModel) { ViewData["TipAbonamentModelID"] = new SelectList(_context.TipAbonamentModels, "TipAbonamentModelID", "Denumire", abonamentModel.TipAbonamentModelID); ViewData["PersoanaModelID"] = new SelectList(_context.PersoanaModels, "PersoanaModelID", "NumeComplet", abonamentModel.PersoanaModelID); if (ModelState.IsValid) { TipAbonamentModel tipAb = _context.TipAbonamentModels.FirstOrDefault(a => a.TipAbonamentModelID == abonamentModel.TipAbonamentModelID); abonamentModel.DataStop = abonamentModel.DataStart.AddDays(31); abonamentModel.StareAbonament = StareAbonament.Activ; abonamentModel.NrSedinteEfectuate = 0; if (tipAb.NrTotalSedinte == 1) // Daca facem 1 abonament cu o singura sedinta il incheiem pe loc, nu mai e nevoie // sa il incheiem din antrenament { abonamentModel.DataStop = abonamentModel.DataStart; abonamentModel.StareAbonament = StareAbonament.Finalizat; abonamentModel.NrSedinteEfectuate = 1; } // Daca persoana nu are atrenament Finalizat nu putem sa o adaugam pe un alt abonament AbonamentModel isAbExpiredPers = _context.AbonamentModels.Include(p => p.PersoanaModel) .Include(t => t.TipAbonament).FirstOrDefault(ab => ab.PersoanaModelID == abonamentModel.PersoanaModelID); List <AbonamentModel> listOfAbForThisPerson = _context.AbonamentModels.Include(p => p.PersoanaModel).Include(t => t.TipAbonament).Where(ab => ab.PersoanaModelID == abonamentModel.PersoanaModelID).ToList(); isAbExpiredPers = listOfAbForThisPerson.LastOrDefault(); if (isAbExpiredPers != null) { if (isAbExpiredPers.StareAbonament == StareAbonament.Activ || isAbExpiredPers.StareAbonament == StareAbonament.Extins) { ModelState.AddModelError($"User:"******"{isAbExpiredPers.PersoanaModel.NumeComplet} are abonament: {isAbExpiredPers.StareAbonament} si expira pe: " + isAbExpiredPers.DataStop.ToString("dd.MM.yyyy")); return(View(abonamentModel)); } } _context.Add(abonamentModel); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(abonamentModel)); }
public async Task <IActionResult> Edit(int id, [Bind("AbonamentModelID,DataStart,DataStop,StareAbonament,NrSedinteEfectuate,TipAbonamentModelID,PersoanaModelID")] AbonamentModel abonamentModel) { if (id != abonamentModel.AbonamentModelID) { return(NotFound()); } if (ModelState.IsValid) { try { // Daca extindem abonament facem implicit abonament extins if ((abonamentModel.DataStop - abonamentModel.DataStart).TotalDays > 32) { abonamentModel.StareAbonament = StareAbonament.Extins; } _context.Update(abonamentModel); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AbonamentModelExists(abonamentModel.AbonamentModelID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["TipAbonamentModelID"] = new SelectList(_context.TipAbonamentModels, "TipAbonamentModelID", "Denumire", abonamentModel.TipAbonamentModelID); ViewData["PersoanaModelID"] = new SelectList(_context.PersoanaModels, "PersoanaModelID", "NumeComplet", abonamentModel.PersoanaModelID); return(View(abonamentModel)); }
// Add Person To Atrenament // Add Person Atrenament Abonament to PersAntrAbTable Table // Add To aboanament 1 sedinta efectuata public string AddPersonToAntrenament(AntrenamentModel antrenament, int abonamentID, ReportDbContext context) { AbonamentModel ab = GetAbonamentByAbID(abonamentID, context); if (!context.PersAntrAbTables.Any(item => item.AntrenamentModelID == antrenament.AntrenamentModelID && item.AbonamentModelID == abonamentID)) { if (ab.StareAbonament == StareAbonament.Finalizat) { return($"Persoana {ab.PersoanaModel.NumeComplet} are abonamentul finalizat!!!"); } context.PersAntrAbTables.Add(new PersAntrAbTable { AntrenamentModelID = antrenament.AntrenamentModelID, AbonamentModelID = abonamentID, PersoanaModelID = (int)GetAbonamentByAbID(abonamentID, context).PersoanaModelID }); context.SaveChanges(); UpdateNrSedinteEfAbonamentbyID(1, abonamentID, context); // Update nr sedinte efectuate abonament return($"Persoana {ab.PersoanaModel.NumeComplet} a fost adaugata la antrenament!"); } return($"Persoana {ab.PersoanaModel.NumeComplet} este deja adaugata in antrenament"); }