Example #1
0
        public static void ObrisiPredmete(UlogovaniKorisnik korisnik, List <long> predmeti, string razlogBrisanja)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    if (korisnik.BrisanjePredmeta && (predmeti != null && predmeti.Count > 0))
                    {
                        foreach (var idPredmeta in predmeti)
                        {
                            context.predmet_ObrisiPredmet(idPredmeta, korisnik.IdKorisnika, razlogBrisanja.SrediZaSnimanje(2000));
                        }
                    }

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }
            }
        }
Example #2
0
        public static List <ArhiviranPredmet> ArhivirajPredmete(UlogovaniKorisnik korisnik, List <long> predmeti, List <Element> aktovi, string napomena)
        {
            //listu predmeta Id, Broj, Napomena
            var arhiviraniPredmeti = new List <ArhiviranPredmet>();

            if (predmeti != null && predmeti.Count > 0)
            {
                var aktoviNapomena = string.Empty;
                if (aktovi != null && aktovi.Count > 0)
                {
                    aktoviNapomena = aktovi.Aggregate(aktoviNapomena, (current, akt) => current + (akt.IdElementa + ","));
                }

                var novaNapomena = string.Format(@"{0} {1}", aktoviNapomena.TrimEnd(','), napomena);
                foreach (var idPredmeta in predmeti)
                {
                    using (var context = DmsData.GetContextWithTransaction())
                    {
                        try
                        {
                            var predmet = context.predmet_ArhivirajPredmet(idPredmeta, korisnik.IdKorisnika, novaNapomena.SrediZaSnimanje(2000)).Single();
                            context.Transaction.Commit();
                            //dodati u listu uspesnih (bez napomene, null)
                            arhiviraniPredmeti.Add(new ArhiviranPredmet
                            {
                                IdPredmeta   = idPredmeta,
                                BrojPredmeta = string.Format(@"{0}-{1}-{2}-{3}/{4}-{5}", predmet.OznakaOkruga, predmet.OznakaOrgana,
                                                             predmet.OznakaKlase, string.Format(@"{0}", predmet.BrojPredmeta).PadLeft(6, '0'),
                                                             predmet.Godina.GetValueOrDefault(), predmet.OznakaJedinice),
                                Arhiviran = true,
                            });
                        }
                        catch (Exception exc)
                        {
                            context.Transaction.Rollback();
                            arhiviraniPredmeti.Add(new ArhiviranPredmet
                            {
                                IdPredmeta = idPredmeta,
                                Napomena   = exc.Message,
                                Arhiviran  = false,
                            });
                        }
                        finally
                        {
                            context.Connection.Close();
                        }
                    }
                }
            }

            return(arhiviraniPredmeti);
        }
Example #3
0
        public static PodaciDokumenta SnimiDokumentPredmeta(UlogovaniKorisnik korisnik, long idPredmeta, string naziv, string putanja)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviFajl = new PodaciDokumenta();
                try
                {
                    short?idDokumenta = null;
                    putanja = DmsFileManager.SacuvajFajl(putanja);
                    var hashcode = DmsFileManager.GetMD5(putanja);

                    var novNaziv   = Path.GetFileNameWithoutExtension(naziv);
                    var ekstenzija = Path.GetExtension(naziv);
                    if (ekstenzija != null)
                    {
                        ekstenzija = ekstenzija.Substring(1).ToLower();
                        context.dokument_DodajDokument(idPredmeta, ref idDokumenta, korisnik.IdKorisnika, novNaziv, putanja,
                                                       null, hashcode, ekstenzija);

                        context.predmet_SnimiAktivnostPredmeta(idPredmeta, korisnik.IdKorisnika,
                                                               string.Format(@"Dodat dokument {0} na predmet.", naziv));

                        noviFajl.IdDokumenta = idDokumenta.GetValueOrDefault();
                        noviFajl.Naziv       = novNaziv;
                        noviFajl.Ekstenzija  = ekstenzija;
                        noviFajl.Obrisan     = false;
                    }

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

                return(noviFajl);
            }
        }
