Пример #1
0
        protected CodeArtList(string CODEART)
        {
            var entities = new BehoerdenloesungEntities();
            var q        = from x in entities.TBGMXCODEs
                           where x.CODEART == CODEART
                           orderby x.SORT
                           select x;

            ItemsById   = new Dictionary <decimal, CodeArt>();
            ItemsByBez  = new Dictionary <string, CodeArt>();
            ItemsByCode = new Dictionary <string, CodeArt>();
            foreach (var item in q)
            {
                var x = new CodeArt(item);
                if (ItemsByBez.ContainsKey(item.BEZ))
                {
                    _Logger.Error(string.Format("CODEART='{0}' beinhaltet BEZ='{1}' mehrmals", CODEART, item.BEZ));
                }
                else
                {
                    ItemsByBez.Add(item.BEZ, x);
                }
                ItemsById.Add(item.TBGMXCODE_ID, x);
                if (ItemsByCode.ContainsKey(item.CODEKEY))
                {
                    _Logger.Error(string.Format("CODEART='{0}' beinhaltet CODEKEY='{1}' mehrmals", CODEART, item.CODEKEY));
                }
                else
                {
                    ItemsByCode.Add(item.CODEKEY, x);
                }
            }
        }
Пример #2
0
        public IEnumerable <TbGESTraktanden> GetSitzungTraktanden(int sitzungId)
        {
            var entities = new BehoerdenloesungEntities();
            var q        = from s in entities.TbGESSitzungs
                           where s.TbGESSitzung_id == sitzungId
                           select s;

            if (!q.Any())
            {
                return(null);
            }
            var sitzung = q.First();

            return(sitzung.TbGESTraktandens.ToList());
        }
Пример #3
0
        public TbGESSitzung GetSitzung(int sitzungId)
        {
            var entities = new BehoerdenloesungEntities();

            using (entities)
            {
                var q = from x in entities.TbGESSitzungs
                        where x.TbGESSitzung_id == sitzungId
                        select x;
                if (!q.Any())
                {
                    return(null);
                }
                return(q.First());
            }
        }
Пример #4
0
        public IEnumerable <TbGESSitzung> GetSitzungen(int benutzerId)
        {
            var entities = new BehoerdenloesungEntities();

            using (entities)
            {
                var q1 = from x in entities.TbGESSitzungTeilnehmers
                         where x.TBADRPerson_ID == benutzerId && x.TbGESSitzung.WebFreigabe == "1"
                         select x.TbGESSitzung;
                foreach (var x in q1)
                {
                    var s = x.TbBHDGremium.Bezeichnung;
                }
                return(q1.ToList());
            }
        }
Пример #5
0
        protected CodeArtList(string CODEART)
        {
            var entities = new BehoerdenloesungEntities();
            var q        = from x in entities.TBGMXCODEs
                           where x.CODEART == CODEART
                           orderby x.SORT
                           select x;

            ItemsById  = new Dictionary <decimal, CodeArt>();
            ItemsByBez = new Dictionary <string, CodeArt>();
            foreach (var item in q)
            {
                ItemsById.Add(item.TBGMXCODE_ID, new CodeArt(item));
                ItemsByBez.Add(item.BEZ, new CodeArt(item));
            }
        }
Пример #6
0
        public SitzungTraktandModel GetTraktand(int traktandId)
        {
            var entities = new BehoerdenloesungEntities();
            var q        = from s in entities.TbGESTraktandens
                           where s.TbGESTraktanden_id == traktandId
                           select s;

            if (!q.Any())
            {
                return(null);
            }
            var traktandum = q.First();

            return(new SitzungTraktandModel()
            {
            });
        }
Пример #7
0
        public void UpdateComment(int traktandBenutzerId, string comment, decimal statusId)
        {
            var entities = new BehoerdenloesungEntities();
            var q        = from s in entities.TbGESTraktandenKommmentars
                           where s.TbGESTraktandenKommmentar_ID == traktandBenutzerId
                           select s;
            TbGESTraktandenKommmentar tbItem = null;

            if (!q.Any())
            {
                tbItem = new TbGESTraktandenKommmentar();
                //tbItem.TbGESBenutzer_Id = benutzerId;
                //tbItem.TbGESTraktand_Id = traktandId;
            }
            else
            {
                tbItem = q.First();
            }
            tbItem.Bemerkungen        = comment;
            tbItem.StellungnahmeDatum = DateTime.Now;
            tbItem.TbGMXCodeStatus_ID = statusId;
            entities.SaveChanges();
        }
