public JsonResult UlogujKorisnika(string korisnickoIme, string lozinka)
        {
            HttpCookie langCookie = Request.Cookies["_lang"];
            var        jezik      = langCookie != null ? langCookie.Value : "0";

            var res = new MyResponse();

            try
            {
                var guid = LogovanjeData.UlogujKorisnika(Konverzija.KonvertujULatinicu(korisnickoIme), Konverzija.KonvertujULatinicu(lozinka), jezik);

                var cookie = new HttpCookie(RuntimeDataHelpers.LogKey, guid)
                {
                    Expires = DateTime.Now.AddHours(4)
                };
                HttpContext.Response.Cookies.Add(cookie);
            }
            catch (Exception ex)
            {
                res.Greska = true;
                res.Poruka = ExceptionParser.Parsiraj(jezik, ex);
            }

            return(Json(res, JsonRequestBehavior.AllowGet));
        }
        public JsonResult PromeniLozinku(string staraSifra, string novaSifra)
        {
            var korisnik = RuntimeDataHelpers.GetRuntimeData(Request);
            var res      = new MyResponse();

            try
            {
                LogovanjeData.PromeniLozinkuKorisnika(korisnik, Konverzija.KonvertujULatinicu(staraSifra), Konverzija.KonvertujULatinicu(novaSifra));
            }
            catch (Exception ex)
            {
                res.Greska = true;
                res.Poruka = ExceptionParser.Parsiraj(korisnik, ex);
            }

            return(Json(res, JsonRequestBehavior.DenyGet));
        }
Exemple #3
0
 public static List <Predmet> VratiPredmetePretrage(UlogovaniKorisnik korisnik, ElementPretrage pretraga)
 {
     using (var context = DmsData.GetContext())
     {
         return(context.pretraga_VratiPredmete(pretraga.IdOkruga, pretraga.IdOrgana, pretraga.IdKlase, pretraga.BrojPredmeta, pretraga.Godina,
                                               pretraga.OdDatuma, pretraga.DoDatuma, pretraga.IdJedinice, pretraga.Status, pretraga.IdVrstePredmeta, pretraga.IdInspektora,
                                               Konverzija.KonvertujULatinicu(pretraga.Podnosilac.SrediZaPretragu()), Konverzija.KonvertujULatinicu(pretraga.LiceKontrole.SrediZaPretragu()),
                                               Konverzija.KonvertujULatinicu(pretraga.Sadrzaj.SrediZaPretragu()), pretraga.IdTakse, Konverzija.KonvertujULatinicu(pretraga.StraniBroj.SrediZaPretragu()),
                                               pretraga.Rok, pretraga.PreRoka, pretraga.DatumKretanja, pretraga.IdKretanjaPredmeta, Konverzija.KonvertujULatinicu(pretraga.OpisKretanja.SrediZaPretragu()),
                                               korisnik.IdKorisnika, pretraga.IdOpstine, pretraga.OznakaOrgana.SrediZaPretragu(3), pretraga.OznakaKlase.SrediZaPretragu(3),
                                               pretraga.OznakaJedinice.SrediZaPretragu(3), pretraga.GledanjeDatumaKreiranja, pretraga.IdMestaOpstine, pretraga.RokCuvanja.SrediZaPretragu()).
                Select(pred => new Predmet
         {
             IdVrstePredmeta = pred.IdVrstePredmeta,
             IdPredmeta = pred.IdPredmeta,
             Podnosilac = Konverzija.VratiString(korisnik.Jezik, pred.Podnosilac),
             NazivInspektora = Konverzija.VratiString(korisnik.Jezik, pred.NazivInspektora),
             Sadrzaj = Konverzija.VratiString(korisnik.Jezik, pred.Sadrzaj),
             LiceKontrole = Konverzija.VratiString(korisnik.Jezik, pred.LiceKontrole),
             SifraPredmeta = string.Format(@"{0}-{1}-{2}-{3}/{4}-{5}", pred.OznakaOkruga, pred.OznakaOrgana, pred.OznakaKlase,
                                           string.Format(@"{0}", pred.BrojPredmeta).PadLeft(6, '0'), pred.Godina.GetValueOrDefault(), pred.OznakaJedinice)
         }).ToList());
     }
 }
