init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
297
Kreta.BusinessLogic/Helpers/OsszefuggoSzakGyakHelper.cs
Normal file
297
Kreta.BusinessLogic/Helpers/OsszefuggoSzakGyakHelper.cs
Normal file
|
@ -0,0 +1,297 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Classes.ExcelHelpers;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.DataAccess.Interfaces;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class OsszefuggoSzakGyakHelper : LogicBase
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
public OsszefuggoSzakGyakHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
#endregion Constructors
|
||||
|
||||
public DataSet GetOsszefuggoSzakGyakGrid(int csoportId, int tantargyId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var sysSettingsHelper = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h));
|
||||
var szakGyakKezdDatum = sysSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum);
|
||||
var szakGyakVegDatum = sysSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum);
|
||||
|
||||
DataSet dataSet = h.OsszefuggoSzakGyakDal(GridParameters).GetOsszefuggoSzakGyakGrid(csoportId, tantargyId, szakGyakKezdDatum.Value, szakGyakVegDatum.Value);
|
||||
|
||||
DataTable dataTable = dataSet.Tables[0];
|
||||
dataTable.Columns.Add("TeljesitesDatumFormatted");
|
||||
foreach (DataRow dataRow in dataTable.Rows.Cast<DataRow>().ToList())
|
||||
{
|
||||
dataRow["TeljesitesDatumFormatted"] = SDAConvert.ToDateTime(dataRow["TeljesitesDatum"]).ToShortDateString();
|
||||
if (dataRow["ErtekelesSzoveg"] == DBNull.Value || dataRow["ErtekelesSzoveg"].ToString() == "null")
|
||||
{ dataRow["ErtekelesSzoveg"] = string.Empty; }
|
||||
if (dataRow["Megjegyzes"] == DBNull.Value || dataRow["Megjegyzes"].ToString() == "null")
|
||||
{ dataRow["Megjegyzes"] = string.Empty; }
|
||||
}
|
||||
|
||||
return dataSet;
|
||||
});
|
||||
}
|
||||
|
||||
public void SaveOsszefuggoSzakGyakGrid(List<OsszefuggoSzakGyakGridCo> coList)
|
||||
{
|
||||
Validate(coList);
|
||||
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var osszefuggoSzakGyakDal = h.OsszefuggoSzakGyakDal();
|
||||
var tanuloDal = h.Tanulo();
|
||||
var tanuloErtekelesDal = h.TanuloErtekelesDal();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var tanuloEntity = tanuloDal.Get(co.ID);
|
||||
var osszefuggoSzakGyakEntity = tanuloEntity.OsszefuggoSzakGyak.SingleOrDefault(x => !x.Torolt && x.TantargyId == co.TantargyId && x.CsoportId == co.CsoportId);
|
||||
|
||||
if (co.IsRowToDelete)
|
||||
{
|
||||
if (osszefuggoSzakGyakEntity != null)
|
||||
{
|
||||
osszefuggoSzakGyakDal.Delete(osszefuggoSzakGyakEntity);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (osszefuggoSzakGyakEntity == null)
|
||||
{
|
||||
Insert(h, osszefuggoSzakGyakDal, co);
|
||||
}
|
||||
else
|
||||
{
|
||||
Update(h, osszefuggoSzakGyakDal, tanuloErtekelesDal, co, osszefuggoSzakGyakEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void Validate(List<OsszefuggoSzakGyakGridCo> coList)
|
||||
{
|
||||
var errorMessage = new StringBuilder();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
if (co.Teljesitett.HasValue && !co.TeljesitesDatum.HasValue ||
|
||||
!co.Teljesitett.HasValue && co.TeljesitesDatum.HasValue ||
|
||||
!co.Teljesitett.HasValue && !co.TeljesitesDatum.HasValue && (co.ErtekelesOsztalyzatId.HasValue || !string.IsNullOrWhiteSpace(co.ErtekelesSzoveg) || !string.IsNullOrWhiteSpace(co.Megjegyzes)))
|
||||
{
|
||||
errorMessage.Append($"{co.TanuloNev} {FeljegyzesekResource.XtanuloAdatsoraHibas} {FeljegyzesekResource.TeljesitveValasztoEsTeljesitesDatumKotelezoVagyMindennekUresnekKellLennieTorlesEseten}");
|
||||
errorMessage.AppendLine();
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(co.Megjegyzes) && co.Megjegyzes.Length > Constants.General.EgybefuggoSzakmaiGyakorlatMegjegyzesMaxHossza)
|
||||
{
|
||||
errorMessage.Append($"{co.TanuloNev} {FeljegyzesekResource.XtanuloAdatsoraHibas} {ErrorResource.AMegjegyzesMaximum4000KarakterLehet}");
|
||||
errorMessage.AppendLine();
|
||||
}
|
||||
}
|
||||
|
||||
if (errorMessage.Length > 0)
|
||||
{
|
||||
throw new ValidationException(errorMessage.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void Insert(IDalHandler dalHandler, IOsszefuggoSzakGyakDal osszefuggoSzakGyakDal, OsszefuggoSzakGyakGridCo co)
|
||||
{
|
||||
var osszefuggoSzakGyakEntity = osszefuggoSzakGyakDal.Get();
|
||||
|
||||
osszefuggoSzakGyakEntity.Teljesitett = co.Teljesitett;
|
||||
osszefuggoSzakGyakEntity.TeljesitesDatum = co.TeljesitesDatum;
|
||||
osszefuggoSzakGyakEntity.Megjegyzes = !string.IsNullOrWhiteSpace(co.Megjegyzes) ? co.Megjegyzes : null;
|
||||
osszefuggoSzakGyakEntity.TanuloId = co.ID;
|
||||
osszefuggoSzakGyakEntity.CsoportId = co.CsoportId;
|
||||
osszefuggoSzakGyakEntity.TantargyId = co.TantargyId;
|
||||
|
||||
osszefuggoSzakGyakDal.Insert(osszefuggoSzakGyakEntity);
|
||||
|
||||
if (co.ErtekelesOsztalyzatId.HasValue)
|
||||
{
|
||||
SaveErtekeles(dalHandler, co, osszefuggoSzakGyakEntity.ID, false);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(co.ErtekelesSzoveg))
|
||||
{
|
||||
SaveErtekeles(dalHandler, co, osszefuggoSzakGyakEntity.ID, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void Update(IDalHandler dalHandler, IOsszefuggoSzakGyakDal osszefuggoSzakGyakDal, ITanuloErtekelesDal tanuloErtekelesDal, OsszefuggoSzakGyakGridCo co, IOsszefuggoSzakGyak osszefuggoSzakGyakEntity)
|
||||
{
|
||||
osszefuggoSzakGyakEntity.Teljesitett = co.Teljesitett;
|
||||
osszefuggoSzakGyakEntity.TeljesitesDatum = co.TeljesitesDatum;
|
||||
osszefuggoSzakGyakEntity.Megjegyzes = !string.IsNullOrWhiteSpace(co.Megjegyzes) ? co.Megjegyzes : null;
|
||||
|
||||
osszefuggoSzakGyakDal.FullUpdate(osszefuggoSzakGyakEntity);
|
||||
|
||||
var ertekelesOsztalyzatEntity = osszefuggoSzakGyakEntity.TanuloErtekeles.SingleOrDefault(x => !x.Torolt && x.ErtekelesOsztalyzatId.HasValue);
|
||||
if (co.ErtekelesOsztalyzatId.HasValue)
|
||||
{
|
||||
if (ertekelesOsztalyzatEntity == null)
|
||||
{
|
||||
SaveErtekeles(dalHandler, co, osszefuggoSzakGyakEntity.ID, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateErtekeles(dalHandler, co, ertekelesOsztalyzatEntity, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteErtekeles(tanuloErtekelesDal, ertekelesOsztalyzatEntity);
|
||||
}
|
||||
|
||||
var ertekelesSzovegEntity = osszefuggoSzakGyakEntity.TanuloErtekeles.SingleOrDefault(x => !x.Torolt && !string.IsNullOrWhiteSpace(x.ErtekelesSzoveg));
|
||||
if (!string.IsNullOrWhiteSpace(co.ErtekelesSzoveg))
|
||||
{
|
||||
if (ertekelesSzovegEntity == null)
|
||||
{
|
||||
SaveErtekeles(dalHandler, co, osszefuggoSzakGyakEntity.ID, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateErtekeles(dalHandler, co, ertekelesSzovegEntity, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteErtekeles(tanuloErtekelesDal, ertekelesSzovegEntity);
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveErtekeles(IDalHandler dalHandler, OsszefuggoSzakGyakGridCo co, int osszefuggoSzakGyakId, bool isSzoveg)
|
||||
{
|
||||
var ertekeles = SetTanuloErtekelesCo(co, osszefuggoSzakGyakId);
|
||||
if (isSzoveg)
|
||||
{
|
||||
ertekeles.ErtekelesSzoveg = co.ErtekelesSzoveg;
|
||||
ertekeles.ErtekelesSzovegFormazott = co.ErtekelesSzoveg;
|
||||
}
|
||||
else
|
||||
{
|
||||
ertekeles.ErtekelesOsztalyzatId = co.ErtekelesOsztalyzatId;
|
||||
}
|
||||
|
||||
SaveOrUpdateTanuloErtekeles(dalHandler, ertekeles);
|
||||
}
|
||||
|
||||
private void UpdateErtekeles(IDalHandler dalHandler, OsszefuggoSzakGyakGridCo co, ITanuloErtekeles ertekelesEntity, bool isSzoveg)
|
||||
{
|
||||
List<int> nemzetiDokumentumNyelvek = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, dalHandler)).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
||||
|
||||
var ertekeles = new TanuloErtekelesCo(ertekelesEntity, nemzetiDokumentumNyelvek, TanevId);
|
||||
ertekeles.Datum = co.TeljesitesDatum.Value;
|
||||
|
||||
if (isSzoveg)
|
||||
{
|
||||
ertekeles.ErtekelesSzoveg = co.ErtekelesSzoveg;
|
||||
ertekeles.ErtekelesSzovegFormazott = co.ErtekelesSzoveg;
|
||||
}
|
||||
else
|
||||
{
|
||||
ertekeles.ErtekelesOsztalyzatId = co.ErtekelesOsztalyzatId;
|
||||
}
|
||||
|
||||
SaveOrUpdateTanuloErtekeles(dalHandler, ertekeles);
|
||||
}
|
||||
|
||||
private void SaveOrUpdateTanuloErtekeles(IDalHandler dalHandler, TanuloErtekelesCo ertekeles)
|
||||
{
|
||||
var helper = new TanuloErtekelesHelper(new DalHandlerConnectionType(ConnectionType, dalHandler));
|
||||
helper.SaveOrUpdateTanuloErtekeles(FelhasznaloId, ertekeles);
|
||||
}
|
||||
|
||||
private void DeleteErtekeles(ITanuloErtekelesDal tanuloErtekelesDal, ITanuloErtekeles ertekelestEntity)
|
||||
{
|
||||
if (ertekelestEntity != null && ertekelestEntity.ID.IsEntityId())
|
||||
{
|
||||
tanuloErtekelesDal.Delete(ertekelestEntity.ID);
|
||||
}
|
||||
}
|
||||
|
||||
private TanuloErtekelesCo SetTanuloErtekelesCo(OsszefuggoSzakGyakGridCo co, int osszefuggoSzakGyakId)
|
||||
{
|
||||
var ertekeles = new TanuloErtekelesCo
|
||||
{
|
||||
TanuloId = co.ID,
|
||||
TantargyId = co.TantargyId,
|
||||
ErtekelesModId = (int)ErtekelesModEnum.na,
|
||||
ErtekelesTema = TanuloErtekelesResource.OsszefuggoSzakmaiGyakorlat,
|
||||
OsztalyCsoportId = co.CsoportId,
|
||||
ErtekeloId = FelhasznaloId,
|
||||
Datum = co.TeljesitesDatum.Value,
|
||||
TipusId = (int)ErtekelesTipusEnum.evkozi_jegy_ertekeles,
|
||||
OsszefuggoSzakGyakId = osszefuggoSzakGyakId
|
||||
};
|
||||
return ertekeles;
|
||||
}
|
||||
|
||||
#region Export
|
||||
|
||||
public MemoryStream Export(int csoportId, int tantargyId)
|
||||
{
|
||||
var manager = new ExcelExportManager();
|
||||
var exportFile = new ExcelExportItem();
|
||||
|
||||
exportFile.AddColumn((int)ExportColumns.TanuloNeve, FeljegyzesekResource.TanuloNeve);
|
||||
exportFile.AddColumn((int)ExportColumns.Teljesites, FeljegyzesekResource.Teljesitve);
|
||||
exportFile.AddColumn((int)ExportColumns.ErtekelesOsztalyzat, FeljegyzesekResource.Erdemjegy);
|
||||
exportFile.AddColumn((int)ExportColumns.ErtekelesSzoveges, FeljegyzesekResource.SzovegesErtekeles);
|
||||
exportFile.AddColumn((int)ExportColumns.Datum, FeljegyzesekResource.Datum);
|
||||
exportFile.AddColumn((int)ExportColumns.Megjegyzes, FeljegyzesekResource.Megjegyzes);
|
||||
|
||||
var dataSet = this.GetOsszefuggoSzakGyakGrid(csoportId, tantargyId);
|
||||
dataSet = dataSet.DataSetSort("TanuloNev");
|
||||
|
||||
var i = 2;
|
||||
foreach (var item in dataSet.Tables[0].AsEnumerable())
|
||||
{
|
||||
exportFile.AddCell(i, (int)ExportColumns.TanuloNeve, item.Field<string>("TanuloNev"));
|
||||
exportFile.AddCell(i, (int)ExportColumns.Teljesites, item.Field<string>("Teljesitett_BNAME"));
|
||||
exportFile.AddCell(i, (int)ExportColumns.ErtekelesOsztalyzat, item.Field<string>("ErtekelesOsztalyzatId_DNAME"));
|
||||
exportFile.AddCell(i, (int)ExportColumns.ErtekelesSzoveges, item.Field<string>("ErtekelesSzoveg"));
|
||||
exportFile.AddCell(i, (int)ExportColumns.Datum, item.Field<string>("TeljesitesDatumFormatted"));
|
||||
exportFile.AddCell(i, (int)ExportColumns.Megjegyzes, item.Field<string>("Megjegyzes"));
|
||||
i++;
|
||||
}
|
||||
|
||||
return manager.CreateExcelExport(new List<ExcelExportItem> { exportFile });
|
||||
}
|
||||
|
||||
public enum ExportColumns
|
||||
{
|
||||
TanuloNeve = 0,
|
||||
Teljesites,
|
||||
ErtekelesOsztalyzat,
|
||||
ErtekelesSzoveges,
|
||||
Datum,
|
||||
Megjegyzes,
|
||||
}
|
||||
|
||||
#endregion Export
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue