Files
BeWoPlaner/Report/ReportObjects/ValidationMessageListRO.cs
2023-08-29 13:28:45 +02:00

92 lines
4.0 KiB
C#

using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Report.ReportObjects
{
public class ValidationMessageListRO : AbstractBeWoReportObject<ValidationMessageListRO>
{
public List<ValidationMessageRO> ValidationMessagesForMonth { get; set; }
public DateTime ReportStartDate { get; set; }
public DateTime ReportEndDate { get; set; }
public static ValidationMessageListRO Create(DateTime reportStart, DateTime reportEnd, List<ValidationMessage> validationMessagesForMonth)
{
var ro = new ValidationMessageListRO();
ro.ValidationMessagesForMonth = new List<ValidationMessageRO>();
ro.ReportStartDate = reportStart;
ro.ReportEndDate = reportEnd;
foreach (var msg in validationMessagesForMonth)
ro.ValidationMessagesForMonth.Add(CreateMessageRO(msg));
ro.ValidationMessagesForMonth = ro.ValidationMessagesForMonth.OrderBy(v => v.Employee.LastNameFirstName).ThenBy(v => v.TimeStamp).ToList();
return ro;
}
public static ValidationMessageRO CreateMessageRO(ValidationMessage message)
{
var ro = new ValidationMessageRO();
ro.TimeStamp = message.InsTs;
ro.Message = message.Message;
ro.Customer = message.CustomerName;
ro.ServiceCategory = message.ServiceCategory;
ro.ServiceDescription = message.ServiceDescription;
ro.ServiceRecordStart = message.ServiceRecordStart;
ro.ServiceRecordEnd = message.ServiceRecordEnd;
if (message.UserOid.HasValue)
ro.User = MapperFactory.UserDC_User.MapToNewDC(DAOFactory.GenericDAO.GetByID<ApplicationUser>(message.UserOid.Value));
if (message.EmployeeOid.HasValue)
ro.Employee = MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.GetByID<Employee>(message.EmployeeOid.Value));
if (message.SupportConceptOid.HasValue)
ro.SupportConcept = MapperFactory.SupportConceptDC_SupportConcept.MapToNewDC(DAOFactory.GenericDAO.GetByID<SupportConcept>(message.SupportConceptOid.Value));
switch (message.ServiceRecordValidationResult)
{
case 0: ro.ValidationResult = "Überschneidung zweier Leistungsempfangenden"; break;
case 1: ro.ValidationResult = "Terminüberschneidung zweier Mitarbeitenden"; break;
case 2: ro.ValidationResult = "Termin außerhalb des Hilfeplanzeitraums"; break;
case 3: ro.ValidationResult = "Überschreitung von bewilligten Stunden"; break;
case 4: ro.ValidationResult = "Überschreitung des zugelassenen Bearbeitungszeitraums"; break;
case 5: ro.ValidationResult = "Fehler beim Speichern"; break;
case 6: ro.ValidationResult = "Dokumentieren nach Erstellung der Spitzabrechnung"; break;
case 7: ro.ValidationResult = "Dokumentieren nach ablauf der Frist"; break;
case 8: ro.ValidationResult = "Termin außerhalb des Hilfeplanzeitraums"; break;
case 9: ro.ValidationResult = "Unterschrift existiert bereits"; break;
}
return ro;
}
public class ValidationMessageRO
{
public DateTime? TimeStamp { get; set; }
public string Message { get; set; }
public UserDC User { get; set; }
public EmployeeDC Employee { get; set; }
public string Customer { get; set; }
public SupportConceptDC SupportConcept { get; set; }
public string ServiceCategory { get; set; }
public string ServiceDescription { get; set; }
public DateTime? ServiceRecordStart { get; set; }
public DateTime? ServiceRecordEnd { get; set; }
public string ValidationResult { get; set; }
}
}
}