Пример #8
0
        public SitzungenViewModel(BehoerdenloesungEntities entities, int benutzerId, List <TbBHDGremium> gremiumListe, bool ignoreWebFreigabe = false)
        {
            //var q1 = from x in entities.TbGESSitzungTeilnehmers
            //         where x.TBADRPerson_ID == benutzerId && x.TbGESSitzung.WebFreigabe == "1"
            //         select x.TbGESSitzung;

            var ids = gremiumListe.Select(g => g.TbBHDGremium_id).ToList();
            var q1  = from x in entities.TbGESSitzungs
                      where ids.Contains((int)(x.Gremium_id.Value)) && (ignoreWebFreigabe || x.WebFreigabe == "1")
                      select x;

            //foreach (var x in q1)
            //{
            //    var s = x.TbBHDGremium.Bezeichnung;
            //}

            var sitzungen = q1.ToList();

            var abgeschlossen   = CodeArten.GESSitzStatusCodes.ItemsByBez["Abgeschlossen"];
            var eroeffnet       = CodeArten.GESSitzStatusCodes.ItemsByBez["Eröffnet"];
            var freigegeben     = CodeArten.GESSitzStatusCodes.ItemsByBez["Freigegeben"];
            var abgeschlossenId = abgeschlossen.ID; // 2883
            var eroeffnetId     = eroeffnet.ID;     // 2884
            var freigegebenId   = freigegeben.ID;   // 2885

            var q2 = from x in sitzungen
                     where x.Status_id != abgeschlossenId
                     select x;

            AktiveSitzungen = q2.OrderByDescending(s => s.SitzungsDatum).ToList();

            var q3 = from x in sitzungen
                     where x.Status_id == abgeschlossenId
                     select x;

            AbgeschlosseneSitzungen = q3.OrderByDescending(s => s.SitzungsDatum).ToList();
        }
