// 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);
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        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");
        }