private static void GenerateMasterFile(List <CrewMember> crewMembers, DateTime startDate, double totalDays)
        {
            StringBuilder sb = new StringBuilder();

            SetHeaders(sb, startDate, totalDays);
            List <List <RosterDay> > rsbPatterns = RosterDay.BuildRsbPatterns();

            foreach (CrewMember crew in crewMembers)
            {
                List <RosterDay> rsbPattern = rsbPatterns[crew.MostEfficientWorkPatternIndex];
                sb.Append($"{crew.ThreeLetter},{crew.PersNr},{crew.Rank},{crew.HomeBase},{crew.MostEfficientWorkPatternIndex}");
                int rsbPatternIndex = 0;
                foreach (RosterDay day in crew.MostEfficientRosterDays)
                {
                    if (day.RosterCode == "0")
                    {
                        sb.Append(",0");
                    }
                    else
                    {
                        sb.Append($",{rsbPattern[rsbPatternIndex].RosterCode}");
                        rsbPatternIndex++;
                    }

                    if (rsbPatternIndex == rsbPattern.Count())
                    {
                        rsbPatternIndex = 0;
                    }
                }
                sb.AppendLine();
            }

            System.IO.File.WriteAllText("C:\\Users\\david.bracken\\OneDrive - TUI\\Documents\\Furlough\\CCMasterRoster.csv", sb.ToString());
        }
Exemple #2
0
        public bool IsWorkDay(DateTime date)
        {
            RosterDay rosterDay = MostEfficientRosterDays.FirstOrDefault(n => n.Date == date);

            if (rosterDay != null && rosterDay.IsWorkingDay)
            {
                return(true);
            }

            return(false);
        }
Exemple #3
0
        private void BuildCrewRosters(CrewMember crewMember, DataRow patternRow)
        {
            List <List <RosterDay> > rsbPatterns = RosterDay.BuildRsbPatterns();

            for (int workingRsbPattern = 0; workingRsbPattern < rsbPatterns.Count; workingRsbPattern++)
            {
                List <RosterDay> rosterDays = new List <RosterDay>();
                int RsbPatternDay           = 0;
                for (int i = 5; i < patternRow.Table.Columns.Count; i++)
                {
                    RosterDay rosterDay = new RosterDay {
                        Date = DateTime.Parse(patternRow.Table.Columns[i].ColumnName)
                    };
                    string patternResult = patternRow[i].ToString();

                    if (patternResult == "0")
                    {
                        rosterDay.RosterCode = "0";
                        rosterDays.Add(rosterDay);
                    }
                    else if (patternResult == "X")
                    {
                        rosterDay.RosterCode = "X";
                        rosterDays.Add(rosterDay);
                        RsbPatternDay++;
                    }
                    else
                    {
                        rosterDay.RosterCode = rsbPatterns[workingRsbPattern][RsbPatternDay].RosterCode;
                        rosterDays.Add(rosterDay);
                        RsbPatternDay++;
                    }

                    if (RsbPatternDay == rsbPatterns[workingRsbPattern].Count)
                    {
                        RsbPatternDay = 0;
                    }
                }

                crewMember.AddRsbPattern(workingRsbPattern, rosterDays);
            }
        }