コード例 #1
0
        public void FillEmployeeWeeks(List <EmployeeWeek> weeks, DateTime beginDate, DateTime endDate)
        {
            if (weeks != null && weeks.Count > 0)
            {
                Dictionary <long, EmployeeWeek> _diction = EmployeeWeekProcessor.GetDictionary(weeks);
                long[] ids = EmployeeWeekProcessor.GetEmployeeIds(weeks);

                List <EmployeeDayStateRecording> daystates = servicedao.GetEmployeesStates(ids, beginDate, endDate);

                if (daystates != null)
                {
                    EmployeeWeek lastWeek = null;
                    EmployeeDay  day      = null;
                    foreach (EmployeeDayStateRecording edsp in daystates)
                    {
                        if ((lastWeek == null) || (edsp.EmployeeID != lastWeek.EmployeeId))
                        {
                            lastWeek = null;
                            _diction.TryGetValue(edsp.EmployeeID, out lastWeek);
                        }

                        if (lastWeek != null)
                        {
                            day = lastWeek.GetDay(edsp.Date);
                            if (day != null)
                            {
                                EmployeeDayProcessor.AssignDay(edsp, day);
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        public void SaveEmployeeDay(EmployeeDay employeeday)
        {
            if (employeeday == null)
            {
                throw new ArgumentNullException();
            }

            EmployeeDayStateRecording entity = GetEmployeesState(employeeday.EmployeeId, employeeday.Date);

            bool bNeedSave = EmployeeDayProcessor.IsNeedSave(employeeday);

            if (bNeedSave)
            {
                if (entity == null)
                {
                    entity = EmployeeDayProcessor.CreateRecordingEntity(employeeday);
                }
                else
                {
                    EmployeeDayProcessor.AssignToRecording(entity, employeeday);
                }

                SaveOrUpdate(entity);
                //employeeday.ID = entity.ID;
            }
            else
            {
                if (entity != null)
                {
                    DeleteByID(entity.ID);
                }
            }
        }
コード例 #3
0
        public void FillEmployeeWeeks(List <EmployeeWeek> weeks, DateTime beginDate, DateTime endDate,
                                      long[] emplIds, Dictionary <long, EmployeeWeek> dictWeek)
        {
            if (weeks != null && weeks.Count > 0)
            {
                List <EmployeeDayStatePlanning> daystates = GetEmployeesState(emplIds, beginDate, endDate);

                if (daystates != null)
                {
                    EmployeeWeek lastWeek = null;
                    EmployeeDay  day      = null;
                    foreach (EmployeeDayStatePlanning edsp in daystates)
                    {
                        if ((lastWeek == null) || (edsp.EmployeeID != lastWeek.EmployeeId))
                        {
                            lastWeek = null;
                            dictWeek.TryGetValue(edsp.EmployeeID, out lastWeek);
                        }

                        if (lastWeek != null)
                        {
                            day = lastWeek.GetDay(edsp.Date);
                            if (day != null)
                            {
                                EmployeeDayProcessor.AssignDay(edsp, day);
                            }
                        }
                    }
                }
            }
        }
コード例 #4
0
        public List <EmployeeDay> GetEmployeesStateByIds(long[] emplids, DateTime beginDate, DateTime endDate)
        {
            List <EmployeeDayStateRecording> states = servicedao.GetEmployeesStates(emplids, beginDate, endDate);

            if (states != null)
            {
                return(EmployeeDayProcessor.ConvertFrom(states));
            }
            return(null);
        }
コード例 #5
0
        public void CompareAndSave(EmployeeDay day)
        {
            if (day == null)
            {
                throw new ArgumentNullException();
            }

            EmployeePlanningDayList list = GetList(day.EmployeeId);

            if (list == null)
            {
                list = CreateDictionItem(day.EmployeeId);
            }

            EmployeeDayStatePlanning entity = list[day.Date];

            if (entity == null)
            {
                if (day.IsValidDay)
                {
                    entity = EmployeeDayProcessor.CreatePlanningEntity(day);
                    UpdateEntity(entity);
                    list.AddEntity(entity);
                }
            }
            else
            {
                if (day.IsValidDay)
                {
                    if (!EmployeeDayProcessor.IsEqual(entity, day))
                    {
                        EmployeeDayProcessor.AssignToPlanning(entity, day);
                        UpdateEntity(entity);
                    }
                }
                else
                {
                    if (entity != null)
                    {
                        DeleteEntity(entity);
                    }
                }
            }
        }
コード例 #6
0
        public void SaveEmployeeDay(EmployeeDay planningday)
        {
            if (planningday == null)
            {
                throw new ArgumentNullException();
            }

            EmployeeDayStatePlanning entity = GetEmployeesState(planningday.EmployeeId, planningday.Date);

            bool bNeedSave = EmployeeDayProcessor.IsNeedSave(planningday);

            if (bNeedSave)
            {
                bool bModified = false;

                if (entity == null)
                {
                    entity = EmployeeDayProcessor.CreatePlanningEntity(planningday);
                }
                else
                {
                    if (!EmployeeDayProcessor.IsEqual(entity, planningday))
                    {
                        EmployeeDayProcessor.AssignToPlanning(entity, planningday);
                        bModified = true;
                    }
                }
                if (entity.IsNew || bModified)
                {
                    SaveOrUpdate(entity);
                }

                //planningday.ID = entity.ID;
            }
            else
            {
                if (entity != null)
                {
                    DeleteByID(entity.ID);
                }
            }
        }
コード例 #7
0
        public void FillEmployeeWeeks(List <EmployeeWeek> weeks, DateTime beginDate, DateTime endDate)
        {
            if (weeks != null && weeks.Count > 0)
            {
                List <long> lstIds = new List <long>(weeks.Count);
                Dictionary <long, EmployeeWeek> _diction = new Dictionary <long, EmployeeWeek>();
                foreach (EmployeeWeek epw in weeks)
                {
                    lstIds.Add(epw.EmployeeId);
                    _diction[epw.EmployeeId] = epw;
                }

                long[] ids = lstIds.ToArray();

                List <EmployeeDayStatePlanning> daystates = GetEmployeesState(ids, beginDate, endDate);

                if (daystates != null)
                {
                    EmployeeWeek lastWeek = null;
                    EmployeeDay  day      = null;
                    foreach (EmployeeDayStatePlanning edsp in daystates)
                    {
                        if ((lastWeek == null) || (edsp.EmployeeID != lastWeek.EmployeeId))
                        {
                            lastWeek = null;
                            _diction.TryGetValue(edsp.EmployeeID, out lastWeek);
                        }

                        if (lastWeek != null)
                        {
                            day = lastWeek.GetDay(edsp.Date);
                            if (day != null)
                            {
                                EmployeeDayProcessor.AssignDay(edsp, day);
                            }
                        }
                    }
                }
            }
        }
コード例 #8
0
        public List <EmployeeDay> GetEmployeeDayStates(long[] emplids, DateTime beginDate, DateTime endDate)
        {
            List <EmployeeDayStateRecording> states = GetEmployeesStates(emplids, beginDate, endDate);

            return(EmployeeDayProcessor.ConvertFrom(states));
        }