Пример #1
0
 // Remove Shift Time by Id
 public bool RemoveShiftTimeByID(int ShiftTimeID)
 {
     try
     {
         IQueryable <GL_ShiftTime> result = _shiftTimeRepository.GetMany(
             x => x.ShiftTimeID == ShiftTimeID);
         if (result.Count() > 0)
         {
             //GL_ShiftTime entity = result.First();
             //entity.IsEnabled = false;
             //_shiftTimeRepository.Update(entity);
             GL_ShiftTime entity = result.First();
             _shiftTimeRepository.Delete(entity);
             _unitOfWork.Commit();
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Пример #2
0
        public static GL_ShiftTime GetCurrentShift(List <GL_ShiftTime> shiftTimeList, DateTime now)
        {
            GL_ShiftTime shiftTime = null;

            foreach (var item in shiftTimeList)
            {
                var startHourMinitePair = item.StartTime.Split(':');
                var startHour           = int.Parse(startHourMinitePair[0]);
                var startMinute         = int.Parse(startHourMinitePair[1]);

                var endHourMinitePair = item.End_Time.Split(':');
                var endHour           = int.Parse(endHourMinitePair[0]);
                var endMinute         = int.Parse(endHourMinitePair[1]);

                var startDateTime = new DateTime(now.Year, now.Month, now.Day, startHour, startMinute, 0);
                var endDateTime   = new DateTime(now.Year, now.Month, now.Day, endHour, endMinute, 0);
                if (startDateTime < endDateTime)
                {
                    if (now >= startDateTime && now < endDateTime)
                    {
                        shiftTime = item;
                    }
                }
                else if (startDateTime > endDateTime)
                {
                    if (now >= startDateTime || now < endDateTime)
                    {
                        shiftTime = item;
                    }
                }
            }
            return(shiftTime);
        }
Пример #3
0
        // Add or update shift time entity
        public string AddOrUpdateShiftTime(GL_ShiftTimeDTO dto, out string errorMessage)
        {
            errorMessage = string.Empty;
            GL_ShiftTime entity = AutoMapper.Mapper.Map <GL_ShiftTime>(dto);

            try
            {
                // get exists shift time
                IList <GL_ShiftTimeDTO> existsDtos = GetShiftTimes(dto.Plant_Organization_UID, dto.FunPlant_Organization_UID, dto.BG_Organization_UID);
                TimeSpan ts1 = TimeSpan.Parse(dto.StartTime);
                TimeSpan ts2 = TimeSpan.Parse(dto.End_Time);

                if (ts1 > ts2)
                {
                    ts2 = ts2.Add(new TimeSpan(1, 0, 0, 0));
                }

                // check the overlap shift time
                bool            isIntersection   = false;
                GL_ShiftTimeDTO overlapShiftTime = null;
                foreach (GL_ShiftTimeDTO eDto in existsDtos)
                {
                    TimeSpan ts1a = TimeSpan.Parse(eDto.StartTime);
                    TimeSpan ts2a = TimeSpan.Parse(eDto.End_Time);

                    if (ts1a > ts2a)
                    {
                        ts2a = ts2a.Add(new TimeSpan(1, 0, 0, 0));
                    }

                    TimeSpan ts = getIntersectionTimeSpan(ts1a, ts2a, ts1, ts2);
                    if (ts.Ticks > 0)
                    {
                        overlapShiftTime = eDto;
                        isIntersection   = true;
                        break;
                    }
                }
                if (isIntersection)
                {
                    errorMessage = string.Format("Shift time overlap - {0}, {1}", overlapShiftTime.StartTime, overlapShiftTime.End_Time);
                }

                GL_ShiftTime entityContext;
                if (dto.ShiftTimeID == 0)
                {
                    entityContext = _shiftTimeRepository.Add(entity);
                    _unitOfWork.Commit();
                }
                else
                {
                    entityContext = _shiftTimeRepository.GetById(entity.ShiftTimeID);
                    entityContext.Plant_Organization_UID    = entity.Plant_Organization_UID;
                    entityContext.BG_Organization_UID       = entity.BG_Organization_UID;
                    entityContext.FunPlant_Organization_UID = entity.FunPlant_Organization_UID;
                    entityContext.Shift         = entity.Shift;
                    entityContext.StartTime     = entity.StartTime;
                    entityContext.End_Time      = entity.End_Time;
                    entityContext.Modified_UID  = entity.Modified_UID;
                    entityContext.Modified_Date = entity.Modified_Date;
                    entityContext.Break_Time    = entity.Break_Time;
                    entityContext.Sequence      = entity.Sequence;
                    entityContext.IsEnabled     = entity.IsEnabled;
                    _shiftTimeRepository.Update(entityContext);
                    _unitOfWork.Commit();
                }

                //  var returnDto = AutoMapper.Mapper.Map<GL_ShiftTimeDTO>(entityContext);
                return("");
            }
            catch (Exception ex)
            {
                //  errorMessage = ex.Message;
                return(ex.Message);;
            }
        }