Пример #9
0
        public TraktandumViewModel(BehoerdenloesungEntities entities, int traktandId, decimal benutzerId)
        {
            Traktand        = null;
            GeschaefstTitel = "";
            Typ             = "";
            Signatur        = "";
            HatBemerkung    = false;

            // Traktand
            var q11 = from x1 in entities.TbGESTraktandens
                      where x1.TbGESTraktanden_id == traktandId
                      select x1;

            Traktand  = q11.First();
            SitzungId = (int)Traktand.TbGESSitzung_id;

            // GeschaefstTitel
            var q12 = from x2 in entities.TBGMXCODEs
                      where Traktand.TbGESGeschaeft_id == x2.TBGMXCODE_ID
                      select x2;

            if (q12.Any())
            {
                GeschaefstTitel = q12.First().BEZ;
            }

            // Typ
            var q13 = from x3 in entities.TBGMXCODEs
                      where Traktand.TraktandenTyp_id == x3.TBGMXCODE_ID
                      select x3;

            if (q13.Any())
            {
                Typ = q13.First().BEZ;
            }

            // Signatur
            var q14 = from x4 in entities.TbGesTraktandenRegistraturs
                      join t in entities.TbREGgruppes
                      on x4.TbRegGruppe_Id equals t.TbREGgruppe_id
                      where x4.TbGESTraktanden_id == Traktand.TbGESTraktanden_id
                      select t.Nummer;

            if (q14.Any())
            {
                Signatur = q14.First();
            }

            //var q1 = from x in entities.TbGESTraktandens
            //         join t1 in entities.TBGMXCODEs
            //             on x.TbGESGeschaeft_id equals t1.TBGMXCODE_ID
            //                into a1 from b1 in a1.DefaultIfEmpty(new TBGMXCODE())
            //         join t2 in entities.TBGMXCODEs
            //             on x.TraktandenTyp_id equals t2.TBGMXCODE_ID
            //                into a2 from b2 in a2.DefaultIfEmpty(new TBGMXCODE())
            //         join t3 in entities.TbGesTraktandenRegistraturs
            //             on x.TbGESTraktanden_id equals t3.TbGESTraktanden_id
            //                into a3 from b3 in a3.DefaultIfEmpty(new TbGesTraktandenRegistratur())
            //         join t4 in entities.TbREGgruppes
            //             on b3.TbRegGruppe_Id equals t4.TbREGgruppe_id
            //                into a4 from b4 in a4.DefaultIfEmpty(new TbREGgruppe())
            //         where x.TbGESTraktanden_id == traktandId
            //         select new TraktandenExtended()
            //         {
            //             Traktand = x,
            //             GeschaefstTitel = b1.BEZ,
            //             Typ = b2.BEZ,
            //             Signatur = b4.Nummer
            //         };

            //var q1 = from x in entities.TbGESTraktandens
            //         join t1 in entities.TBGMXCODEs
            //             on x.TbGESGeschaeft_id equals t1.TBGMXCODE_ID
            //         join t2 in entities.TBGMXCODEs
            //             on x.TraktandenTyp_id equals t2.TBGMXCODE_ID
            //         join t3 in entities.TbGesTraktandenRegistraturs
            //             on x.TbGESTraktanden_id equals t3.TbGESTraktanden_id
            //         join t4 in entities.TbREGgruppes
            //             on t3.TbRegGruppe_Id equals t4.TbREGgruppe_id
            //         where x.TbGESTraktanden_id == traktandId
            //         select new TraktandenExtended()
            //         {
            //             Traktand = x,
            //             GeschaefstTitel = t1.BEZ,
            //             Typ = t2.BEZ,
            //             Signatur = t4.Nummer
            //         };
            //string sql1 = q1.ToString();
            //if (!q1.Any())
            //{
            //    return;
            //}

            //var item = q1.First();

            //Traktand = item.Traktand;
            //GeschaefstTitel = item.GeschaefstTitel;
            //Signatur = item.Signatur;
            //Typ = item.Typ;

            PreviousId = null;
            NextId     = null;
            var p = from x in entities.TbGESTraktandens
                    where x.TbGESSitzung_id == Traktand.TbGESSitzung_id
                    orderby x.Traktanden_NR
                    select x.TbGESTraktanden_id;
            //string sql2 = p.ToString();
            var ids = p.ToList();

            for (var i = 0; i < ids.Count; i++)
            {
                if ((int)ids[i] == Traktand.TbGESTraktanden_id)
                {
                    if (i > 0)
                    {
                        PreviousId = (int)ids[i - 1];
                    }
                    if (i < ids.Count - 1)
                    {
                        NextId = (int)ids[i + 1];
                    }
                }
            }

            var q2 = from x in entities.TbGESTraktandenBeilagens
                     where x.TbGESTraktanden_ID == traktandId
                     join d in entities.TbGMXDateis
                     on x.TbGMXDatei_ID equals d.TbGMXDatei_id
                     select new Datei()
            {
                Id        = d.TbGMXDatei_id,
                DateiName = d.DateiName,
                Titel     = d.Titel,
                ErfDatum  = d.ErfDatum
            };
            string sql3 = q2.ToString();

            Beilagen = q2.ToList();

            var q3 = from x in entities.TbGMXDateis
                     join m in entities.vwGMXDateiMaxVersions
                     on new
            {
                x.ReferenzID,
                x.ReferenzMaske,
                x.ReferenzModul,
                x.ReferenzSection,
                x.DateiName,
                x.Version
            } equals new
            {
                m.ReferenzID,
                m.ReferenzMaske,
                m.ReferenzModul,
                m.ReferenzSection,
                m.DateiName,
                m.Version
            }
            where x.ReferenzID == traktandId &&
            x.ReferenzMaske == "FRMTraktanden" &&
            x.ReferenzModul == "GES" &&
            x.ReferenzSection == "LSTData"
            select x;

            Html           = "no content";
            CssFiles       = new List <string>();
            HatProtokoll   = false;
            ProtokollTitle = "";
            if (q3.Any())
            {
                var first = q3.First();
                HatProtokoll   = true;
                ProtokollTitle = first.Titel;
                var bytes = first.Datei;
                var ms    = new MemoryStream(bytes);
                using (ms)
                {
                    HtmlEditorExtension.Import(HtmlEditorImportFormat.Docx,
                                               ms, (html, cssFiles) =>
                    {
                        Html     = html;
                        CssFiles = cssFiles;
                    });
                }
            }

            // Kommentar
            decimal bemerkungId = 0;

            HatBemerkung       = false;
            Bemerkungen        = "";
            StellungnahmeDatum = DateTime.Now;
            TbGMXCodeStatus_ID = 0;

            var q4 = from x in entities.TbGESTraktandenKommmentars
                     where x.TbGESTraktanden_ID == Traktand.TbGESTraktanden_id && x.User_ID != null && x.User_ID.Value == benutzerId
                     select x;

            if (q4.Any())
            {
                var first = q4.First();
                bemerkungId        = first.TbGESTraktandenKommmentar_ID;
                HatBemerkung       = true;
                Bemerkungen        = first.Bemerkungen;
                StellungnahmeDatum = first.StellungnahmeDatum.HasValue ? first.StellungnahmeDatum.Value : DateTime.Now;
                TbGMXCodeStatus_ID = first.TbGMXCodeStatus_ID.HasValue ? first.TbGMXCodeStatus_ID.Value : 0;
            }

            KommentarCdList = new List <SelectListItem>();
            foreach (var codart in CodeArten.GESKommentarCodes)
            {
                KommentarCdList.Add(new SelectListItem()
                {
                    Value    = codart.ID.ToString(),
                    Text     = codart.BEZ,
                    Selected = codart.ID == TbGMXCodeStatus_ID
                });
            }
        }
