コード例 #1
0
        public async Task <bool> Dodaj(OdrzaniCas cas)
        {
            if (cas == null)
            {
                return(false);
            }

            try
            {
                await _dbContext.AddAsync(cas);

                await _dbContext.SaveChangesAsync();

                var slusajuPredemt = _dbContext.SlusaPredmet.Where(x => x.AngazovanId == cas.AngazovanId);

                foreach (var x in slusajuPredemt)
                {
                    await _dbContext.AddAsync(new OdrzaniCasDetalji
                    {
                        OdrzaniCasId   = cas.Id,
                        Prisutan       = true,
                        SlusaPredmetId = x.Id
                    });
                }

                await _dbContext.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #2
0
        public async Task <ServiceResult> DodajOdrzaniCas(OdrzaniCas cas)
        {
            if (await _context.OdrzaniCasovi.AnyAsync(x => x.PredajePredmetId == cas.PredajePredmetId &&
                                                      x.Datum == cas.Datum))
            {
                return new ServiceResult
                       {
                           Message = "Isti cas vec postoji.",
                           Success = false
                       }
            }
            ;

            try
            {
                await _context.AddAsync(cas);

                await _context.SaveChangesAsync();

                var uceniciOdjeljenje = _context.OdjeljenjeStavka.Where(x => x.OdjeljenjeId == cas.OdjeljenjeId);

                if (await uceniciOdjeljenje.AnyAsync())
                {
                    foreach (var u in uceniciOdjeljenje)
                    {
                        await _context.AddAsync(new OdrzaniCasStavka
                        {
                            IsPrisutan         = false,
                            Napomena           = string.Empty,
                            Ocjena             = 0,
                            OdjeljenjeStavkaId = u.Id,
                            OdrzaniCasId       = cas.Id,
                            OpravdanoOdsustvo  = false
                        });
                    }
                    await _context.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                return(new ServiceResult
                {
                    Message = ex.Message,
                    Success = false
                });
            }
            return(new ServiceResult
            {
                Message = "Uspjesno dodat cas.",
                Success = true
            });
        }
コード例 #3
0
        public async Task <ServiceResult> Dodaj(MaturskiIspit ispit)
        {
            if (ispit == null)
            {
                return new ServiceResult {
                           Success = false, Message = string.Empty
                }
            }
            ;
            try
            {
                await _dbContext.AddAsync(ispit);

                await _dbContext.SaveChangesAsync();

                var uceniciZaDodavanje = _dbContext.UpisUOdjeljenje
                                         .Where(x => x.OdjeljenjeId == ispit.OdjeljenjeId && x.OpciUspjeh > 1);

                foreach (var x in uceniciZaDodavanje)
                {
                    if (!await IsVecPolozio(x.Id))
                    {
                        await _dbContext.AddAsync(new MaturskiIspitStavka
                        {
                            Bodovi            = null,
                            MaturskiIspitId   = ispit.Id,
                            Oslobodjen        = x.OpciUspjeh == 5,
                            UpisUOdjeljenjeId = x.Id
                        });
                    }
                }

                await _dbContext.SaveChangesAsync();

                return(new ServiceResult
                {
                    Success = true,
                    Message = "Uspjesno dodat maturski ispit."
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResult
                {
                    Message = ex.Message,
                    Success = false
                });
            }
        }
コード例 #4
0
        public async Task <ServiceResult> DodajCas(OdrzaniCas cas)
        {
            if (cas == null)
            {
                return new ServiceResult {
                           Message = "Morate proslijediti cas koji zelite dodati.", Success = false
                }
            }
            ;

            try
            {
                await _context.AddAsync(cas);

                await _context.SaveChangesAsync();

                if (cas.Angazovan == null)
                {
                    cas.Angazovan = await _context.Angazovani.FindAsync(cas.AngazovanId);
                }

                foreach (var x in _context.UpisiUOdjeljenja
                         .Where(x => x.OdjeljenjeId == cas.Angazovan.OdjeljenjeId))
                {
                    await _context.AddAsync(new OdrzaniCasDetalj
                    {
                        OdrzaniCasId      = cas.Id,
                        Odsutan           = false,
                        UpisUOdjeljenjeId = x.Id
                    });
                }

                await _context.SaveChangesAsync();

                return(new ServiceResult {
                    Message = "Uspjesno dodat novi odrzani cas.", Success = true
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResult {
                    Message = ex.Message, Success = false
                });
            }

            return(new ServiceResult {
                Message = "Neuspjesno dodavanje odrzanog casa.", Success = false
            });
        }
        public async Task <IActionResult> Snimi(IspitPolaganjeVM model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Podaci nisu validni."));
            }

            if (!model.Ocjena.HasValue)
            {
                var ispitTerminDecryptedId = int.Parse(_protector.Unprotect(model.IspitniTerminId));
                var ispitniTermin          = await _context.IspitniTermini.FindAsync(ispitTerminDecryptedId);

                if (ispitniTermin == null)
                {
                    return(NotFound("Ispitni termin nije pronadjne."));
                }

                var novoPolaganje = new IspitPolaganje
                {
                    IspitniTerminId = int.Parse(_protector.Unprotect(model.IspitniTerminId)),
                    Ocjena          = 0,
                    PristupioIspitu = false,
                    UpisGodineId    = int.Parse(_protector.Unprotect(model.UpisGodineId))
                };
                await _context.AddAsync(novoPolaganje);

                await _context.SaveChangesAsync();

                ViewData["evidentiraniRezultati"] = ispitniTermin.EvidentiraniRezultati;
                ViewData["datumIspita"]           = ispitniTermin.DatumIspita;


                return(PartialView("_PolaganjeIspitaRow", await BuildPolaganjeIspitaVM(novoPolaganje)));
            }

            var polaganjeFromDb = await _context.PolaganjaIspita
                                  .Include(x => x.IspitniTermin)
                                  .FirstOrDefaultAsync(x => x.Id == int.Parse(_protector.Unprotect(model.Id)));

            if (polaganjeFromDb == null)
            {
                return(BadRequest("Polaganje ne postoji."));
            }

            polaganjeFromDb.Ocjena          = model.Ocjena;
            polaganjeFromDb.PristupioIspitu = true;

            _context.Update(polaganjeFromDb);
            await _context.SaveChangesAsync();

            ViewData["evidentiraniRezultati"] = polaganjeFromDb.IspitniTermin.EvidentiraniRezultati;
            ViewData["datumIspita"]           = polaganjeFromDb.IspitniTermin.DatumIspita;

            return(PartialView("_PolaganjeIspitaRow", await BuildPolaganjeIspitaVM(polaganjeFromDb)));
        }
コード例 #6
0
        public async Task <ServiceResult> DodajAsync(Uputnica uputnica)
        {
            try
            {
                if (await _context.Uputnica
                    .AnyAsync(x => x.PacijentId == uputnica.PacijentId &&
                              x.VrstaPretrageId == uputnica.VrstaPretrageId &&
                              x.DatumUputnice.Date == uputnica.DatumUputnice.Date))
                {
                    return new ServiceResult {
                               Failed  = true,
                               Message = "Ista uputnica vec postoji."
                    }
                }
                ;

                await _context.AddAsync(uputnica);

                await _context.SaveChangesAsync();

                await KreirajNoveRezultatePretraga(uputnica.VrstaPretrageId, uputnica.Id);
            }
            catch (Exception ex)
            {
                return(new ServiceResult
                {
                    Failed = true,
                    Message = ex.Message
                });
            }

            return(new ServiceResult
            {
                Message = "Uspjesno kreirana uplatnica.",
                Success = true
            });
        }
コード例 #7
0
        public async Task <IActionResult> Novi(NoviIspitniTerminVM model)
        {
            if (!ModelState.IsValid)
            {
                var datumError = ModelState.Values
                                 .SelectMany(x => x.Errors)
                                 .FirstOrDefault(x => x.ErrorMessage.Contains("Datum"));

                if (datumError != null)
                {
                    ModelState.AddModelError(string.Empty, datumError.ErrorMessage);
                }

                return(View(model));
            }

            int decryptedAngazmanId = int.Parse(_protector.Unprotect(model.AngazmanId));

            var angazman = _context.Angazovan.Find(decryptedAngazmanId);

            if (angazman == null)
            {
                return(BadRequest("Ne mozete dodati ispitne termine za ovaj predmet."));
            }


            var noviTermin = new IspitniTermin
            {
                AngazovanId = decryptedAngazmanId,
                BrojPrijavljenihStudenata = 0,
                BrojNepolozenih           = 0,
                DatumIspita           = model.Datum,
                EvidentiraniRezultati = false
            };

            await _context.AddAsync(noviTermin);

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(GetAll), routeValues: new{ angazmanId = model.AngazmanId }));
        }
コード例 #8
0
        public async Task <IActionResult> SnimiPolaganje(PopravniIspitStavkaInputVM model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Podaci nisu validni."));
            }

            PopravniIspitStavka stavka;

            if (model.Id.HasValue)
            {
                stavka = await _context.PopravniIspitStavke.FindAsync(model.Id);

                if (stavka == null)
                {
                    return(BadRequest("Polaganje nije pronadjena."));
                }

                stavka.OsvojeniBodovi = model.Bodovi;
                _context.Update(stavka);
            }
            else
            {
                stavka = new PopravniIspitStavka
                {
                    ImaPravoNaIzlazask = true,
                    IsPrisutupio       = false,
                    PopravniIspitId    = model.PopravniIspitId,
                    OsvojeniBodovi     = model.Bodovi,
                    UcenikId           = model.UcenikId
                };
                await _context.AddAsync(stavka);
            }

            await _context.SaveChangesAsync();

            return(ViewComponent("SinglePolaganjePopravnog", new { popravniIspitStavkaId = stavka.Id }));
        }
コード例 #9
0
        public async Task <ServiceResult> PrebaciUViseOdjeljenje(Odjeljenje novoOdjeljenje, Odjeljenje nizeOdjeljenje = null)
        {
            if (novoOdjeljenje == null)
            {
                return new ServiceResult
                       {
                           Message = "Greska",
                           Failed  = true
                       }
            }
            ;

            if (_context.Odjeljenje.Any(x => x.Oznaka == novoOdjeljenje.Oznaka))
            {
                return new ServiceResult
                       {
                           Message = "Odjeljenje sa istom oznakom vec postoji.",
                           Failed  = true
                       }
            }
            ;



            if (nizeOdjeljenje != null)
            {
                if (nizeOdjeljenje.Razred >= novoOdjeljenje.Razred)
                {
                    return new ServiceResult
                           {
                               Message = "Razred u koji se prebacuje staro odjeljenje mora biti veci od trenutnog.",
                               Failed  = true
                           }
                }
                ;

                if (!IsValidnaNarednaSkolskaGodina(nizeOdjeljenje.SkolskaGodina, novoOdjeljenje.SkolskaGodina))
                {
                    return new ServiceResult
                           {
                               Message = "Skolska godina mora biti za jednu godinu veca od stare skolske godine.",
                               Failed  = true
                           }
                }
                ;

                nizeOdjeljenje.IsPrebacenuViseOdjeljenje = true;

                _context.Update(nizeOdjeljenje);



                var stavke = new List <OdjeljenjeStavka>();
                var dodjeljeniPredmetiNovi = new List <DodjeljenPredmet>();

                await _context.AddAsync(novoOdjeljenje);

                await _context.SaveChangesAsync();

                foreach (var stavka in _context.OdjeljenjeStavka
                         .Where(x => x.OdjeljenjeId == nizeOdjeljenje.Id))
                {
                    if (!_ucenikService.IsNegativanOpstiUspjeh(stavka.UcenikId, stavka.OdjeljenjeId))
                    {
                        stavke.Add(new OdjeljenjeStavka
                        {
                            BrojUDnevniku = 0,
                            OdjeljenjeId  = novoOdjeljenje.Id,
                            UcenikId      = stavka.UcenikId
                        });
                        await _context.AddAsync(stavke.Last());

                        await _context.SaveChangesAsync();

                        foreach (var predmet in _context.Predmet.Where(x => x.Razred == novoOdjeljenje.Razred))
                        {
                            dodjeljeniPredmetiNovi.Add(new DodjeljenPredmet
                            {
                                OdjeljenjeStavkaId   = stavke.Last().Id,
                                PredmetId            = predmet.Id,
                                ZakljucnoKrajGodine  = 0,
                                ZakljucnoPolugodiste = 0
                            });
                        }
                    }
                }

                if (dodjeljeniPredmetiNovi.Any())
                {
                    await _context.AddRangeAsync(dodjeljeniPredmetiNovi);
                }

                await _context.SaveChangesAsync();
            }

            return(new ServiceResult
            {
                Message = "Uspjesno kreirano novo odjeljenje.",
                Success = true
            });
        }
コード例 #10
0
        public async Task <ServiceResult> DodajNovi(MaturskiIspit maturskiIspit)
        {
            if (maturskiIspit == null)
            {
                return new ServiceResult {
                           Message = "Maturski ispit nije validan.", Success = false
                }
            }
            ;

            if (await _context.MaturskiIspiti.AnyAsync(x => x.PredmetId == maturskiIspit.PredmetId &&
                                                       x.DatumOdrzavanja.Date == maturskiIspit.DatumOdrzavanja.Date))
            {
                return new ServiceResult {
                           Message = "Maturski ispit vec postoji.", Success = false
                }
            }
            ;


            try
            {
                await _context.AddAsync(maturskiIspit);

                await _context.SaveChangesAsync();


                var uceniciIspunjavajuUslov = _context.DodjeljenPredmet
                                              .Where(x => x.OdjeljenjeStavka.Odjeljenje.SkolaID == maturskiIspit.SkolaId &&
                                                     x.OdjeljenjeStavka.Odjeljenje.SkolskaGodinaID == maturskiIspit.SkolskaGodinaId)
                                              .Select(x => x.OdjeljenjeStavka.Ucenik)
                                              .AsEnumerable()
                                              .DistinctBy(x => x.Id);


                foreach (var x in uceniciIspunjavajuUslov)
                {
                    if (await IspunjavaUslovPolaganja(x.Id))
                    {
                        await _context.AddAsync(new MaturskiIspitStavka
                        {
                            IsPristupio     = false,
                            MaturskiIspitId = maturskiIspit.Id,
                            OsvojeniBodovi  = 0,
                            UcenikId        = x.Id
                        });
                    }
                }

                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                return(new ServiceResult {
                    Message = ex.Message, Success = false
                });
            }

            return(new ServiceResult {
                Message = "Uspjesno dodat maturski ispit.", Success = true
            });
        }
コード例 #11
0
        public async Task <ServiceResult> DodajTakmicenje(Takmicenje takmicenje)
        {
            if (await _context.Takmicenja.AnyAsync(x => x.PredmetId == takmicenje.PredmetId &&
                                                   x.DatumOdrzavanja.Date == takmicenje.DatumOdrzavanja.Date))
            {
                return new ServiceResult
                       {
                           Message = "Takmicenje vec dodato.",
                           Success = false
                       }
            }
            ;

            try
            {
                await _context.AddAsync(takmicenje);

                await _context.SaveChangesAsync();


                var uceniciOcjenaPet = _context.DodjeljenPredmet
                                       .Include(x => x.OdjeljenjeStavka)
                                       .Where(x => x.PredmetId == takmicenje.PredmetId && x.ZakljucnoKrajGodine == 5);

                var uceniciVeciProsjekOdCetiri = new List <DodjeljenPredmet>();



                if (await uceniciOcjenaPet.AnyAsync())
                {
                    foreach (var u in uceniciOcjenaPet)
                    {
                        if (ProsjekUcenika(u.OdjeljenjeStavka.UcenikId, takmicenje.Razred) >= 4)
                        {
                            await _context.TakmicenjeUcesnici.AddAsync(new TakmicenjeUcesnik
                            {
                                TakmicenjeId       = takmicenje.Id,
                                OdjeljenjeStavkaId = u.OdjeljenjeStavkaId,
                                IsPristupio        = false,
                                OsvojeniBodovi     = 0
                            });
                        }
                    }

                    await _context.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                return(new ServiceResult
                {
                    Message = ex.Message,
                    Success = false
                });
            }

            return(new ServiceResult
            {
                Message = "Uspjesno dodato novo takmicenje.",
                Success = true
            });
        }