Example #4
0
        public static void AktivirajPredmet(UlogovaniKorisnik korisnik, long idPredmeta)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    context.predmet_AktivirajPredmet(idPredmeta, korisnik.IdKorisnika);

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }
            }
        }
Example #5
0
        public static void SnimiAktivnostPredmeta(UlogovaniKorisnik korisnik, long idPredmeta, string naziv)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    context.predmet_SnimiAktivnostPredmeta(idPredmeta, korisnik.IdKorisnika, string.Format(@"Pregled dokumenta predmeta sa nazivom: {0}.", naziv));

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }
            }
        }
Example #6
0
        public static void ObrisiKretanjePredmeta(UlogovaniKorisnik korisnik, long idPredmeta, short idKretanja)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    context.istorija_ObrisiKretanjePredmeta(idPredmeta, idKretanja, korisnik.IdKorisnika);

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }
            }
        }
Example #7
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);
            }
        }
Example #8
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);
            }
        }
Example #9
0
        private static Predmet VratiPredmet(UlogovaniKorisnik korisnik, long idPredmeta)
        {
            // upisivanje loga - pregleda predmeta u aktivnosti
            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    context.predmet_SnimiAktivnostPredmeta(idPredmeta, korisnik.IdKorisnika, "Pregled predmeta.");

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

            using (var context = DmsData.GetContext())
            {
                var p = context.predmet_VratiPredmet(idPredmeta).Select(predmet => new Predmet
                {
                    IdPredmeta                  = predmet.IdPredmeta,
                    BrojPredmeta                = predmet.BrojPredmeta,
                    IdJedinice                  = predmet.IdJedinice,
                    IdKlase                     = predmet.IdKlase,
                    IdKreator                   = predmet.IdKreatora,
                    IdOkruga                    = predmet.IdOkruga,
                    IdOrgana                    = predmet.IdOrgana,
                    IdTakse                     = predmet.IdTakse,
                    IdVrstePredmeta             = predmet.IdVrstePredmeta,
                    NazivVrstePredmeta          = string.Format(@"{0}-{1}", predmet.OznakaVrstePredmeta, predmet.NazivVrstePredmeta),
                    IdInspektora                = predmet.IdInspektora,
                    NazivInspektora             = predmet.NazivInspektora,
                    Podnosilac                  = predmet.Podnosilac,
                    PodnosilacJedinstveniBroj   = predmet.PodnosilacJedinstveniBroj,
                    LiceKontrole                = predmet.LiceKontrole,
                    LiceKontroleJedinstveniBroj = predmet.LiceKontroleJedinstveniBroj,
                    Napomena                    = predmet.Napomena,
                    PodnosilacJeInspektor       = predmet.PodnosilacJeInspektor,
                    Prilog = predmet.Prilog,
                    PutanjaArhiviranjaDokumenata = predmet.PutanjaArhiviranjaDokumenata,
                    Sadrzaj               = predmet.Sadrzaj,
                    Status                = predmet.Status,
                    NazivStatusa          = VratiNazivStatusa(korisnik.Jezik, predmet.Status, predmet.IdNadredjenogPredmeta.HasValue),
                    StraniBroj            = predmet.StraniBroj,
                    VremeRezervacije      = predmet.VremeRezervacije,
                    VremeKreiranja        = predmet.VremeKreiranja,
                    StvarnoVremeKreiranja = predmet.StvarnoVremeKreiranja,
                    NazivOkruga           = string.Format(@"{0}-{1}", predmet.OznakaOkruga, predmet.NazivOkruga),
                    OznakaOkruga          = predmet.OznakaOkruga,
                    OznakaKlase           = predmet.OznakaKlase,
                    OznakaOrgana          = predmet.OznakaOrgana,
                    OznakaJedinice        = predmet.OznakaJedinice,
                    NazivKreatora         = predmet.NazivKreatora,
                    Godina                = predmet.Godina.GetValueOrDefault(),
                    IdOpstine             = predmet.IdOpstine,
                    NazivOpstine          = predmet.NazivOpstine,
                    IdNadredjenogPredmeta = predmet.IdNadredjenogPredmeta,
                    IdMesta               = predmet.IdMesta,
                    NazivMesta            = predmet.NazivMesta,
                    StrogoPoverljiv       = predmet.StrogoPoverljiv.GetValueOrDefault(),
                }).SingleOrDefault();

                if (p != null)
                {
                    p.Istorija = context.istorija_VratiIstorijuPredmeta(idPredmeta, null, korisnik.IdKorisnika).Select(i => new IstorijaPredmeta
                    {
                        Vreme         = i.Vreme,
                        Korisnik      = i.NazivKorisnika,
                        Napomena      = i.Napomena,
                        Opis          = i.Opis,
                        Obrisao       = i.Obrisao,
                        DatumBrisanja = i.DatumBrisanja
                    }).ToList();

                    p.Kretanje = context.istorija_VratiIstorijuPredmeta(idPredmeta, true, korisnik.IdKorisnika).Select(i => new IstorijaPredmeta
                    {
                        Vreme      = i.Vreme,
                        Korisnik   = i.NazivKorisnika,
                        Napomena   = i.Napomena,
                        Opis       = i.Opis,
                        IdKretanja = i.IdKretanja,
                        DatumRoka  = i.DatumRoka
                    }).ToList();

                    p.DMS = new DMSPredmeta
                    {
                        IdPredmeta           = idPredmeta,
                        DozvoljeneEkstenzije = DMSData.ContentTypes.Keys.ToList(),
                        // Dokumenti = DMSData.VratiDokumentePredmeta(korisnik, idPredmeta), ovo ce se pozivati svaki put kad se klikne na tab
                        DozvoljenoVracanjeObrisanog = korisnik.Administracija,
                        MaksimalnaVelicina          = 1024 * 100 // 100 mb
                    };

                    if (p.IdNadredjenogPredmeta.HasValue)
                    {
                        var pred = context.predmet_VratiBrojPredmeta(p.IdNadredjenogPredmeta).SingleOrDefault();

                        if (pred != null)
                        {
                            p.BrojNadredjenogPredmeta = 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);
                        }
                    }

                    p.PovezaniPredmeti =
                        context.predmet_VratiPovezanePredmete(p.IdPredmeta).Select(x => new PovezaniPredmet
                    {
                        IdPredmeta   = x.IdPredmeta,
                        BrojPredmeta = string.Format(@"{0}-{1}-{2}-{3}/{4}-{5}", x.OznakaOkruga, x.OznakaOrgana,
                                                     x.OznakaKlase,
                                                     string.Format(@"{0}", x.BrojPredmeta).PadLeft(6, '0'),
                                                     x.Godina.GetValueOrDefault(), x.OznakaJedinice)
                    }).ToList();

                    return(p);
                }

                return(null);
            }
        }