Exemple #4
0
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviElement = new ElementSifarnika();

                short?idOkruga = null;
                short?idOrgana = null;
                short?idKlase  = null;
                if (!string.IsNullOrEmpty(idElementa))
                {
                    var kljucevi = idElementa.Split('-');
                    if (kljucevi.Length == 3)
                    {
                        idOkruga = Int16.Parse(kljucevi[0]);
                        idOrgana = Int16.Parse(kljucevi[1]);
                        idKlase  = Int16.Parse(kljucevi[2]);
                    }
                }

                try
                {
                    string naziv           = null;
                    string oznaka          = null;
                    string napomena        = null;
                    var    aktivan         = false;
                    string nadleznost      = null;
                    short? idInspekcije    = null;
                    bool   izuzmiIzProvere = false;

                    foreach (PodatakElementaSifarnika element in podaci)
                    {
                        switch (element.Id)
                        {
                        case 0:
                            naziv = element.Vrednost;
                            break;

                        case 1:
                            oznaka = element.Vrednost;
                            break;

                        case 2:
                            aktivan = bool.Parse(element.Vrednost);
                            break;

                        case 3:
                            napomena = element.Vrednost;
                            break;

                        case 4:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                idInspekcije = short.Parse(element.Vrednost);
                            }
                            break;

                        case 5:
                            idOkruga = short.Parse(element.Vrednost);
                            break;

                        case 6:
                            idOrgana = short.Parse(element.Vrednost);
                            break;

                        case 7:
                            nadleznost = element.Vrednost;
                            break;

                        case 8:
                            izuzmiIzProvere = bool.Parse(element.Vrednost);
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(naziv))
                    {
                        throw new ApplicationException("Naziv klase nije unet.");
                    }

                    if (naziv != null && naziv.Length > 200)
                    {
                        throw new ApplicationException("Naziv klase ima više od 200 karaktera.");
                    }

                    if (string.IsNullOrEmpty(oznaka))
                    {
                        throw new ApplicationException("Oznaka klase nije uneta.");
                    }

                    if (oznaka != null && oznaka.Length > 3)
                    {
                        throw new ApplicationException("Oznaka klase ima više od 3 karaktera.");
                    }

                    if (!string.IsNullOrEmpty(napomena) && napomena.Length > 2000)
                    {
                        throw new ApplicationException("Napomena klase ima više od 2000 karaktera.");
                    }

                    if (!string.IsNullOrEmpty(nadleznost) && nadleznost.Length > 4000)
                    {
                        throw new ApplicationException("Nadležnost klase ima više od 4000 karaktera.");
                    }

                    context.klasa_SnimiKlasu(idOkruga, idOrgana, ref idKlase, Konverzija.KonvertujULatinicu(oznaka).SrediZaSnimanje(3),
                                             Konverzija.KonvertujULatinicu(naziv).SrediZaSnimanje(200), Konverzija.KonvertujULatinicu(napomena).SrediZaSnimanje(2000),
                                             aktivan, korisnik.IdKorisnika, Konverzija.KonvertujULatinicu(nadleznost).SrediZaSnimanje(4000), idInspekcije, izuzmiIzProvere);

                    noviElement.IdElementa            = string.Format(@"{0}-{1}-{2}", idOkruga, idOrgana, idKlase);
                    noviElement.Naziv                 = Konverzija.VratiString(korisnik.Jezik, string.Format(@"{0}-{1}", oznaka, naziv));
                    noviElement.Aktivan               = aktivan;
                    noviElement.DozvoljenoBrisanje    = true;
                    noviElement.DozvoljenoDodavanje   = false;
                    noviElement.DozvoljenaIzmena      = true;
                    noviElement.IdNadredjenogElementa = null;

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }

                return(noviElement);
            }
        }
Exemple #5
0
        public static IstorijaPredmeta SnimiIstorijuPredmeta(UlogovaniKorisnik korisnik, long idPredmeta, short vrstaKretanja, string napomena, DateTime?datumRoka)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                short?idKretanja = null;
                var   istorija   = new IstorijaPredmeta();
                try
                {
                    if (!string.IsNullOrEmpty(napomena) && napomena.Length > 2000)
                    {
                        throw new ApplicationException("Napomena kretanja predmeta ima više od 2000 karaktera.");
                    }

                    if (korisnik.IzmenaPredmeta && korisnik.IdOkruga != null)
                    {
                        idKretanja = context.istorija_SnimiKretanjePredmeta(idPredmeta, korisnik.IdKorisnika, vrstaKretanja, Konverzija.KonvertujULatinicu(napomena), datumRoka).Single().IdKretanja;
                    }

                    istorija.Korisnik   = Konverzija.VratiString(korisnik.Jezik, string.Format(@"{0} ({1})", korisnik.KorisnickoIme, korisnik.ImeIPrezime));
                    istorija.Napomena   = napomena;
                    istorija.Vreme      = DateTime.Now;
                    istorija.IdKretanja = idKretanja.GetValueOrDefault();
                    istorija.DatumRoka  = datumRoka;

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }

                istorija.Status = VratiPredmet(korisnik, idPredmeta).NazivStatusa;
                return(istorija);
            }
        }
