// 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); } }
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); }
// 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);; } }