Example #10
0
        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);
            }
        }
Example #11
0
        private static PredmetiZaglavlje VratiPodatkePredmetaZaglavlja(UlogovaniKorisnik korisnik, long idPredmeta, bool cirilica)
        {
            // upisivanje loga - pregleda predmeta u aktivnosti
            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    context.predmet_SnimiAktivnostPredmeta(idPredmeta, korisnik.IdKorisnika, "Štampanje predmeta.");

                    context.Transaction.Commit();
                }
                catch (Exception)
                {
                    context.Transaction.Rollback();
                    throw;
                }
                finally
                {
                    context.Connection.Close();
                }
            }
            var jezik = "0";

            if (cirilica)
            {
                jezik = "1";
            }

            using (var context = DmsData.GetContext())
            {
                var zaglavlje = context.izvestaj_VratiDetaljePredmeta(idPredmeta).Select(p => new PredmetiZaglavlje
                {
                    IdPredmeta                  = p.IdPredmeta,
                    IdNadredjenogPredmeta       = p.IdNadredjenogPredmeta,
                    OznakaOkruga                = p.OznakaOkruga,
                    NazivOkruga                 = Konverzija.VratiString(jezik, p.NazivOkruga),
                    OznakaOrgana                = p.OznakaOrgana,
                    NazivOrgana                 = Konverzija.VratiString(jezik, p.NazivOrgana),
                    OznakaKlase                 = p.OznakaKlase,
                    NazivKlase                  = Konverzija.VratiString(jezik, p.NazivKlase),
                    BrojPredmeta                = p.BrojPredmeta,
                    OznakaJedinice              = p.OznakaJedinice,
                    NazivJedinice               = Konverzija.VratiString(jezik, p.NazivJedinice),
                    ImeIPrezimeKreatora         = Konverzija.VratiString(jezik, p.ImeIPrezimeKreatora),
                    KorisnickoImeKreatora       = Konverzija.VratiString(jezik, p.KorisnickoImeKreatora),
                    PodnosilacJeInspektor       = p.PodnosilacJeInspektor,
                    Podnosilac                  = Konverzija.VratiString(jezik, p.Podnosilac),
                    PodnosilacJedinstveniBroj   = p.PodnosilacJedinstveniBroj,
                    LiceKontrole                = Konverzija.VratiString(jezik, p.LiceKontrole),
                    LiceKontroleJedinstveniBroj = p.LiceKontroleJedinstveniBroj,
                    VremeKreiranja              = p.VremeKreiranja,
                    VremeRezervacije            = p.VremeRezervacije,
                    OznakaVrstePredmeta         = p.OznakaVrstePredmeta,
                    NazivVrstePredmeta          = Konverzija.VratiString(jezik, p.NazivVrstePredmeta),
                    OznakaVrstePredmetaZaStampu = p.OznakaVrstePredmetaZaStampu,
                    KorisnickoImeInspektora     = p.KorisnickoImeInspektora,
                    ImeIPrezimeInspektora       = Konverzija.VratiString(jezik, p.ImeIPrezimeInspektora),
                    Prilog              = Konverzija.VratiString(jezik, p.Prilog),
                    Sadrzaj             = Konverzija.VratiString(jezik, p.Sadrzaj),
                    NazivTakse          = Konverzija.VratiString(jezik, p.NazivTakse),
                    OznakaTakseZaStampu = p.OznakaTakseZaStampu,
                    StraniBroj          = p.StraniBroj,
                    Napomena            = Konverzija.VratiString(jezik, p.Napomena),
                    Status              = p.Status,
                    NazivStatusa        = PredmetiData.VratiNazivStatusa(korisnik.Jezik, p.Status, p.IdNadredjenogPredmeta.HasValue),
                    Datum = DateTime.Now,
                    DetaljanBrojPredmeta         = string.Format(@"{0}-{1}-{2}-{3}/{4}-{5}", p.OznakaOkruga, p.OznakaOrgana, p.OznakaKlase, p.BrojPredmeta, p.VremeRezervacije.Year, p.OznakaJedinice),
                    DetaljanBrojPredmetaSa000000 = string.Format(@"{0}-{1}-{2}-{3}/{4}-{5}", p.OznakaOkruga, p.OznakaOrgana, p.OznakaKlase, string.Format(@"{0}", p.BrojPredmeta).PadLeft(6, '0'), p.VremeRezervacije.Year, p.OznakaJedinice),
                    DatumIstekaRoka = p.VremeIstekaRoka.GetValueOrDefault(),
                    Rok             = p.Rok.GetValueOrDefault(),
                    Mesto           = Konverzija.VratiString(jezik, p.Mesto),
                }).SingleOrDefault();
                if (zaglavlje != null)
                {
                    zaglavlje.StavkeIstorije = VratiStavkeIstorijePredmeta(idPredmeta, jezik);
                }
                return(zaglavlje);
            }
        }
