Exemple #1
0
        private VMRosterModel CalculateRosterFields(VMRosterApplication vm, int _RotaAppID)
        {
            VAT_Shift     shift     = DDService.GetShift().Where(aa => aa.PShiftID == vm.ShiftID).First();
            VMRosterModel _objmodel = new VMRosterModel();

            try
            {
                int endPoint = 0;
                if (vm.RosterTypeID == 2)
                {
                    endPoint = (vm.DateEnded.Value - vm.DateStarted.Value).Days + 1;
                }
                else if (vm.RosterTypeID == 3)
                {
                    endPoint = 15;
                }
                else if (vm.RosterTypeID == 4)
                {
                    endPoint = System.DateTime.DaysInMonth(vm.DateStarted.Value.Year, vm.DateEnded.Value.Month);
                }
                else if (vm.RosterTypeID == 4)
                {
                    endPoint = 84;
                }

                _objmodel._RosterAttributes = new List <RosterAttributes>();
                _objmodel.Criteria          = ConvertCriteriaAbrvToFull("C");
                _objmodel.RotaAppID         = _RotaAppID;
                _objmodel.CriteriaValue     = vm.CrewID;
                _objmodel.ShiftID           = vm.ShiftID;
                _objmodel.StartDate         = vm.DateStarted.Value;
                _objmodel.EndDate           = vm.DateEnded.Value;
                _objmodel.NoOfDays          = endPoint;
                _objmodel.CriteriaValueName = DDService.GetCrew().Where(aa => aa.PCrewID == vm.CrewID).First().CrewName;
                _objmodel.ShiftName         = shift.ShiftName;
                DateTime _StartDate = vm.DateStarted.Value;
                for (int i = 1; i <= endPoint; i++)
                {
                    string   _day  = _StartDate.Date.ToString("dddd");
                    string   _date = _StartDate.Date.ToString("dd-MMM-yyyy");
                    string   shiftStartTimeString = GetShiftStartTimeString(_StartDate.DayOfWeek, vm);
                    TimeSpan shiftStartTime       = ATAssistant.ConvertTime(shiftStartTimeString);
                    int      workMin = GetWorkMinutesForSpecificDates(_StartDate, vm);
                    _objmodel._RosterAttributes.Add(new RosterAttributes {
                        ID = i, DateString = _date, Day = _day, DutyDate = _StartDate.Date, DutyTimeString = shiftStartTimeString, DutyTime = shiftStartTime, WorkMin = workMin
                    });
                    _StartDate = _StartDate.AddDays(1);
                }
                Expression <Func <RosterApplication, bool> > SpecificEntries = c => c.RotaAppID == _RotaAppID;
                RosterApplication rosterApp = RosterApplicationService.GetIndexSpecific(SpecificEntries).First();
                rosterApp.DateEnded = _StartDate.AddDays(-1);
                RosterApplicationService.PostEdit(rosterApp);
                return(_objmodel);
            }
            catch (Exception ex)
            {
                return(_objmodel);
            }
        }