Пример #10
0
        public TraktandumViewModel(BehoerdenloesungEntities entities, int traktandId, decimal benutzerId, log4net.ILog logger)
        {
            logger.InfoFormat("TraktandumViewModel(traktandId:{0} benutzerId:{1}", traktandId, benutzerId);

            Traktand               = null;
            GeschaefstTitel        = "";
            Typ                    = "";
            Signatur               = "";
            HatBemerkung           = false;
            SitzungKurzBezeichnung = "";
            MaybeOldDoc            = false;
            MaybeOldDocText        = "Der verwendete Dateityp '.doc' kann nicht dargestellt werden. Aktualisieren Sie das Dokument im GEVER  auf eine aktuellere Programmversion.";

            try
            {
                // Traktand
                var q11 = from x1 in entities.TbGESTraktandens
                          where x1.TbGESTraktanden_id == traktandId
                          select x1;
                logger.InfoFormat("q11:{0}", q11.ToString());
                Traktand    = q11.First();
                SitzungId   = (int)Traktand.TbGESSitzung_id;
                GeschaeftId = (int)Traktand.TbGESGeschaeft_id;

                // GeschaefstTitel
                var q12 = from x2 in entities.TbGESGeschaefts
                          where Traktand.TbGESGeschaeft_id == x2.TbGESGeschaeft_id
                          select x2;
                logger.InfoFormat("q12:{0}", q12.ToString());
                if (q12.Any())
                {
                    GeschaefstTitel = q12.First().Titel;
                }

                // SitzungKurzBezeichnung
                var q16 = from x2 in entities.TbGESSitzungs
                          where Traktand.TbGESSitzung_id == x2.TbGESSitzung_id
                          select x2;
                logger.InfoFormat("q16:{0}", q16.ToString());
                if (q16.Any())
                {
                    var sitzung = q16.First();
                    SitzungKurzBezeichnung = sitzung.KurzBezeichnung;
                    var abgeschlossen = CodeArten.GESSitzStatusCodes.ItemsByBez["Abgeschlossen"];
                    this.Abgeschlossen = (sitzung.Status_id == abgeschlossen.ID);
                }

                // Typ
                var q13 = from x3 in entities.TBGMXCODEs
                          where Traktand.TraktandenTyp_id == x3.TBGMXCODE_ID
                          select x3;
                logger.InfoFormat("q13:{0}", q13.ToString());
                if (q13.Any())
                {
                    Typ = q13.First().BEZ;
                }

                // Signatur
                var q14 = from x4 in entities.TbGesTraktandenRegistraturs
                          join t in entities.TbREGgruppes
                          on x4.TbRegGruppe_Id equals t.TbREGgruppe_id
                          where x4.TbGESTraktanden_id == Traktand.TbGESTraktanden_id
                          select t.Nummer;
                logger.InfoFormat("q14:{0}", q14.ToString());
                if (q14.Any())
                {
                    Signatur = q14.First();
                }
                PreviousId = null;
                NextId     = null;
                var p = from x in entities.TbGESTraktandens
                        where x.TbGESSitzung_id == Traktand.TbGESSitzung_id
                        orderby x.Traktanden_NR
                        select x.TbGESTraktanden_id;
                logger.InfoFormat("p:{0}", p.ToString());
                //string sql2 = p.ToString();
                var ids = p.ToList();
                for (var i = 0; i < ids.Count; i++)
                {
                    if ((int)ids[i] == Traktand.TbGESTraktanden_id)
                    {
                        if (i > 0)
                        {
                            PreviousId = (int)ids[i - 1];
                        }
                        if (i < ids.Count - 1)
                        {
                            NextId = (int)ids[i + 1];
                        }
                    }
                }

                //var q2 = from x in entities.TbGESTraktandenBeilagens
                //         where x.TbGESTraktanden_ID == traktandId
                //         join d in entities.TbGMXDateis
                //         on x.TbGMXDatei_ID equals d.TbGMXDatei_id
                //         select new Datei()
                //         {
                //             Id = d.TbGMXDatei_id,
                //             DateiName = d.DateiName,
                //             Titel = d.Titel,
                //             ErfDatum = d.ErfDatum,
                //             DateiTyp = d.DateiTyp
                //         };
                var q2 = from x in entities.TbGESTraktandenBeilagens
                         join d in entities.TbGMXDateis
                         on x.TbGMXDatei_ID equals d.TbGMXDatei_id
                         join m in entities.vwGMXDateiMaxVersions
                         on new
                {
                    d.ReferenzID,
                    d.ReferenzMaske,
                    d.ReferenzModul,
                    d.ReferenzSection,
                    d.DateiName,
                    d.Version
                } equals new
                {
                    m.ReferenzID,
                    m.ReferenzMaske,
                    m.ReferenzModul,
                    m.ReferenzSection,
                    m.DateiName,
                    m.Version
                }
                where x.TbGESTraktanden_ID == traktandId
                select new Datei()
                {
                    Id        = d.TbGMXDatei_id,
                    DateiName = d.DateiName,
                    Titel     = d.Titel,
                    ErfDatum  = d.ErfDatum,
                    DateiTyp  = d.DateiTyp
                };
                logger.InfoFormat("q2:{0}", q2.ToString());
                string sql3 = q2.ToString();
                Beilagen = q2.ToList();

                var q3 = from x in entities.TbGMXDateis
                         join m in entities.vwGMXDateiMaxVersions
                         on new
                {
                    x.ReferenzID,
                    x.ReferenzMaske,
                    x.ReferenzModul,
                    x.ReferenzSection,
                    x.DateiName,
                    x.Version
                } equals new
                {
                    m.ReferenzID,
                    m.ReferenzMaske,
                    m.ReferenzModul,
                    m.ReferenzSection,
                    m.DateiName,
                    m.Version
                }
                where x.ReferenzID == traktandId &&
                x.ReferenzMaske == "FRMTraktanden" &&
                x.ReferenzModul == "GES" &&
                x.ReferenzSection == "LSTData"
                select x;
                logger.InfoFormat("q3:{0}", q3.ToString());
                Html           = "no content";
                CssFiles       = new List <string>();
                HatProtokoll   = false;
                ProtokollTitle = "";
                if (q3.Any())
                {
                    try
                    {
                        var first = q3.First();//
                        HatProtokoll   = true;
                        ProtokollTitle = first.Titel;
                        MemoryStream ms    = null;
                        byte[]       bytes = null;
                        //bytes = File.ReadAllBytes(@"C:\Data\Work\dialog\Dialog\KundenPortal\Content\Hallo.docx");
                        if (first.IsIndexiert != "1")
                        {
                            bytes = new byte[first.Datei.Length - 1];
                            Array.Copy(first.Datei, 0, bytes, 0, first.Datei.Length - 1);
                        }
                        else
                        {
                            bytes = new byte[first.Datei.Length];
                            Array.Copy(first.Datei, 0, bytes, 0, first.Datei.Length);
                        }
                        ms = new MemoryStream(bytes);
                        var contentDirectory = ConfigurationManager.AppSettings["DevExpressHtmlEditorContentFilesSubdir"];
                        //var contentDirectory = @"C:\Data\Work\dialog\Dialog\KundenPortal\ContentFiles";
                        using (ms)
                        {
                            HtmlEditorExtension.Import(HtmlEditorImportFormat.Docx,
                                                       ms, true, contentDirectory, (html, cssFiles) =>
                            {
                                Html     = html;
                                CssFiles = cssFiles;
                            });
                        }
                        if (contentDirectory.Contains(":"))
                        {
                            DeleteOldImagesAndCssFiles(contentDirectory);
                            //var dir = @"C:\Data\Work\dialog\Dialog\KundenPortal\ContentFiles";
                            var re      = new Regex("<img.+?src=[\"'](?<src>.+?)[\"'].*?>");
                            var matches = re.Matches(Html);
                            foreach (Match match in matches)
                            {
                                var    src    = match.Groups["src"].Value;
                                var    name   = Path.GetFileName(src);
                                var    path   = Path.Combine(contentDirectory, name);
                                byte[] arr    = File.ReadAllBytes(path);
                                var    base64 = Convert.ToBase64String(arr);
                                Html = Html.Replace(src, string.Format("data:image/jpg;base64,{0}", base64));
                            }
                        }
                        else
                        {
                            DeleteOldImagesAndCssFiles(HttpContext.Current.Server.MapPath(contentDirectory));
                        }
                        if (Html.Length < 600 && first.DateiTyp.ToLower() == ".doc")
                        {
                            MaybeOldDoc = true;
                        }
                        //ProtokollUrl = GetTraktandumProtokollUrl(bytes);
                    }
                    catch (Exception ex)
                    {
                        logger.ErrorFormat("Error beim Erstellen des DOCX-Datei mit HtmlEditor mit Titel '{0}'", ProtokollTitle);
                        LogError(logger, ex, true);
                    }
                }

                // Kommentar
                decimal bemerkungId = 0;
                HatBemerkung       = false;
                Bemerkung          = "";
                StellungnahmeDatum = DateTime.Now;
                TbGMXCodeStatus_ID = 0;

                var q4 = from x in entities.TbGESTraktandenKommmentars
                         where x.TbGESTraktanden_ID == Traktand.TbGESTraktanden_id &&
                         x.User_ID == benutzerId
                         select x;
                logger.InfoFormat("q4:{0}", q4.ToString());
                if (q4.Any())
                {
                    var first = q4.First();
                    bemerkungId          = first.TbGESTraktandenKommmentar_ID;
                    HatBemerkung         = true;
                    Bemerkung            = first.Bemerkungen;
                    BemerkungVertraulich = first.BemerkungVertraulich;
                    StellungnahmeDatum   = first.StellungnahmeDatum.HasValue ? first.StellungnahmeDatum.Value : DateTime.Now;
                    TbGMXCodeStatus_ID   = first.TbGMXCodeStatus_ID.HasValue ? first.TbGMXCodeStatus_ID.Value : 0;
                }

                KommentarCdList = new List <SelectListItem>();
                foreach (var codart in CodeArten.GESKommentarCodes)
                {
                    KommentarCdList.Add(new SelectListItem()
                    {
                        Value    = codart.ID.ToString(),
                        Text     = codart.BEZ,
                        Selected = codart.ID == TbGMXCodeStatus_ID
                    });
                }

                //Kommentar von alle Sachbearbeiter
                var q5 = from x in entities.TbGESTraktandenKommmentars
                         join t in entities.TbSysUSRs
                         on x.User_ID equals t.ID
                         join g in entities.TBGMXCODEs
                         on x.TbGMXCodeStatus_ID equals g.TBGMXCODE_ID
                         where x.TbGESTraktanden_ID == traktandId &&
                         g.CODEART == "GES_KommentarCd" &&
                         x.User_ID != benutzerId
                         select new TraktandenKommentar()
                {
                    Id                 = x.TbGESTraktandenKommmentar_ID,
                    Kommentar          = x.Bemerkungen,
                    StellungNahmeDatum = x.StellungnahmeDatum,
                    StellungNahmeUser  = t.Name,
                    Status             = g.BEZ
                };
                logger.InfoFormat("q5:{0}", q5.ToString());
                var sql5 = q5.ToString();
                KommentarListe = q5.ToList();
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("TraktandumViewModel(traktandId:{0} benutzerId:{1}) Exception info: {2}", traktandId, benutzerId, ex.Message);
                LogError(logger, ex, true);
            }
        }
