private void UpdateReportValidationWithReplacingData(string oldValue, string newValue, ImportableWorkScheduleUnitModel workScheduleForUnit, string colLabel, ref ReportValidationModel reportValidation) { if ((oldValue ?? String.Empty) != (newValue ?? String.Empty)) { reportValidation.AddReportItem( WorkScheduleValidationType.CONFLICT_WITH_PREVIOUS_DATA, GetReplacingDataMessage(workScheduleForUnit.Row, colLabel, (oldValue ?? String.Empty), (newValue ?? String.Empty)), new List <string>() { workScheduleForUnit.ID }); } }
private void UpdateReportValidationWithReplacingData(UnitCrewMember oldCrewMember, UnitCrewMember newCrewMember, ImportableWorkScheduleUnitModel workScheduleForUnit, string colLabel, ref ReportValidationModel reportValidation) { if ((oldCrewMember != null ? oldCrewMember.EmployeeId.ToString() : String.Empty) != (newCrewMember != null ? newCrewMember.EmployeeId.ToString() : String.Empty)) { reportValidation.AddReportItem( WorkScheduleValidationType.CONFLICT_WITH_PREVIOUS_DATA, GetReplacingDataMessage(workScheduleForUnit.Row, colLabel, (oldCrewMember != null ? oldCrewMember.EmployeeId.ToString() : String.Empty), (newCrewMember != null ? newCrewMember.EmployeeId.ToString() : String.Empty)), new List <string>() { workScheduleForUnit.ID }); } }
public void UpdateReportValidationWithInvalidUnits(List <string> validUnitList, ref ReportValidationModel reportValidation) { List <string> invalidUnitList = WorkScheduleForUnitList.Select(wsU => wsU.UnitId).Except(validUnitList).ToList <string>(); if (invalidUnitList.Count == 0) { return; } foreach (ImportableWorkScheduleUnitModel workScheduleWithInvalidUnit in WorkScheduleForUnitList.Where(u => invalidUnitList.Contains(u.UnitId))) { reportValidation.AddReportItem( WorkScheduleValidationType.INVALID_UNIT, workScheduleWithInvalidUnit.GetMessage(ImportableWorkScheduleUnitModel.colNames[ImportableWorkScheduleUnitModel.UNIT_ID_COL_NUM], workScheduleWithInvalidUnit.UnitId), new List <string>() { workScheduleWithInvalidUnit.ID }); } }
public void UpdateReportValidationWithRepeatedCrewMembers(ref ReportValidationModel reportValidation) { //repeatedCrewMemberRowList = new List<int>(); List <ImportableWorkScheduleUnitModel> workScheduleAdaptedForOneMember = new List <ImportableWorkScheduleUnitModel>(); foreach (ImportableWorkScheduleUnitModel workScheduleUnitOriginal in WorkScheduleForUnitList.Where(u => !String.IsNullOrEmpty(u.WorkshiftLabel) && u.ShiftDate.HasValue)) { CloneWorkScheduleWithDateValues(driverEmployeeId: workScheduleUnitOriginal.Doctor, workScheduleAdaptedForOneMember: workScheduleAdaptedForOneMember, workScheduleUnitOriginal: workScheduleUnitOriginal); CloneWorkScheduleWithDateValues(driverEmployeeId: workScheduleUnitOriginal.Nurse, workScheduleAdaptedForOneMember: workScheduleAdaptedForOneMember, workScheduleUnitOriginal: workScheduleUnitOriginal); CloneWorkScheduleWithDateValues(driverEmployeeId: workScheduleUnitOriginal.Driver, workScheduleAdaptedForOneMember: workScheduleAdaptedForOneMember, workScheduleUnitOriginal: workScheduleUnitOriginal); CloneWorkScheduleWithDateValues(driverEmployeeId: workScheduleUnitOriginal.FirstAuxiliar, workScheduleAdaptedForOneMember: workScheduleAdaptedForOneMember, workScheduleUnitOriginal: workScheduleUnitOriginal); CloneWorkScheduleWithDateValues(driverEmployeeId: workScheduleUnitOriginal.SecondAuxiliar, workScheduleAdaptedForOneMember: workScheduleAdaptedForOneMember, workScheduleUnitOriginal: workScheduleUnitOriginal); CloneWorkScheduleWithDateValues(driverEmployeeId: workScheduleUnitOriginal.ThirdAuxiliar, workScheduleAdaptedForOneMember: workScheduleAdaptedForOneMember, workScheduleUnitOriginal: workScheduleUnitOriginal); } workScheduleAdaptedForOneMember = workScheduleAdaptedForOneMember.Distinct().OrderBy(u => u.Driver).ThenBy(u => u.Row).ThenBy(u => u.WorkshiftLabel).ThenBy(u => u.ShiftDate.Value).ToList(); for (int i = 1; i < workScheduleAdaptedForOneMember.Count; i++) { if (workScheduleAdaptedForOneMember[i].Driver.Equals(workScheduleAdaptedForOneMember[i - 1].Driver) && workScheduleAdaptedForOneMember[i].ShiftDate.Value.Equals(workScheduleAdaptedForOneMember[i - 1].ShiftDate.Value) && workScheduleAdaptedForOneMember[i].WorkshiftLabel.Equals(workScheduleAdaptedForOneMember[i - 1].WorkshiftLabel) && !workScheduleAdaptedForOneMember[i].Row.Equals(workScheduleAdaptedForOneMember[i - 1].Row)) { reportValidation.AddReportItem( WorkScheduleValidationType.EMPLOYEE_DUPLICATED_AT_DAY, GetConflictingDataMessage(workScheduleAdaptedForOneMember[i - 1].Row, workScheduleAdaptedForOneMember[i].Row, Properties.Resources.EMPLOYEE_LABEL, workScheduleAdaptedForOneMember[i].Driver), new List <string>() { workScheduleAdaptedForOneMember[i - 1].ID, workScheduleAdaptedForOneMember[i].ID }); } } //return repeatedCrewMemberRowList.Count > 0; }
public void UpdateReportValidationWithRepeatedUnits(ref ReportValidationModel reportValidation)//out List<int> repeatedUnitRowList { List <ImportableWorkScheduleUnitModel> workScheduleForChecking; workScheduleForChecking = WorkScheduleForUnitList.Where(u => !String.IsNullOrEmpty(u.UnitId) && !String.IsNullOrEmpty(u.WorkshiftLabel) && u.ShiftDate.HasValue) .OrderBy(u => u.UnitId).ThenBy(u => u.ShiftDate.Value).ThenBy(u => u.WorkshiftLabel).ToList(); for (int i = 1; i < workScheduleForChecking.Count; i++) { if (workScheduleForChecking[i].UnitId.Equals(workScheduleForChecking[i - 1].UnitId) && workScheduleForChecking[i].ShiftDate.Value.Equals(workScheduleForChecking[i - 1].ShiftDate.Value) && workScheduleForChecking[i].WorkshiftLabel.Equals(workScheduleForChecking[i - 1].WorkshiftLabel)) { reportValidation.AddReportItem( WorkScheduleValidationType.UNIT_DUPLICATED_AT_DAY, GetConflictingDataMessage(workScheduleForChecking[i - 1].Row, workScheduleForChecking[i].Row, ImportableWorkScheduleUnitModel.colNames[ImportableWorkScheduleUnitModel.UNIT_ID_COL_NUM], workScheduleForChecking[i].UnitId), new List <string>() { workScheduleForChecking[i - 1].ID, workScheduleForChecking[i].ID }); //repeatedUnitRowList.Add(workScheduleForChecking) } } }
public void UpdateReportValidationWithInvalidEmployees(List <string> validEmployeeIdList, ref ReportValidationModel reportValidation) { List <string> allEmployeeIdsOfWorkSchedule = WorkScheduleForUnitList.Select(wsU => wsU.Driver) .Union(WorkScheduleForUnitList.Select(wsU => wsU.ThirdAuxiliar) .Union(WorkScheduleForUnitList.Select(wsU => wsU.SecondAuxiliar) .Union(WorkScheduleForUnitList.Select(wsU => wsU.FirstAuxiliar) .Union(WorkScheduleForUnitList.Select(wsU => wsU.Nurse) .Union(WorkScheduleForUnitList.Select(wsU => wsU.Doctor) ))))).ToList <string>(); List <string> invalidEmployeeIdList = allEmployeeIdsOfWorkSchedule.Except( validEmployeeIdList.Union(new List <string>() { null, String.Empty })).ToList <string>(); if (invalidEmployeeIdList.Count == 0) { return; } foreach (ImportableWorkScheduleUnitModel workScheduleWithInvalidEmployeeId in WorkScheduleForUnitList) { List <string> employeeInvalidListByUnit = new List <string>(); if (invalidEmployeeIdList.Contains(workScheduleWithInvalidEmployeeId.Driver)) { employeeInvalidListByUnit.Add(workScheduleWithInvalidEmployeeId.Driver); } if (invalidEmployeeIdList.Contains(workScheduleWithInvalidEmployeeId.Doctor)) { employeeInvalidListByUnit.Add(workScheduleWithInvalidEmployeeId.Doctor); } if (invalidEmployeeIdList.Contains(workScheduleWithInvalidEmployeeId.Nurse)) { employeeInvalidListByUnit.Add(workScheduleWithInvalidEmployeeId.Nurse); } if (invalidEmployeeIdList.Contains(workScheduleWithInvalidEmployeeId.FirstAuxiliar)) { employeeInvalidListByUnit.Add(workScheduleWithInvalidEmployeeId.FirstAuxiliar); } if (invalidEmployeeIdList.Contains(workScheduleWithInvalidEmployeeId.SecondAuxiliar)) { employeeInvalidListByUnit.Add(workScheduleWithInvalidEmployeeId.SecondAuxiliar); } if (invalidEmployeeIdList.Contains(workScheduleWithInvalidEmployeeId.ThirdAuxiliar)) { employeeInvalidListByUnit.Add(workScheduleWithInvalidEmployeeId.ThirdAuxiliar); } if (employeeInvalidListByUnit.Count > 0) { reportValidation.AddReportItem( WorkScheduleValidationType.INVALID_EMPLOYEE_ID, workScheduleWithInvalidEmployeeId.GetMessage(Properties.Resources.EMPLOYEE_LABEL, String.Join(",", employeeInvalidListByUnit)), new List <string>() { workScheduleWithInvalidEmployeeId.ID }); } } }
public void UpdateReportValidation(ref ReportValidationModel reportValidation, List <WorkShiftModel> availableWorkShiftList) { List <string> repeatedEmployeeIdList = new List <string>(); List <string> workScheduleIdList = new List <string>() { this.ID }; string messageInfo; if (this.HasRepeatedEmployeeId(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.EMPLOYEE_DUPLICATED_ON_UNIT, messageInfo, workScheduleIdList); } if (this.HasOverflowOfCellPhoneLength(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.DATA_LENGTH_OVERFLOW, messageInfo, workScheduleIdList); } if (this.HasOverflowOfRemarkLength(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.DATA_LENGTH_OVERFLOW, messageInfo, workScheduleIdList); } if (!this.IsFormatValidOfDoctor(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_EMPLOYEE_ID, messageInfo, workScheduleIdList); } if (!this.IsFormatValidOfNurse(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_EMPLOYEE_ID, messageInfo, workScheduleIdList); } if (!this.IsFormatValidOfFirstAuxiliar(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_EMPLOYEE_ID, messageInfo, workScheduleIdList); } if (!this.IsFormatValidOfSecondAuxiliar(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_EMPLOYEE_ID, messageInfo, workScheduleIdList); } if (!this.IsFormatValidOfThirdAuxiliar(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_EMPLOYEE_ID, messageInfo, workScheduleIdList); } if (!this.IsFormatValidOfDriver(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_EMPLOYEE_ID, messageInfo, workScheduleIdList); } if (this.HasRequiredFieldsNotFilled(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.MISSED_DATA, messageInfo, workScheduleIdList); } if (this.HasFieldsShoudBeFilledButNotRequired(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.DATA_SHOULD_BE_FILLED, messageInfo, workScheduleIdList); } if (this.IsInvalidDateFormat(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.WRONG_DATA_FORMAT, messageInfo, workScheduleIdList); } try { if (!this.IsForwardShiftTime(availableWorkShiftList, out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_DATE, messageInfo, workScheduleIdList); } } catch { } if (this.IsInvalidWorkshift(availableWorkShiftList, out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_WORKSHIFT, messageInfo, workScheduleIdList); } if (this.IsURAMWithInvalidCrew(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_CREW, messageInfo, workScheduleIdList); } if (this.IsSAVWithInvalidCrew(out messageInfo)) { reportValidation.AddReportItem(WorkScheduleValidationType.INVALID_CREW_FORMATION, messageInfo, workScheduleIdList); } }