예제 #1
0
        private void UpdateEmployeeIDTracker(int trackerID, int runningID)
        {
            EmployeeIDTracker tracker = DataContext.EmployeeIDTrackers.FirstOrDefault(e => e.EmploymentTypeID == trackerID);

            tracker.RunningID = runningID;
            DataContext.EmployeeIDTrackers.Add(tracker);
            DataContext.Entry(tracker).State = EntityState.Modified;
            DataContext.SaveChanges();
        }
예제 #2
0
        private bool UpdateEmployeeIDTracker(int employeeType, string employeeID)
        {
            EmployeeIDTracker tracker = DataContext.EmployeeIDTrackers.FirstOrDefault(e => e.EmploymentTypeID == employeeType);

            if (string.IsNullOrEmpty(tracker.IDPrefix) == false)
            {
                employeeID = employeeID.Replace(tracker.IDPrefix, "");
            }

            if (int.TryParse(employeeID, out int runningID))
            {
                tracker.RunningID = runningID;
                DataContext.EmployeeIDTrackers.Add(tracker);
                DataContext.Entry(tracker).State = EntityState.Modified;
                DataContext.SaveChanges();
                return(true);
            }

            return(false);
        }
예제 #3
0
        public string GenerateNewEmployeeID(int employeeTypeID)
        {
            string employeeID = string.Empty;

            EmployeeIDTracker tracker = DataContext.EmployeeIDTrackers.FirstOrDefault(e => e.EmploymentTypeID == employeeTypeID);
            string            empType = DataContext.DropDownSubCategories.FirstOrDefault(s => s.SubCategoryID == employeeTypeID)?.SubCategoryName;

            bool isDuplicate = true;

            int    runningID    = tracker.RunningID;
            int    newRunningID = tracker.RunningID + 1;
            string idPrefix     = tracker.IDPrefix;

            while (isDuplicate)
            {
                if (empType == PERMANENT_EMP_TYPE_NAME)
                {
                    employeeID = newRunningID.ToString();
                }
                else
                {
                    employeeID = $"{tracker.IDPrefix}{newRunningID.ToString().PadLeft(3, '0')}";
                }

                if (!Entities.Any(e => e.EmployeeID.ToLower() == employeeID.ToLower()))
                {
                    isDuplicate = false;
                }
                else
                {
                    newRunningID += 1;
                }
            }

            UpdateEmployeeIDTracker(employeeTypeID, runningID);

            return(employeeID.ToUpper());
        }