Пример #11
0
        public SitzungViewModel(BehoerdenloesungEntities entities, int sitzungId)
        {
            var q1 = from x in entities.TbGESSitzungs
                     where x.TbGESSitzung_id == sitzungId
                     select x;

            if (!q1.Any())
            {
                return;
            }
            Sitzung = q1.First();

            var q2 = from x in entities.TbGMXDateis
                     join m in entities.vwGMXDateiMaxVersions
                     on new {
                x.ReferenzID,
                x.ReferenzMaske,
                x.ReferenzModul,
                x.ReferenzSection,
                x.DateiName,
                x.Version
            } equals new {
                m.ReferenzID,
                m.ReferenzMaske,
                m.ReferenzModul,
                m.ReferenzSection,
                m.DateiName,
                m.Version
            }
            where x.ReferenzID == sitzungId &&
            x.ReferenzMaske == "FRMSitzung" &&
            x.ReferenzModul == "GES" &&
            x.ReferenzSection == "LSTData"
            select new Datei()
            {
                Id        = x.TbGMXDatei_id,
                ErfDatum  = x.ErfDatum,
                DateiName = x.DateiName,
                Titel     = x.Titel
            };
            var sql1 = q2.ToString();

            Dokumente = q2.ToList();

            var q3 = from x in Sitzung.TbGESTraktandens
                     join t1 in entities.TBGMXCODEs
                     on x.TbGESGeschaeft_id equals t1.TBGMXCODE_ID
                     into a1
                     from b1 in a1.DefaultIfEmpty(new TBGMXCODE())
                     join t2 in entities.TBGMXCODEs
                     on x.TraktandenTyp_id equals t2.TBGMXCODE_ID
                     into a2
                     from b2 in a2.DefaultIfEmpty(new TBGMXCODE())
                     join t3 in entities.TbGesTraktandenRegistraturs
                     on x.TbGESTraktanden_id equals t3.TbGESTraktanden_id
                     into a3
                     from b3 in a3.DefaultIfEmpty(new TbGesTraktandenRegistratur())
                     join t4 in entities.TbREGgruppes
                     on b3.TbRegGruppe_Id equals t4.TbREGgruppe_id
                     into a4
                     from b4 in a4.DefaultIfEmpty(new TbREGgruppe())
                     select new TraktandenExtended()
            {
                Traktand        = x,
                GeschaefstTitel = b1.BEZ,
                Typ             = b2.BEZ,
                Signatur        = b4.Nummer
            };

            //var q3 = from x in Sitzung.TbGESTraktandens
            //    join t1 in entities.TBGMXCODEs
            //        on x.TbGESGeschaeft_id equals t1.TBGMXCODE_ID
            //    join t2 in entities.TBGMXCODEs
            //        on x.TraktandenTyp_id equals t2.TBGMXCODE_ID
            //    join t3 in entities.TbGesTraktandenRegistraturs
            //        on x.TbGESTraktanden_id equals t3.TbGESTraktanden_id
            //    join t4 in entities.TbREGgruppes
            //        on t3.TbRegGruppe_Id equals t4.TbREGgruppe_id
            //    select new TraktandenExtended()
            //    {
            //        Traktand = x,
            //        GeschaefstTitel = t1.BEZ,
            //        Signatur = t4.Nummer,
            //        Typ = t2.BEZ
            //    };
            Traktandens = q3.OrderBy(x => x.Traktand.Traktanden_NR).ToList();
        }
