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 { public List ValidationMessagesForMonth { get; set; } public DateTime ReportStartDate { get; set; } public DateTime ReportEndDate { get; set; } public static ValidationMessageListRO Create(DateTime reportStart, DateTime reportEnd, List validationMessagesForMonth) { var ro = new ValidationMessageListRO(); ro.ValidationMessagesForMonth = new List(); 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(message.UserOid.Value)); if (message.EmployeeOid.HasValue) ro.Employee = MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.GetByID(message.EmployeeOid.Value)); if (message.SupportConceptOid.HasValue) ro.SupportConcept = MapperFactory.SupportConceptDC_SupportConcept.MapToNewDC(DAOFactory.GenericDAO.GetByID(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; } } } }