Example #12
0
        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);
            }
        }
Example #13
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);
            }
        }
Example #14
0
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            using (var context = DmsData.GetContextWithTransaction())
            {
                var noviElement = new ElementSifarnika();

                byte?idPrecice = null;
                if (!string.IsNullOrEmpty(idElementa))
                {
                    idPrecice = Byte.Parse(idElementa);
                }

                try
                {
                    string tekst = null;

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

                    if (string.IsNullOrEmpty(tekst))
                    {
                        throw new ApplicationException("Tekst prečice nije unet.");
                    }

                    if (tekst != null && tekst.Length > 2000)
                    {
                        throw new ApplicationException("Tekst prečice ima više od 2000 karaktera.");
                    }

                    context.precica_SnimiPrecicu(korisnik.IdKorisnika, idPrecice, tekst.SrediZaSnimanje(2000));

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

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

                return(noviElement);
            }
        }
Example #15
0
        public ElementSifarnika SnimiPodatkeElementa(string idElementa, List <PodatakElementaSifarnika> podaci, UlogovaniKorisnik korisnik)
        {
            var noviElement = new ElementSifarnika();

            short?idInspekcije = null;

            if (!string.IsNullOrEmpty(idElementa))
            {
                idInspekcije = short.Parse(idElementa);
            }

            List <Inspekcija> klaseIJedinice = new List <Inspekcija>();

            string naziv = null;

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

                case 4:
                    if (podatak.IzborniPodaci != null && podatak.IzborniPodaci.Count > 0)
                    {
                        foreach (var podaciZaIzbor in podatak.IzborniPodaci)
                        {
                            if (podaciZaIzbor != null && !string.IsNullOrEmpty(podaciZaIzbor.IdPodatka))
                            {
                                var kljucevi = podaciZaIzbor.IdPodatka.Split('-');

                                if (kljucevi.Length == 3)
                                {
                                    if (!string.IsNullOrEmpty(kljucevi[0]) && !string.IsNullOrEmpty(kljucevi[1]))
                                    {
                                        var klasaIJedinica = new Inspekcija
                                        {
                                            IdOrgana   = short.Parse(kljucevi[0]),
                                            IdKlase    = short.Parse(kljucevi[1]),
                                            IdJedinice = string.IsNullOrEmpty(kljucevi[2]) ? (short)0 : short.Parse(kljucevi[2]),
                                        };

                                        klaseIJedinice.Add(klasaIJedinica);
                                    }
                                }
                            }
                        }
                    }
                    break;
                }
            }

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

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

            using (var context = DmsData.GetContextWithTransaction())
            {
                try
                {
                    context.inspekcije_SnimiInspekciju(ref idInspekcije, naziv.SrediZaSnimanje(100), korisnik.IdKorisnika, korisnik.IdOkruga);

                    context.inspekcija_ObrisiKlaseIJedinice(idInspekcije, korisnik.IdOkruga, korisnik.IdKorisnika);

                    foreach (var klasaIJedinica in klaseIJedinice.GroupBy(x => new { x.IdOrgana, x.IdKlase, x.IdJedinice }))
                    {
                        context.inspekcija_SacuvajKlasuIJedinicu(idInspekcije, klasaIJedinica.Key.IdOrgana,
                                                                 klasaIJedinica.Key.IdKlase, klasaIJedinica.Key.IdJedinice, korisnik.IdOkruga,
                                                                 korisnik.IdKorisnika);
                    }

                    noviElement.IdElementa            = string.Format(@"{0}", idInspekcije);
                    noviElement.Naziv                 = Konverzija.VratiString(korisnik.Jezik, naziv.SrediZaSnimanje(100));
                    noviElement.Aktivan               = true;
                    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);
            }
        }
Example #16
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);
        }
Example #17
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);
            }
        }
Example #18
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);
            }
        }