Пример #12
0
        public SitzungViewModel(BehoerdenloesungEntities entities, int sitzungId, int userId)
        {
            //additional parameter userId added on 10.2
            UserId = userId;
            var q1 = from x in entities.TbGESSitzungs
                     where x.TbGESSitzung_id == sitzungId
                     select x;

            if (!q1.Any())
            {
                return;
            }
            Sitzung = q1.First();

            var q2 = from x in entities.TbGMXDateis
                     join m in entities.vwGMXDateiMaxVersions
                     on new {
                x.ReferenzID,
                x.ReferenzMaske,
                x.ReferenzModul,
                x.ReferenzSection,
                x.DateiName,
                x.Version
            } equals new {
                m.ReferenzID,
                m.ReferenzMaske,
                m.ReferenzModul,
                m.ReferenzSection,
                m.DateiName,
                m.Version
            }
            where x.ReferenzID == sitzungId &&
            x.ReferenzMaske == "FRMSitzung" &&
            x.ReferenzModul == "GES" &&
            x.ReferenzSection == "LSTData" &&
            x.Deleted != "1"
            select new Datei()
            {
                Id        = x.TbGMXDatei_id,
                ErfDatum  = x.ErfDatum,
                DateiName = x.DateiName,
                Titel     = x.Titel
            };
            var sql1 = q2.ToString();

            Dokumente = q2.ToList();

            var q3 = from x in Sitzung.TbGESTraktandens
                     join t1 in entities.TbGESGeschaefts
                     on x.TbGESGeschaeft_id equals t1.TbGESGeschaeft_id
                     into a1
                     from b1 in a1.DefaultIfEmpty(new TbGESGeschaeft())
                     join t2 in entities.TBGMXCODEs
                     on x.TraktandenTyp_id equals t2.TBGMXCODE_ID
                     into a2
                     from b2 in a2.DefaultIfEmpty(new TBGMXCODE())
                     //join t3 in entities.TbGesTraktandenRegistraturs
                     //    on x.TbGESTraktanden_id equals t3.TbGESTraktanden_id
                     //       into a3
                     //from b3 in a3.DefaultIfEmpty(new TbGesTraktandenRegistratur())
                     join t4 in entities.TbREGgruppes
                     on b1.TbRegGruppe_Id equals t4.TbREGgruppe_id
                     into a4
                     from b4 in a4.DefaultIfEmpty(new TbREGgruppe())
                     select new TraktandenExtended()
            {
                Traktand        = x,
                GeschaeftsTitel = b1.Titel,
                Typ             = b2.BEZ,
                Signatur        = b4.Nummer,
                SecurityLevel   = 0         // 0: Keine Rechte  1: Leserechte  2: Vollzugriff
            };

            var sb = new StringBuilder();

            sb.Append("select t.TbGESGeschaeft_id, t.CanEdit, t.CanRead ");
            sb.Append("from(select cast(ge.TbGESGeschaeft_id as int) as TbGESGeschaeft_id, ");
            sb.Append("             cast(case when gb.TbGMXCode_Security_id = 3193 then 1  else 0 end as bit) as CanRead, ");
            sb.Append("             cast(case when gb.TbGMXCode_Security_id = 3194 then 1  else 0 end as bit) as CanEdit, gb.TbGESGeschaeftBerechtigung_id, gr.TbBHDGremium_id ");
            sb.Append("      from TbGESGeschaeft ge, TbBHDGremium gr, TbGESGeschaeftBerechtigung gb ");
            sb.Append("      where  gb.[User_id] = 21 ");
            sb.Append("             and gb.TbGesGeschaeft_id = ge.TbGESGeschaeft_id ");
            sb.Append("             and ge.Eigner_id = gr.TbBHDGremium_id) t ");
            sb.Append("union ");
            sb.Append("select t.TbGESGeschaeft_id, t.CanEdit, t.CanRead ");
            sb.Append("from(select cast(ge.TbGESGeschaeft_id as int) as TbGESGeschaeft_id, ");
            sb.Append("             cast(case when gb.TbGMXCode_Security_id = 3193 then 1  else 0 end as bit) as CanRead, ");
            sb.Append("             cast(case when gb.TbGMXCode_Security_id = 3194 then 1  else 0 end as bit) as CanEdit, gb.TbGESDatenSatzBerechtigungSetup_id, gr.TbBHDGremium_id ");
            sb.Append("      from TbGESGeschaeft ge, TbBHDGremium gr, TbGESDatenSatzBerechtigungSetup  gb ");
            sb.Append("      where  gb.[User_id] = 21 ");
            sb.Append("             and(gb.TbBHDGremium_id = ge.Eigner_id or gb.TbBHDGremium_id = ge.AuftragGeber_id) ");
            sb.Append("             and ge.Eigner_id = gr.TbBHDGremium_id ");
            sb.Append("             and ge.TbGESGeschaeft_id not in (select TbGESGeschaeft_id from TbGESGeschaeftBerechtigung)) t ");

            var listWithDuplicates = entities.Database.SqlQuery <GeschaeftUserSecurity>(sb.ToString()).ToList().OrderBy(t => t.TbGESGeschaeft_id).ToList();
            var dic = new Dictionary <int, int>();

            foreach (var item in listWithDuplicates)
            {
                if (dic.ContainsKey(item.TbGESGeschaeft_id))
                {
                    var r1 = dic[item.TbGESGeschaeft_id];
                    var r2 = item.CanEdit ? 2 : item.CanRead ? 1 : 0;
                    dic[item.TbGESGeschaeft_id] = r1 < r2 ? r2 : r1;
                }
                else
                {
                    dic.Add(item.TbGESGeschaeft_id, item.CanEdit ? 2 : item.CanRead ? 1 : 0);
                }
            }

            //commented out Hari, 17.1.2015
            //var q3 = from x in Sitzung.TbGESTraktandens
            //         join t1 in entities.TBGMXCODEs
            //             on x.TbGESGeschaeft_id equals t1.TBGMXCODE_ID
            //                into a1
            //         from b1 in a1.DefaultIfEmpty(new TBGMXCODE())
            //         join t2 in entities.TBGMXCODEs
            //             on x.TraktandenTyp_id equals t2.TBGMXCODE_ID
            //                into a2
            //         from b2 in a2.DefaultIfEmpty(new TBGMXCODE())
            //         join t3 in entities.TbGesTraktandenRegistraturs
            //             on x.TbGESTraktanden_id equals t3.TbGESTraktanden_id
            //                into a3
            //         from b3 in a3.DefaultIfEmpty(new TbGesTraktandenRegistratur())
            //         join t4 in entities.TbREGgruppes
            //             on b3.TbRegGruppe_Id equals t4.TbREGgruppe_id
            //                into a4
            //         from b4 in a4.DefaultIfEmpty(new TbREGgruppe())
            //         select new TraktandenExtended()
            //         {
            //             Traktand = x,
            //             GeschaefstTitel = b1.BEZ,
            //             Typ = b2.BEZ,
            //             Signatur = b4.Nummer
            //         };

            //var q3 = from x in Sitzung.TbGESTraktandens
            //    join t1 in entities.TBGMXCODEs
            //        on x.TbGESGeschaeft_id equals t1.TBGMXCODE_ID
            //    join t2 in entities.TBGMXCODEs
            //        on x.TraktandenTyp_id equals t2.TBGMXCODE_ID
            //    join t3 in entities.TbGesTraktandenRegistraturs
            //        on x.TbGESTraktanden_id equals t3.TbGESTraktanden_id
            //    join t4 in entities.TbREGgruppes
            //        on t3.TbRegGruppe_Id equals t4.TbREGgruppe_id
            //    select new TraktandenExtended()
            //    {
            //        Traktand = x,
            //        GeschaefstTitel = t1.BEZ,
            //        Signatur = t4.Nummer,
            //        Typ = t2.BEZ
            //    };
            Traktandens = q3.OrderBy(x => x.Traktand.Traktanden_NR).ToList();
            foreach (var item in Traktandens)
            {
                var id = (int)item.Traktand.TbGESGeschaeft_id;
                if (dic.ContainsKey(id))
                {
                    item.SecurityLevel = dic[id];
                }
            }

            // SitzungsOrt
            var q4 = from x in entities.TBGMXCODEs
                     join g in entities.TbGESSitzungs
                     on x.TBGMXCODE_ID equals g.SitzungsOrt_ID
                     where g.TbGESSitzung_id == sitzungId &&
                     x.CODEART == "GES_SitzOrt"
                     select x;

            if (q4.Any())
            {
                SitzungsOrt = q4.First().BEZ;
            }

            var abgeschlossen = CodeArten.GESSitzStatusCodes.ItemsByBez["Abgeschlossen"];

            this.Abgeschlossen = (Sitzung.Status_id == abgeschlossen.ID);
        }