Beispiel #1
0
 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
         });
     }
 }
Beispiel #2
0
 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
         });
     }
 }
Beispiel #3
0
        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
                });
            }
        }
Beispiel #4
0
        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;
        }
Beispiel #5
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)
                }
            }
        }
Beispiel #6
0
        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
                    });
                }
            }
        }
Beispiel #7
0
        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);
            }
        }