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); } } }
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()); }
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()); } }
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()); } }
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)); } }
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() { }); }
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(); }
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(); }
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 }); } }
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); } }
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(); }
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); }