Exemple #6
0
        public static PregledRezervacijaZaglavlje SnimiPredmet(UlogovaniKorisnik korisnik, short tipDokumenta, Predmet predmet, short?kolicina)
        {
            var zaglavlje = new PregledRezervacijaZaglavlje {
                RezervisaniBrojevi = new List <Element>()
            };

            long?idPredmetaZaUcitavanje = null;

            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    if (tipDokumenta == 2)
                    {
                        if (kolicina != null)
                        {
                            if (kolicina > 100)
                            {
                                throw new ApplicationException("Maksimalni broj predmeta za rezervaciju je 100.");
                            }

                            if (korisnik.DozvolaRezervisanja)
                            {
                                long?idPredmeta = null;
                                var  elementi   = context.predmet_RezervacijaPredmeta(ref idPredmeta, predmet.IdOkruga, predmet.IdOrgana,
                                                                                      predmet.IdKlase, predmet.IdJedinice,
                                                                                      predmet.PodnosilacJeInspektor,
                                                                                      predmet.IdVrstePredmeta, predmet.IdInspektora,
                                                                                      Konverzija.KonvertujULatinicu(predmet.Prilog.SrediZaSnimanje(200)),
                                                                                      Konverzija.KonvertujULatinicu(predmet.Sadrzaj.SrediZaSnimanje(2000)),
                                                                                      predmet.IdTakse,
                                                                                      Konverzija.KonvertujULatinicu(predmet.StraniBroj), null, korisnik.IdKorisnika,
                                                                                      Konverzija.KonvertujULatinicu(predmet.Podnosilac.SrediZaSnimanje(300)),
                                                                                      Konverzija.KonvertujULatinicu(predmet.PodnosilacJedinstveniBroj.SrediZaSnimanje(30)),
                                                                                      Konverzija.KonvertujULatinicu(predmet.LiceKontroleJedinstveniBroj.SrediZaSnimanje(30)),
                                                                                      Konverzija.KonvertujULatinicu(predmet.LiceKontrole.SrediZaSnimanje(300)),
                                                                                      predmet.IdOpstine,
                                                                                      predmet.IdMesta, predmet.VremeKreiranja, kolicina).Select(x => new Element
                                {
                                    IdElementa = string.Format(@"{0}", x.IdPredmeta),
                                    Naziv      = x.BrojPredmeta
                                }).ToList();

                                if (elementi.Count > 0)
                                {
                                    idPredmetaZaUcitavanje = idPredmeta;
                                    zaglavlje.RezervisaniBrojevi.AddRange(elementi);
                                }
                            }
                        }
                    }
                    else
                    {
                        if ((predmet.IdPredmeta != null && korisnik.IzmenaPredmeta) || (predmet.IdPredmeta == null && korisnik.UnosNovogPredmeta))
                        {
                            idPredmetaZaUcitavanje = predmet.IdPredmeta;
                            var brojPredmeta =
                                context.predmet_SnimiPredmet(ref idPredmetaZaUcitavanje, predmet.IdOkruga, predmet.IdOrgana,
                                                             predmet.IdKlase, predmet.IdJedinice,
                                                             predmet.PodnosilacJeInspektor,
                                                             predmet.IdVrstePredmeta, predmet.IdInspektora,
                                                             Konverzija.KonvertujULatinicu(predmet.Prilog.SrediZaSnimanje(200)),
                                                             Konverzija.KonvertujULatinicu(predmet.Sadrzaj.SrediZaSnimanje(2000)), predmet.IdTakse, Konverzija.KonvertujULatinicu(predmet.StraniBroj),
                                                             null, false, korisnik.IdKorisnika,
                                                             Konverzija.KonvertujULatinicu(predmet.Podnosilac.SrediZaSnimanje(300)),
                                                             Konverzija.KonvertujULatinicu(predmet.PodnosilacJedinstveniBroj.SrediZaSnimanje(30)),
                                                             Konverzija.KonvertujULatinicu(predmet.LiceKontroleJedinstveniBroj.SrediZaSnimanje(30)),
                                                             Konverzija.KonvertujULatinicu(predmet.LiceKontrole.SrediZaSnimanje(300)), predmet.IdOpstine,
                                                             predmet.IdNadredjenogPredmeta, predmet.IdMesta, predmet.VremeKreiranja, korisnik.StrogoPoverljivi && predmet.StrogoPoverljiv)
                                .Select(a => a.BrojPredmeta)
                                .Single();
                            var element = new Element
                            {
                                IdElementa = string.Format(@"{0}", idPredmetaZaUcitavanje),
                                Naziv      = string.Format(@"{0}", brojPredmeta)
                            };

                            zaglavlje.RezervisaniBrojevi.Add(element);
                        }
                    }

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }
            }

            if (zaglavlje.Predmet == null && idPredmetaZaUcitavanje != null)
            {
                zaglavlje.Predmet = VratiPredmet(korisnik, idPredmetaZaUcitavanje.GetValueOrDefault());
            }

            return(zaglavlje);
        }
