using System; using System.Collections.Generic; using System.Data; using System.Text; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.Util; using SDA.Kreta.Entities; namespace Kreta.DataAccessManual { internal class DashboardUzenetDal : DataAccessBase, IDashboardUzenetDal { public DashboardUzenetDal(DalHandler handler) : base(handler) { } #region BaseCRUD public void Delete(IDashboardUzenet dto) { var entity = dto as DashboardUzenet; entity.Delete(false); DalHelper.Commit(); } public void Delete(int id) { var entity = DashboardUzenet.GiveAnInstance(); entity.LoadByID(id); entity.Delete(); DalHelper.Commit(); } public IDashboardUzenet Get() { return DashboardUzenet.GiveAnInstance(); } public IDashboardUzenet Get(int id) { var entity = DashboardUzenet.GiveAnInstance(); entity.LoadByID(id); return entity; } public void Insert(IDashboardUzenet dto) { var entity = dto as DashboardUzenet; entity.Insert(); dto.ID = entity.ID; DalHelper.Commit(); } public void Update(IDashboardUzenet dto) { var entity = dto as DashboardUzenet; entity.Update(); DalHelper.Commit(); } #endregion public DataSet GetLoginDashboardUzenet() { var commandText = @" SELECT TOP 1 d.C_CIM ,d.C_TARTALOM FROM T_DASHBOARDUZENET d WHERE d.TOROLT = 'F' AND d.C_EGYEDIAZONOSITO = 'LOGINRENDSZERERTESITES' AND d.C_ISADMIN = 'T' "; return GetData(commandText); } public DataSet GetAdminDashboardUzenetDataSet(int felhasznaloId) { var parameters = new List<CommandParameter> { new CommandParameter("pFelhasznaloId", felhasznaloId) }; var commandText = @" SELECT DISTINCT * FROM ( SELECT d.C_CIM ,d.C_EGYEDIAZONOSITO ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 0, d.C_SORREND) as SORREND ,d.C_TARTALOM ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 4, d.C_DASHBOARDUZENETKATEGORIAID) as C_DASHBOARDUZENETKATEGORIAID ,d.C_KIEMELTIDOSZAKVEGE FROM T_DASHBOARDUZENET d WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND d.C_ISINTEZMENYI = 'F' AND d.C_ISFELHASZNALOI = 'F' AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_ISADMIN = 'T' UNION SELECT d.C_CIM ,d.C_EGYEDIAZONOSITO ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 0, d.C_SORREND) as SORREND ,COALESCE(di.C_TARTALOM, d.C_TARTALOM) AS C_TARTALOM ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 4, d.C_DASHBOARDUZENETKATEGORIAID) as C_DASHBOARDUZENETKATEGORIAID ,d.C_KIEMELTIDOSZAKVEGE FROM T_DASHBOARDUZENET d INNER JOIN T_DASHBOARDUZENETINTEZMENY di ON di.C_DASHBOARDUZENETID = d.ID AND di.TOROLT = 'F' WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND d.C_ISINTEZMENYI = 'T' AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_ISADMIN = 'T' UNION SELECT d.C_CIM ,d.C_EGYEDIAZONOSITO ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 0, d.C_SORREND) as SORREND ,d.C_TARTALOM AS C_TARTALOM ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 4, d.C_DASHBOARDUZENETKATEGORIAID) as C_DASHBOARDUZENETKATEGORIAID ,d.C_KIEMELTIDOSZAKVEGE FROM T_DASHBOARDUZENET d INNER JOIN T_DASHBOARDUZENETFELHASZNALO df ON df.C_DASHBOARDUZENETID = d.ID AND df.TOROLT = 'F' WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND d.C_ISFELHASZNALOI = 'T' AND df.C_FELHASZNALOID = :pFelhasznaloId AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_ISADMIN = 'T' ) AS x ORDER BY x.SORREND "; return GetData(commandText, parameters); } public DataSet GetTanarDashboardUzenetDataSet(int felhasznaloId) { var parameters = new List<CommandParameter> { new CommandParameter("pFelhasznaloId", felhasznaloId) }; var commandText = @" SELECT DISTINCT * FROM ( SELECT d.C_CIM ,d.C_EGYEDIAZONOSITO ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 0, d.C_SORREND) as SORREND ,d.C_TARTALOM ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 4, d.C_DASHBOARDUZENETKATEGORIAID) as C_DASHBOARDUZENETKATEGORIAID ,d.C_KIEMELTIDOSZAKVEGE FROM T_DASHBOARDUZENET d WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND d.C_ISINTEZMENYI = 'F' AND d.C_ISFELHASZNALOI = 'F' AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_ISTANAR = 'T' UNION SELECT d.C_CIM ,d.C_EGYEDIAZONOSITO ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 0, d.C_SORREND) as SORREND ,COALESCE(di.C_TARTALOM, d.C_TARTALOM) AS C_TARTALOM ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 4, d.C_DASHBOARDUZENETKATEGORIAID) as C_DASHBOARDUZENETKATEGORIAID ,d.C_KIEMELTIDOSZAKVEGE FROM T_DASHBOARDUZENET d INNER JOIN T_DASHBOARDUZENETINTEZMENY di ON di.C_DASHBOARDUZENETID = d.ID AND di.TOROLT = 'F' WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND d.C_ISINTEZMENYI = 'T' AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_ISTANAR = 'T' UNION SELECT d.C_CIM ,d.C_EGYEDIAZONOSITO ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 0, d.C_SORREND) as SORREND ,d.C_TARTALOM AS C_TARTALOM ,IIF(d.C_KIEMELTIDOSZAKVEGE IS NOT NULL AND d.C_KIEMELTIDOSZAKVEGE>GETDATE(), 4, d.C_DASHBOARDUZENETKATEGORIAID) as C_DASHBOARDUZENETKATEGORIAID ,d.C_KIEMELTIDOSZAKVEGE FROM T_DASHBOARDUZENET d INNER JOIN T_DASHBOARDUZENETFELHASZNALO df ON df.C_DASHBOARDUZENETID = d.ID AND df.TOROLT = 'F' WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND d.C_ISFELHASZNALOI = 'T' AND df.C_FELHASZNALOID = :pFelhasznaloId AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_ISTANAR = 'T' ) AS x ORDER BY SORREND "; return GetData(commandText, parameters); } public DataSet GetDashboardEgyediAzonositokByIntezmeny(int intezmenyId) { var parameters = new List<CommandParameter> { new CommandParameter("pIntezmenyId", intezmenyId) }; //FIXME: Ideiglenes megoldás csak! A T_BANK-ot ki kell majd váltani egy megfelelő (új) kapcsolótáblára!!! var commandText = /*@" SELECT d.C_EGYEDIAZONOSITO FROM T_DASHBOARDUZENET d INNER JOIN T_BANK_OSSZES tmp INNER JOIN T_INTEZMENY i ON i.ID = tmp.C_INTEZMENYID ON i.C_AZONOSITO = tmp.C_BANKNAME AND tmp.C_BANKNUMBER = 'LEPMODUL' WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_EGYEDIAZONOSITO = 'LEPMODULNEMELERHETO' AND i.ID = :pIntezmenyId "*/"SELECT '' AS C_EGYEDIAZONOSITO"; return GetData(commandText, parameters); } public DataSet GetFeatureMaintenanceDashboardUzenet(string feature) { //Ha valamelyik feature-höz vagy oldalhoz kell "karbantartás" oldal, //akkor azt a T_DASHBOARDUZENET táblába az alábbi mintájára kell felvenni: string egyediAzonosito = string.Format("MAINTENANCE_{0}", feature.ToUpper()); var commandText = $@" SELECT TOP 1 d.C_CIM ,d.C_TARTALOM FROM T_DASHBOARDUZENET d WHERE d.TOROLT = 'F' AND d.C_ISPOPUP = 'F' AND d.C_ISINTEZMENYI = 'T' AND (d.C_ERVENYESSEGKEZDETE <= GETDATE() OR d.C_ERVENYESSEGKEZDETE IS NULL) AND (d.C_ERVENYESSEGVEGE > GETDATE() OR d.C_ERVENYESSEGVEGE IS NULL) AND d.C_EGYEDIAZONOSITO = '{egyediAzonosito}' AND d.C_ISADMIN = 'T' "; return GetData(commandText); } #region Dashboard Popup public DataSet GetDashboardUzenetForPopup(int felhasznaloId, int? gondviseloId, int popupId, string egyediAzonosito) { var parameters = new List<CommandParameter>() { new CommandParameter("pFelhasznaloId", felhasznaloId), new CommandParameter("pGondviseloId", gondviseloId ?? (object)DBNull.Value), new CommandParameter("pPopupId", popupId), new CommandParameter("pEgyediAzonosito", egyediAzonosito) }; string gondviseloWhere = gondviseloId.HasValue ? " AND df.C_GONDVISELOID = :pGondviseloId" : " AND df.C_GONDVISELOID IS NULL"; var commandText = $@" SELECT df.ID ,d.C_EGYEDIAZONOSITO ,d.C_CIM ,d.C_TARTALOM ,d.C_DASHBOARDUZENETKATEGORIAID ,df.C_EGYEDIMUVELET ,df.C_MEGJELENITESEKSZAMA ,df.C_UTOLSOMEGTEKINTESIDEJE FROM T_DASHBOARDUZENETFELHASZNALO df INNER JOIN T_DASHBOARDUZENET d ON d.ID = df.C_DASHBOARDUZENETID WHERE df.TOROLT = 'F' AND d.TOROLT = 'F' AND d.C_ISPOPUP = 'T' AND df.C_FELHASZNALOID = @pFelhasznaloId {gondviseloWhere} AND df.ID = @pPopupId AND d.C_EGYEDIAZONOSITO = @pEgyediAzonosito "; return GetData(commandText, parameters); } public DataSet GetNextDashboardPopup(int felhasznaloId, int? gondviseloId, string[] displayedPopups) { var parameters = new List<CommandParameter>() { new CommandParameter("pFelhasznaloId", felhasznaloId), new CommandParameter("pGondviseloId", gondviseloId ?? (object)DBNull.Value, SDA.DataProvider.SDADBType.Int) }; string gondviseloWhere = gondviseloId.HasValue ? " AND df.C_GONDVISELOID = :pGondviseloId" : " AND df.C_GONDVISELOID IS NULL"; if (displayedPopups == null) { displayedPopups = new string[1] { "" }; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < displayedPopups.Length; i++) { string name = string.Format("pPopup{0}", i); parameters.Add(new CommandParameter(name, displayedPopups[i])); sb.AppendFormat("@{0},", name); } var commandText = $@" SELECT TOP 1 df.ID ,d.C_EGYEDIAZONOSITO FROM T_DASHBOARDUZENETFELHASZNALO df INNER JOIN T_FELHASZNALO f ON f.ID = df.C_FELHASZNALOID INNER JOIN T_DASHBOARDUZENET d ON d.ID = df.C_DASHBOARDUZENETID WHERE df.TOROLT = 'F' AND d.TOROLT = 'F' AND d.C_ISPOPUP = 'T' AND df.C_MEGJELENITESEKSZAMA > 0 AND d.C_EGYEDIAZONOSITO NOT IN ({sb.ToString().TrimEnd(',')}) AND f.TOROLT = 'F' AND f.ID = :pFelhasznaloId {gondviseloWhere} AND (d.C_ERVENYESSEGKEZDETE IS NULL OR d.C_ERVENYESSEGKEZDETE < GETDATE()) AND (d.C_ERVENYESSEGVEGE IS NULL OR d.C_ERVENYESSEGVEGE > GETDATE()) "; return GetData(commandText, parameters); } public void UpdateDashboardPopupClose(int popupId) { var dufEntity = DashboardUzenetFelhasznalo.GiveAnInstance(); dufEntity.LoadEntityByID(popupId); dufEntity.MegjelenitesekSzama--; dufEntity.UtolsoMegtekintesIdeje = DateTime.Now; dufEntity.Update(); DalHelper.Commit(); } public void UpdateDashboardPopupConfirm(int popupId) { var dufEntity = DashboardUzenetFelhasznalo.GiveAnInstance(); dufEntity.LoadByID(popupId); dufEntity.MegjelenitesekSzama = 0; dufEntity.UtolsoMegtekintesIdeje = DateTime.Now; dufEntity.Update(); DalHelper.Commit(); } public string UpdateDashboardPopupNext(int popupId) { var dufEntity = DashboardUzenetFelhasznalo.GiveAnInstance(); dufEntity.LoadByID(popupId); dufEntity.MegjelenitesekSzama = 0; dufEntity.UtolsoMegtekintesIdeje = DateTime.Now; dufEntity.Update(); DalHelper.Commit(); return dufEntity.EgyediMuvelet; } public DateTime GetKovTelepitesDatum() { var commandText = @" SELECT ISNULL(C_ERVENYESSEGKEZDETE, GETDATE()) as Datum FROM T_DASHBOARDUZENET WHERE C_EGYEDIAZONOSITO = 'LOGINRENDSZERERTESITES' "; return GetData(commandText).Tables[0].Rows[0].Field<DateTime>("Datum"); } #endregion } }