Exemple #7
0
        public static List <StavkaPretrage> VratiPredmetePretrage(UlogovaniKorisnik korisnik, byte tipIzvestaja, bool sintetika, ElementPretrage pretraga)
        {
            using (var context = DmsData.GetContext())
            {
                if (sintetika)
                {
                    var stavkeSintetike = context.izvestaji_VratiSintetikaPredmeta(tipIzvestaja, pretraga.IdOkruga, pretraga.IdOrgana,
                                                                                   pretraga.IdKlase, pretraga.BrojPredmeta,
                                                                                   pretraga.Godina, pretraga.OdDatuma,
                                                                                   pretraga.DoDatuma, pretraga.IdJedinice,
                                                                                   pretraga.Status,
                                                                                   pretraga.IdVrstePredmeta,
                                                                                   pretraga.IdInspektora,
                                                                                   Konverzija.KonvertujULatinicu(pretraga.Podnosilac.SrediZaPretragu()),
                                                                                   Konverzija.KonvertujULatinicu(pretraga.LiceKontrole.SrediZaPretragu()),
                                                                                   Konverzija.KonvertujULatinicu(pretraga.Sadrzaj.SrediZaPretragu()),
                                                                                   pretraga.IdTakse,
                                                                                   Konverzija.KonvertujULatinicu(pretraga.StraniBroj.SrediZaPretragu()),
                                                                                   pretraga.Rok, pretraga.PreRoka,
                                                                                   pretraga.DatumKretanja,
                                                                                   pretraga.IdKretanjaPredmeta,
                                                                                   Konverzija.KonvertujULatinicu(pretraga.OpisKretanja.SrediZaPretragu()),
                                                                                   pretraga.IdKreatora, korisnik.IdKorisnika, pretraga.IdOpstine,
                                                                                   pretraga.OznakaOrgana.SrediZaPretragu(3), pretraga.OznakaKlase.SrediZaPretragu(3), pretraga.OznakaJedinice.SrediZaPretragu(3),
                                                                                   korisnik.IdKorisnika, pretraga.GledanjeDatumaKreiranja, pretraga.IdMestaOpstine)
                                          .Select(s => new StavkaPretrage
                    {
                        Grupisanje                        = tipIzvestaja == 6 ? IzvestajPredmetaViewModel.VratiStatuse(korisnik).Where(ss => ss.IdElementa == s.IdGrupisanja).Select(ss => ss.Naziv).Single() : s.Grupisanje,
                        IdGrupisanja                      = s.IdGrupisanja,
                        UkupanBrojPredmeta                = s.UkupanBrojPredmeta.GetValueOrDefault(),
                        BrojAktivnihPredmeta              = s.BrojAktivnihPredmeta.GetValueOrDefault(),
                        BrojObrisanihhPredmeta            = s.BrojObrisanihhPredmeta.GetValueOrDefault(),
                        BrojRezervisanihPredmeta          = s.BrojRezervisanihPredmeta.GetValueOrDefault(),
                        BrojPrezavedenihPredmeta          = s.BrojPrezavedenihPredmeta.GetValueOrDefault() + s.BrojPrezavedenihArhiviranihPredmeta.GetValueOrDefault(),
                        BrojPredmetaURokovniku            = s.BrojURokovnikuPredmeta.GetValueOrDefault(),
                        BrojZatvorenihPredmeta            = s.BrojZatvorenihPredmeta.GetValueOrDefault(),
                        BrojRezervisanihPredmetaPrekoRoka = s.BrojRezervisanihPredmetaPrekoRoka.GetValueOrDefault(),
                        BrojOtvorenihPredmetaPrekoRoka    = s.BrojOtvorenihPredmetaPrekoRoka.GetValueOrDefault(),
                    }).ToList();

                    return(stavkeSintetike.GroupBy(x => x.IdGrupisanja).Select(xx => new StavkaPretrage
                    {
                        Grupisanje =
                            tipIzvestaja == 6
                                                                        ? IzvestajPredmetaViewModel.VratiStatuse(korisnik)
                            .Where(ss => ss.IdElementa == xx.Key)
                            .Select(ss => ss.Naziv)
                            .Single()
                                                                        : xx.First().Grupisanje,
                        IdGrupisanja = xx.Key,
                        UkupanBrojPredmeta = xx.Sum(xxx => xxx.UkupanBrojPredmeta),
                        BrojAktivnihPredmeta = xx.Sum(xxx => xxx.BrojAktivnihPredmeta),
                        BrojObrisanihhPredmeta = xx.Sum(xxx => xxx.BrojObrisanihhPredmeta),
                        BrojRezervisanihPredmeta = xx.Sum(xxx => xxx.BrojRezervisanihPredmeta),
                        BrojPrezavedenihPredmeta = xx.Sum(xxx => xxx.BrojPrezavedenihPredmeta),
                        BrojPredmetaURokovniku = xx.Sum(xxx => xxx.BrojPredmetaURokovniku),
                        BrojZatvorenihPredmeta = xx.Sum(xxx => xxx.BrojZatvorenihPredmeta),
                        BrojRezervisanihPredmetaPrekoRoka = xx.Sum(xxx => xxx.BrojRezervisanihPredmetaPrekoRoka),
                        BrojOtvorenihPredmetaPrekoRoka = xx.Sum(xxx => xxx.BrojOtvorenihPredmetaPrekoRoka),
                    }).ToList());
                }
                //Godina je sa vremena rezervacije
                return(context.izvestaji_VratiAnalitikuPredmeta(tipIzvestaja, pretraga.IdOkruga, pretraga.IdOrgana,
                                                                pretraga.IdKlase, pretraga.BrojPredmeta,
                                                                pretraga.Godina, pretraga.OdDatuma,
                                                                pretraga.DoDatuma, pretraga.IdJedinice,
                                                                pretraga.Status,
                                                                pretraga.IdVrstePredmeta,
                                                                pretraga.IdInspektora,
                                                                Konverzija.KonvertujULatinicu(pretraga.Podnosilac.SrediZaPretragu()),
                                                                Konverzija.KonvertujULatinicu(pretraga.LiceKontrole.SrediZaPretragu()),
                                                                Konverzija.KonvertujULatinicu(pretraga.Sadrzaj.SrediZaPretragu()),
                                                                pretraga.IdTakse,
                                                                Konverzija.KonvertujULatinicu(pretraga.StraniBroj.SrediZaPretragu()),
                                                                pretraga.Rok, pretraga.PreRoka,
                                                                pretraga.DatumKretanja,
                                                                pretraga.IdKretanjaPredmeta,
                                                                Konverzija.KonvertujULatinicu(pretraga.OpisKretanja.SrediZaPretragu()),
                                                                pretraga.IdKreatora, korisnik.IdKorisnika, pretraga.IdOpstine,
                                                                pretraga.OznakaOrgana.SrediZaPretragu(3), pretraga.OznakaKlase.SrediZaPretragu(3), pretraga.OznakaJedinice.SrediZaPretragu(3),
                                                                korisnik.IdKorisnika, pretraga.GledanjeDatumaKreiranja, pretraga.IdMestaOpstine)
                       .Select(s => new StavkaPretrage
                {
                    Grupisanje = s.Grupisanje,
                    IdPredmeta = s.IdPredmeta,
                    Podnosilac = Konverzija.VratiString(korisnik.Jezik, s.Podnosilac),
                    NazivInspektora = Konverzija.VratiString(korisnik.Jezik, s.NazivInspektora),
                    Sadrzaj = Konverzija.VratiString(korisnik.Jezik, s.Sadrzaj),
                    SifraPredmeta = string.Format(@"{0}-{1}-{2}-{3}/{4}-{5}", s.OznakaOkruga, s.OznakaOrgana, s.OznakaKlase,
                                                  string.Format(@"{0}", s.BrojPredmeta).PadLeft(6, '0'), s.Godina.GetValueOrDefault(), s.OznakaJedinice),
                    LiceKontrole = Konverzija.VratiString(korisnik.Jezik, s.LiceKontrole),
                }).ToList());
            }
        }
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviElement = new ElementSifarnika();

                short?idOkruga  = null;
                short?idOpstine = null;
                int?  idMesta   = null;
                if (!string.IsNullOrEmpty(idElementa))
                {
                    var kljucevi = idElementa.Split('-');
                    if (kljucevi.Length == 3)
                    {
                        idOkruga  = Int16.Parse(kljucevi[0]);
                        idOpstine = Int16.Parse(kljucevi[1]);
                        idMesta   = Int32.Parse(kljucevi[2]);
                    }
                }

                try
                {
                    string naziv   = null;
                    bool   aktivan = false;

                    foreach (var element in podaci)
                    {
                        switch (element.Id)
                        {
                        case 0:
                            naziv = element.Vrednost;
                            break;

                        case 1:
                            aktivan = Boolean.Parse(element.Vrednost);
                            break;

                        case 2:
                            idOkruga = Int16.Parse(element.Vrednost);
                            break;

                        case 3:
                            idOpstine = Int16.Parse(element.Vrednost);
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(naziv))
                    {
                        throw new ApplicationException("Naziv mesta nije unet.");
                    }

                    if (naziv != null && naziv.Length > 200)
                    {
                        throw new ApplicationException("Naziv mesta ima više od 200 karaktera.");
                    }

                    context.mesta_SnimiMesto(idOkruga, idOpstine, ref idMesta,
                                             Konverzija.KonvertujULatinicu(naziv).SrediZaSnimanje(200), aktivan,
                                             korisnik.IdKorisnika);

                    noviElement.IdElementa            = string.Format(@"{0}-{1}-{2}", idOkruga, idOpstine, idMesta);
                    noviElement.Naziv                 = Konverzija.VratiString(korisnik.Jezik, naziv);
                    noviElement.Aktivan               = aktivan;
                    noviElement.DozvoljenoBrisanje    = true;
                    noviElement.DozvoljenoDodavanje   = false;
                    noviElement.DozvoljenaIzmena      = true;
                    noviElement.IdNadredjenogElementa = null;

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }

                return(noviElement);
            }
        }
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviElement = new ElementSifarnika();

                short?idVrstePredmeta = null;
                if (!string.IsNullOrEmpty(idElementa))
                {
                    idVrstePredmeta = Int16.Parse(idElementa);
                }

                try
                {
                    string naziv          = null;
                    string napomena       = null;
                    string oznaka         = null;
                    bool   aktivan        = false;
                    short? rok            = null;
                    string oznakaZaStampu = null;

                    foreach (PodatakElementaSifarnika element in podaci)
                    {
                        switch (element.Id)
                        {
                        case 0:
                            naziv = element.Vrednost;
                            break;

                        case 1:
                            oznaka = element.Vrednost;
                            break;

                        case 2:
                            aktivan = Boolean.Parse(element.Vrednost);
                            break;

                        case 3:
                            napomena = element.Vrednost;
                            break;

                        case 4:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                rok = Int16.Parse(element.Vrednost);
                            }
                            break;

                        case 5:
                            oznakaZaStampu = element.Vrednost;
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(naziv))
                    {
                        throw new ApplicationException("Naziv vrste predmeta nije unet.");
                    }

                    if (naziv != null && naziv.Length > 200)
                    {
                        throw new ApplicationException("Naziv vrste predmeta ima više od 200 karaktera.");
                    }

                    if (string.IsNullOrEmpty(oznaka))
                    {
                        throw new ApplicationException("Oznaka vrste predmeta nije uneta.");
                    }

                    if (oznaka != null && oznaka.Length > 3)
                    {
                        throw new ApplicationException("Oznaka vrste predmeta ima više od 3 karaktera.");
                    }

                    if (!string.IsNullOrEmpty(napomena) && napomena.Length > 2000)
                    {
                        throw new ApplicationException("Napomena vrste predmeta ima više od 2000 karaktera.");
                    }

                    if (rok == null)
                    {
                        throw new ApplicationException("Rok vrste predmeta nije unet.");
                    }

                    context.vrsta_pred_SnimiVrstuPredmeta(ref idVrstePredmeta, Konverzija.KonvertujULatinicu(naziv).SrediZaSnimanje(200),
                                                          Konverzija.KonvertujULatinicu(oznaka).SrediZaSnimanje(3), Konverzija.KonvertujULatinicu(napomena).SrediZaSnimanje(2000),
                                                          aktivan, korisnik.IdKorisnika, rok, Konverzija.KonvertujULatinicu(oznakaZaStampu).SrediZaSnimanje(30));

                    noviElement.IdElementa            = string.Format(@"{0}", idVrstePredmeta);
                    noviElement.Naziv                 = Konverzija.VratiString(korisnik.Jezik, naziv);
                    noviElement.Aktivan               = aktivan;
                    noviElement.DozvoljenoBrisanje    = true;
                    noviElement.DozvoljenoDodavanje   = false;
                    noviElement.DozvoljenaIzmena      = true;
                    noviElement.IdNadredjenogElementa = null;

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }

                return(noviElement);
            }
        }
Exemple #10
0
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviElement = new ElementSifarnika();

                short?idOkruga = null;
                if (!string.IsNullOrEmpty(idElementa))
                {
                    idOkruga = Int16.Parse(idElementa);
                }

                try
                {
                    string naziv    = null;
                    string oznaka   = null;
                    string napomena = null;
                    bool   aktivan  = false;
                    string mesto    = null;

                    foreach (PodatakElementaSifarnika element in podaci)
                    {
                        switch (element.Id)
                        {
                        case 0:
                            naziv = element.Vrednost;
                            break;

                        case 1:
                            oznaka = element.Vrednost;
                            break;

                        case 2:
                            aktivan = Boolean.Parse(element.Vrednost);
                            break;

                        case 3:
                            napomena = element.Vrednost;
                            break;

                        case 5:
                            mesto = element.Vrednost;
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(naziv))
                    {
                        throw new ApplicationException("Naziv okruga nije unet.");
                    }

                    if (naziv != null && naziv.Length > 200)
                    {
                        throw new ApplicationException("Naziv okruga ima više od 200 karaktera.");
                    }

                    if (string.IsNullOrEmpty(oznaka))
                    {
                        throw new ApplicationException("Oznaka okruga nije uneta.");
                    }

                    if (oznaka != null && oznaka.Length > 3)
                    {
                        throw new ApplicationException("Oznaka okruga ima više od 3 karaktera.");
                    }

                    if (!string.IsNullOrEmpty(napomena) && napomena.Length > 2000)
                    {
                        throw new ApplicationException("Napomena okruga ima više od 2000 karaktera.");
                    }

                    if (string.IsNullOrEmpty(mesto))
                    {
                        throw new ApplicationException("MEsto okruga nije uneta.");
                    }

                    if (mesto != null && mesto.Length > 200)
                    {
                        throw new ApplicationException("Mesto okruga ima više od 200 karaktera.");
                    }

                    context.okrug_SnimiOkrug(ref idOkruga, Konverzija.KonvertujULatinicu(oznaka).SrediZaSnimanje(3), Konverzija.KonvertujULatinicu(naziv).SrediZaSnimanje(200),
                                             Konverzija.KonvertujULatinicu(mesto).SrediZaSnimanje(200), Konverzija.KonvertujULatinicu(napomena).SrediZaSnimanje(2000), aktivan, korisnik.IdKorisnika);

                    noviElement.IdElementa            = string.Format(@"{0}", idOkruga);
                    noviElement.Naziv                 = Konverzija.VratiString(korisnik.Jezik, string.Format(@"{0}-{1}", oznaka, naziv));
                    noviElement.Aktivan               = aktivan;
                    noviElement.DozvoljenoBrisanje    = true;
                    noviElement.DozvoljenoDodavanje   = false;
                    noviElement.DozvoljenaIzmena      = true;
                    noviElement.IdNadredjenogElementa = null;

                    LogovanjeData.PromeniNapomenuOkrugaUlogovanihKorisnika(napomena);

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }

                return(noviElement);
            }
        }
Exemple #11
0
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviElement = new ElementSifarnika();

                short?idKretanjaPredmeta = null;
                if (!string.IsNullOrEmpty(idElementa))
                {
                    idKretanjaPredmeta = Int16.Parse(idElementa);
                }

                try
                {
                    string naziv           = null;
                    string napomena        = null;
                    var    aktivan         = false;
                    char?  status          = null;
                    var    zapisnik        = false;
                    string primedba        = null;
                    var    unosRoka        = false;
                    string oznaka          = null;
                    string nazivZaIstoriju = null;

                    foreach (var element in podaci)
                    {
                        switch (element.Id)
                        {
                        case 0:
                            naziv = element.Vrednost;
                            break;

                        case 1:
                            aktivan = Boolean.Parse(element.Vrednost);
                            break;

                        case 2:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                status = Char.Parse(element.Vrednost);
                            }
                            break;

                        case 3:
                            napomena = element.Vrednost;
                            break;

                        case 4:
                            zapisnik = Boolean.Parse(element.Vrednost);
                            break;

                        case 5:
                            primedba = element.Vrednost;
                            break;

                        case 6:
                            unosRoka = Boolean.Parse(element.Vrednost);
                            break;

                        case 7:
                            oznaka = element.Vrednost;
                            break;

                        case 8:
                            nazivZaIstoriju = element.Vrednost;
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(naziv))
                    {
                        throw new ApplicationException("Naziv kretanja predmeta nije unet.");
                    }

                    if (!string.IsNullOrEmpty(naziv) && naziv.Length > 200)
                    {
                        throw new ApplicationException("Naziv kretanja predmeta ima više od 200 karaktera.");
                    }

                    if (string.IsNullOrEmpty(oznaka))
                    {
                        throw new ApplicationException("Oznaka kretanja predmeta nije unet.");
                    }

                    if (!string.IsNullOrEmpty(oznaka) && oznaka.Length > 3)
                    {
                        throw new ApplicationException("Oznaka kretanja predmeta ima više od 3 karaktera.");
                    }

                    if (string.IsNullOrEmpty(nazivZaIstoriju))
                    {
                        throw new ApplicationException("Naziv za istoriju kretanja predmeta nije unet.");
                    }

                    if (!string.IsNullOrEmpty(nazivZaIstoriju) && nazivZaIstoriju.Length > 200)
                    {
                        throw new ApplicationException("Naziv za istoriju kretanja predmeta ima više od 200 karaktera.");
                    }

                    if (!string.IsNullOrEmpty(napomena) && napomena.Length > 2000)
                    {
                        throw new ApplicationException("Napomena kretanja predmeta ima više od 2000 karaktera.");
                    }

                    if (!string.IsNullOrEmpty(primedba) && primedba.Length > 100)
                    {
                        throw new ApplicationException("Primedba kretanja predmeta ima više od 100 karaktera.");
                    }

                    if (status == null)
                    {
                        throw new ApplicationException("Status kretanja predmeta nije izabran.");
                    }

                    context.kret_pred_SnimiKretanjePredmeta(ref idKretanjaPredmeta, Konverzija.KonvertujULatinicu(naziv).SrediZaSnimanje(200),
                                                            Konverzija.KonvertujULatinicu(napomena).SrediZaSnimanje(2000), aktivan, korisnik.IdKorisnika, status, zapisnik,
                                                            primedba.SrediZaSnimanje(100), unosRoka, oznaka, nazivZaIstoriju);

                    noviElement.IdElementa            = string.Format(@"{0}", idKretanjaPredmeta);
                    noviElement.Naziv                 = Konverzija.VratiString(korisnik.Jezik, naziv);
                    noviElement.Aktivan               = aktivan;
                    noviElement.DozvoljenoBrisanje    = true;
                    noviElement.DozvoljenoDodavanje   = false;
                    noviElement.DozvoljenaIzmena      = true;
                    noviElement.IdNadredjenogElementa = null;

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }

                return(noviElement);
            }
        }
Exemple #12
0
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviElement = new ElementSifarnika();

                int?idKorisnikaZaUnos = null;
                if (!string.IsNullOrEmpty(idElementa))
                {
                    idKorisnikaZaUnos = int.Parse(idElementa);
                }

                try
                {
                    string korisnickoIme       = null;
                    var    inspektor           = false;
                    short? idOkruga            = null;
                    var    unosNovogPredmeta   = false;
                    var    dozvolaRezervisanja = false;
                    var    izmenaPredmeta      = false;
                    var    brisanjePredmeta    = false;
                    var    administracija      = false;
                    var    pregledIzvestaja    = false;
                    string email                        = null;
                    string telefon                      = null;
                    string jmbg                         = null;
                    string imeIPrezime                  = null;
                    string napomena                     = null;
                    var    aktivan                      = true;
                    string lozinka                      = null;
                    string novaLozinka                  = null;
                    var    samoSvojePredmete            = false;
                    short? idOrgana                     = null;
                    short? maksimalniBrojPredmeta       = null;
                    short? maxBrojRezervisanihPredmeta  = null;
                    short? maksimalniBrojPredmetaGodine = null;
                    var    strogoPoverljivi             = false;

                    PodatakElementaSifarnika klase = null;

                    foreach (PodatakElementaSifarnika element in podaci)
                    {
                        switch (element.Id)
                        {
                        case 0:
                            korisnickoIme = element.Vrednost;
                            break;

                        case 1:
                            imeIPrezime = element.Vrednost;
                            break;

                        case 2:
                            email = element.Vrednost;
                            break;

                        case 3:
                            jmbg = element.Vrednost;
                            break;

                        case 4:
                            telefon = element.Vrednost;
                            break;

                        case 5:
                            aktivan = bool.Parse(element.Vrednost);
                            break;

                        case 6:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                idOkruga = short.Parse(element.Vrednost);
                            }
                            break;

                        case 7:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                inspektor = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 8:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                unosNovogPredmeta = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 9:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                dozvolaRezervisanja = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 10:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                izmenaPredmeta = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 11:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                brisanjePredmeta = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 12:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                administracija = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 13:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                pregledIzvestaja = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 14:
                            napomena = element.Vrednost;
                            break;

                        case 15:
                            lozinka = element.Vrednost;
                            break;

                        case 16:
                            novaLozinka = element.Vrednost;
                            break;

                        case 17:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                samoSvojePredmete = bool.Parse(element.Vrednost);
                            }
                            break;

                        case 18:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                idOrgana = short.Parse(element.Vrednost);
                            }
                            break;

                        case 19:
                            klase = element;
                            break;

                        case 20:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                maksimalniBrojPredmeta = short.Parse(element.Vrednost);
                            }
                            break;

                        case 21:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                maxBrojRezervisanihPredmeta = short.Parse(element.Vrednost);
                            }
                            break;

                        case 22:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                maksimalniBrojPredmetaGodine = short.Parse(element.Vrednost);
                            }
                            break;

                        case 23:
                            if (!string.IsNullOrEmpty(element.Vrednost))
                            {
                                strogoPoverljivi = bool.Parse(element.Vrednost);
                            }
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(korisnickoIme))
                    {
                        throw new ApplicationException("Korisničko ime korisnika nije uneto.");
                    }

                    if (!string.IsNullOrEmpty(korisnickoIme) && korisnickoIme.Length > 50)
                    {
                        throw new ApplicationException("Korisničko ime korisnika ima više od 50 karaktera.");
                    }

                    if (string.IsNullOrEmpty(email))
                    {
                        throw new ApplicationException("Email korisnika nije unet.");
                    }

                    if (!string.IsNullOrEmpty(email) && email.Length > 200)
                    {
                        throw new ApplicationException("Email korisnika ima više od 200 karaktera.");
                    }

                    if (string.IsNullOrEmpty(telefon))
                    {
                        throw new ApplicationException("Telefon korisnika nije unet.");
                    }

                    if (!string.IsNullOrEmpty(telefon) && telefon.Length > 200)
                    {
                        throw new ApplicationException("Telefon korisnika ima više od 200 karaktera.");
                    }

                    if (string.IsNullOrEmpty(jmbg))
                    {
                        throw new ApplicationException("JMBG korisnika nije unet.");
                    }

                    if (!string.IsNullOrEmpty(jmbg) && jmbg.Length != 13)
                    {
                        throw new ApplicationException("Jmbg korisnika nema 13 karaktera.");
                    }

                    if (string.IsNullOrEmpty(imeIPrezime))
                    {
                        throw new ApplicationException("Ime i prezime korisnika nisu uneti.");
                    }

                    if (!string.IsNullOrEmpty(imeIPrezime) && imeIPrezime.Length > 200)
                    {
                        throw new ApplicationException("Ime i prezime korisnika ima više od 200 karaktera.");
                    }

                    if (!string.IsNullOrEmpty(napomena) && napomena.Length > 2000)
                    {
                        throw new ApplicationException("Napomena kretanja predmeta ima više od 2000 karaktera.");
                    }

                    if (klase != null && klase.IzborniPodaci != null && idOkruga == null)
                    {
                        throw new ApplicationException("Okrug korisnika nije izabran.");
                    }

                    if (idElementa == null && string.IsNullOrEmpty(lozinka))
                    {
                        throw new ApplicationException("Lozinka korisnika nije uneta.");
                    }

                    if (string.IsNullOrEmpty(idElementa) && !string.IsNullOrEmpty(lozinka))
                    {
                        if (!(lozinka.Any(char.IsUpper) &&
                              lozinka.Any(char.IsLower) &&
                              lozinka.Any(char.IsDigit)))
                        {
                            throw new ApplicationException("Lozinka ne zadovoljava postavljena pravila kreiranja lozinke.<br> Lozinka korisnika mora sadržati bar jedno veliko slovo, jedno malo slovo i jedan broj.");
                        }
                    }

                    if (!string.IsNullOrEmpty(idElementa) && !string.IsNullOrEmpty(novaLozinka))
                    {
                        if (!(novaLozinka.Any(char.IsUpper) &&
                              novaLozinka.Any(char.IsLower) &&
                              novaLozinka.Any(char.IsDigit)))
                        {
                            throw new ApplicationException("Lozinka ne zadovoljava postavljena pravila kreiranja lozinke.<br> Lozinka korisnika mora sadržati bar jedno veliko slovo, jedno malo slovo i jedan broj.");
                        }
                    }

                    byte[] novaLozinkaZaSnimanje = null;
                    byte[] lozinkaZaSnimanje     = null;
                    if (idKorisnikaZaUnos != null)
                    {
                        novaLozinkaZaSnimanje = string.IsNullOrEmpty(novaLozinka) ? null : Konverzija.KonvertujULatinicu(novaLozinka).CalculateMd5Hash();
                    }
                    else
                    {
                        lozinkaZaSnimanje = string.IsNullOrEmpty(lozinka) ? null : Konverzija.KonvertujULatinicu(lozinka).CalculateMd5Hash();
                    }

                    context.korisnik_SnimiKorisnika(ref idKorisnikaZaUnos, Konverzija.KonvertujULatinicu(korisnickoIme).SrediZaSnimanje(50), inspektor, idOkruga, unosNovogPredmeta, dozvolaRezervisanja,
                                                    izmenaPredmeta, brisanjePredmeta, administracija, pregledIzvestaja, Konverzija.KonvertujULatinicu(email).SrediZaSnimanje(200), telefon.SrediZaSnimanje(200), jmbg.SrediZaSnimanje(13),
                                                    Konverzija.KonvertujULatinicu(imeIPrezime).SrediZaSnimanje(200), Konverzija.KonvertujULatinicu(napomena).SrediZaSnimanje(2000), aktivan, korisnik.IdKorisnika,
                                                    lozinkaZaSnimanje, novaLozinkaZaSnimanje, samoSvojePredmete, idOrgana, maksimalniBrojPredmeta, maxBrojRezervisanihPredmeta, maksimalniBrojPredmetaGodine, strogoPoverljivi);
                    noviElement.IdElementa            = string.Format(@"{0}", idKorisnikaZaUnos);
                    noviElement.Naziv                 = Konverzija.VratiString(korisnik.Jezik, korisnickoIme);
                    noviElement.Aktivan               = aktivan;
                    noviElement.DozvoljenoDodavanje   = false;
                    noviElement.DozvoljenaIzmena      = true;
                    noviElement.IdNadredjenogElementa = null;

                    //if (inspektor)
                    //{
                    //    context.klase_insp_ObrisiKlaseInspektora(idKorisnikaZaUnos);

                    //    if (idOkruga != null && idOrgana != null)
                    //    {
                    //        if (klase.Count > 0)
                    //        {
                    //            foreach (var klasaInspektora in klase)
                    //            {
                    //                context.klase_insp_SnimiKlasuInspektora(idKorisnikaZaUnos, idOkruga, idOrgana, Int16.Parse(klasaInspektora.IdPodatka));
                    //            }
                    //        }
                    //    }
                    //}

                    // tipovi dokumenata
                    context.klase_insp_ObrisiKlaseInspektora(idKorisnikaZaUnos);
                    if (klase != null && klase.IzborniPodaci != null)
                    {
                        foreach (var izabran in klase.IzborniPodaci)
                        {
                            if (izabran != null && izabran.Izabran)
                            {
                                var kljucevi = izabran.IdPodatka.Split('-');
                                if (kljucevi.Length == 2)
                                {
                                    var idOrganaKlase     = short.Parse(kljucevi[0]);
                                    var idKlaseZaSnimanje = short.Parse(kljucevi[1]);

                                    context.klase_insp_SnimiKlasuInspektora(idKorisnikaZaUnos, idOkruga, idOrganaKlase, idKlaseZaSnimanje);
                                }
                            }
                        }
                    }

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }

                return(noviElement);
            }
        }