public void OperatorIsLessOrEqualThan_WorksWell() { COPSDate data1 = new COPSDate(0, 0, 0, 1, 1, 2018); COPSDate data2 = new COPSDate(0, 0, 0, 1, 2, 2018); Assert.True(data1 <= data2); }
public bool FindArticle(long lArticle, ref bool bFind, ref COPSDate dtArtIni, ref COPSDate dtArtEnd, ref long plArtDef, ref COPSPlate pstrVehicle, ref long plCusID) { Articles articulo = null; bool fnResult = false; try { articulo = Data.SingleOrDefault <Articles>(w => w.ART_ID == lArticle); dtArtIni = new COPSDate(articulo.ART_INIDATE); dtArtEnd = new COPSDate(articulo.ART_ENDDATE); plArtDef = articulo.ART_DART_ID; pstrVehicle = new COPSPlate(articulo.ART_VEHICLEID); plCusID = articulo.ART_CUS_ID; fnResult = true; } catch (Exception) { fnResult = false; } bFind = fnResult; return(fnResult); }
public virtual bool SetData(COPSMsg message) { bool result = true; trace.Write(TraceLevel.Debug, "CDatM::SetData"); try { if (message == null) { throw new ArgumentNullException(nameof(message), "Invalid input parameter"); } m_iTelType = message.GetCmd(); m_dtHdDate = message.GetAtt().GetOPSDate("dtx", m_dtHdDate); m_iIdentifier = message.GetAtt().GetInt("id", m_iIdentifier); m_iPriority = message.GetAtt().GetInt("pty", m_iPriority); m_iInUnit = message.GetElm().GetInt("u", m_iInUnit); } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); } return(result); }
public bool Copy(CM1Group pSrcGroup) { trace?.Write(TraceLevel.Debug, "CM1Group::Copy"); bool fnResult = true; try { trace = pSrcGroup.trace; m_lId = pSrcGroup.m_lId; m_lTypeId = pSrcGroup.m_lTypeId; m_dtLast = pSrcGroup.m_dtLast.Copy(); m_lState = pSrcGroup.m_lState; //M1ComputeEx0 Attributes m_lAccumMoney = pSrcGroup.m_lAccumMoney; m_lAccumMinutes = pSrcGroup.m_lAccumMinutes; //M1ComputeEx1 Attributes m_lEfecAccumMoney = pSrcGroup.m_lEfecAccumMoney; m_lEfecAccumMinutes = pSrcGroup.m_lEfecAccumMinutes; m_lRealAccumMoney = pSrcGroup.m_lRealAccumMoney; m_lRealAccumMinutes = pSrcGroup.m_lRealAccumMinutes; int i = 0; for (i = 0; i < CM1Constraint.CNSTR_NUM; i++) { m_Cnstr[i].Copy(pSrcGroup.m_Cnstr[i]); } } catch (Exception error) { trace?.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } return(fnResult); }
//*** DATE FUNCTIONS public bool IsDateOk(string pDate) { bool result = true; trace.Write(TraceLevel.Debug, "CDatM::IsDateOk"); try { if (String.IsNullOrWhiteSpace(pDate)) { throw new ArgumentNullException(nameof(pDate), "Invalid input parameter"); } if (pDate.Length != DEF_DATA_LEN) { throw new ArgumentNullException(nameof(pDate), "Invalid input parameter"); } COPSDate date = new COPSDate(pDate); return(date.IsValid()); } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); } return(result); }
public bool SetOutOperDateRealIni(COPSDate date) { trace.Write(TraceLevel.Debug, "CDatM1::SetOutOperDateRealIni"); bool fnResult = true; try { if (date == null) { throw new ArgumentNullException(nameof(date), "Parameter NULL"); } if (!date.IsValid()) { throw new ArgumentOutOfRangeException(nameof(date), "Not a valid Date"); } m_dtOutOperDateRealIni = date.Copy(); } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } return(fnResult); }
public void OperatorIsGreaterThan_WorksWell() { COPSDate data1 = new COPSDate(0, 0, 0, 1, 2, 2018); COPSDate data2 = new COPSDate(0, 0, 0, 1, 1, 2018); Assert.True(data1 > data2); }
public void CopyToChar_IfValueIsSet_ReturnStringDate() { COPSDate date = new COPSDate(00, 00, 00, 06, 01, 1985); string expected = "000000060185"; string actual = date.CopyToChar(); Assert.Equal(expected, actual); }
public void ValueProperty_WhithInvalidValues_SetStatusToInvalid() { COPSDate date = new COPSDate(DateTime.MaxValue.ToOADate() + 1); COPSDateStatus expected = COPSDateStatus.Invalid; COPSDateStatus actual = date.GetStatus(); Assert.Equal(expected, actual); }
public void AnyCtor_WhithValidValues_SetStatusToValid() { COPSDate date = new COPSDate(00, 00, 00, 06, 01, 1985); COPSDateStatus expected = COPSDateStatus.Valid; COPSDateStatus actual = date.GetStatus(); Assert.Equal(expected, actual); }
public void EmptyCtor_SetStatusToNull() { COPSDate date = new COPSDate(); COPSDateStatus expected = COPSDateStatus.Null; COPSDateStatus actual = date.GetStatus(); Assert.Equal(expected, actual); }
public void IsValid_ReturnExpectedValues(string dateString, bool expected) { COPSDate date = new COPSDate(); date.Set(dateString); bool actual = date.IsValid(); Assert.Equal(expected, actual); }
public void Set_WhithInvalidValues_SetStatusToInvalid() { COPSDate date = new COPSDate(); COPSDateStatus expected = COPSDateStatus.Invalid; date.Set("000000000000"); COPSDateStatus actual = date.GetStatus(); Assert.Equal(expected, actual); }
private IEnumerable <Days> FilterByDate(COPSDate date) { if (date == null) { throw new InvalidOperationException("Invalida date"); } if (!date.IsDateOkEx(trace)) { throw new InvalidOperationException($"Error : Date is not Correct {date.fstrGetTraceString()}"); } return(Data.Where( d => d.DAY_DATE.IsValid() && d.DAY_DATE.Value.Year == date.Value.Year && d.DAY_DATE.Value.Month == date.Value.Month && d.DAY_DATE.Value.Day == date.Value.Day)); }
public bool SetDate(COPSDate pDate) { bool result = true; trace.Write(TraceLevel.Debug, "CDatM::SetDate"); try { m_dtHdDate = pDate.Copy() ?? throw new ArgumentNullException(nameof(pDate), "Parameter NULL"); } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); result = false; } return(result); }
private bool IsVehicleIdVIP(CDatM1 m1, ref bool isVIP, long cpmArticleDef = GlobalDefs.DEF_UNDEFINED_VALUE) { trace.Write(TraceLevel.Info, ">>IsVehicleIdVIP"); bool fnResult = true; try { isVIP = false; COPSPlate strPlate = m1.GetInVehicleID(); COPSDate odDate = m1.GetInDate().Copy(); long lGroup = m1.GetInGroup(); long lArticleDef = GlobalDefs.DEF_UNDEFINED_VALUE; tariffCalculator.FillTree(); bool isVehicleIdVIP = database.IsVehicleIdVIP(tariffCalculator.GetTree(), ref strPlate, odDate, lGroup, ref lArticleDef, ref isVIP); if (!isVehicleIdVIP) { throw new InvalidOperationException("Error getting last operation group"); } if (isVIP && lArticleDef != GlobalDefs.DEF_UNDEFINED_VALUE) { m1.SetInArticleDef((int)lArticleDef); } else if (isVIP && lArticleDef == GlobalDefs.DEF_UNDEFINED_VALUE) { isVIP = isVIP && lArticleDef == cpmArticleDef; } m1.SetOutIsVIP(isVIP); } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } trace.Write(TraceLevel.Info, "<<IsVehicleIdVIP"); return(fnResult); }
public virtual void Copy(CDatM pDatM) { trace.Write(TraceLevel.Debug, "CDatM::Copy"); try { if (pDatM == null) { throw new ArgumentNullException(nameof(pDatM)); } m_strIDMsg = pDatM.m_strIDMsg; // Header m_dwTelID = pDatM.m_dwTelID; // Message Attributtes m_iIdentifier = pDatM.m_iIdentifier; m_iRet = pDatM.m_iRet; m_iPriority = pDatM.m_iPriority; m_iInUnit = pDatM.m_iInUnit; // SAX m_bTagAtt = pDatM.m_bTagAtt; m_iTelType = pDatM.m_iTelType; m_iMxType = pDatM.m_iMxType; m_iNbError = pDatM.m_iNbError; m_dtHdDate = pDatM.m_dtHdDate.Copy(); m_szHdSrc = pDatM.m_szHdSrc; m_szDst = pDatM.m_szDst; m_szTagValue = pDatM.m_szTagValue; m_szTagName = pDatM.m_szTagName; m_pStatColl = pDatM.m_pStatColl; } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); } }
public bool ChangeDates(long lTarId, long lTarNo, int nChangeType, COPSDate dtStartDate, COPSDate dtEndDate) { trace.Write(TraceLevel.Debug, "CiMD_Tariffs::ChangeDates"); bool fnResult = true; try { // Find a tariff and its number IEnumerable <Tariffs> tariffs = Data.Where(w => w.TAR_ID == lTarId && w.TAR_NUMBER == lTarNo); foreach (Tariffs tariff in tariffs) { switch (nChangeType) { case 1: tariff.TAR_ENDDATE = dtStartDate; break; case 2: tariff.TAR_INIDATE = dtStartDate; tariff.TAR_ENDDATE = dtEndDate; break; case 3: tariff.TAR_INIDATE = dtEndDate; break; } } } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } return(fnResult); }
public bool ApplyCurrentOperation(long groupId, COPSDate operationDate) { trace?.Write(TraceLevel.Debug, "CM1GroupTree::ApplyCurrentOperation"); bool fnResult = true; try { //m_dtOper CM1Group group = GetGroupFromGrpId(groupId); if (group == null) { throw new InvalidOperationException("Group of operation not found in tree"); } long groupIdTmp; while (group != null) { groupIdTmp = group.GetGrpId(); group.SetState((long)M1GroupState.GRP_ON); group.SetLastDate(operationDate); group = GetGroupParent(groupIdTmp); if (group == null) { trace?.Write(TraceLevel.Error, $"Group of operation ({groupId}) has no parents in tree"); } } } catch (Exception error) { trace?.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } return(fnResult); }
public List <long> GetListTypeOfDays(COPSDate date) { trace?.Write(TraceLevel.Debug, "GetListTypeOfDays"); List <long> fnResult = null; try { int dayOfWeek = date.GetDayOfWeek(); trace?.Write(TraceLevel.Info, "QUERY : Which are the days to apply?"); IEnumerable <DaysDef> dayTypes = Data.Where(w => w.DDAY_CODE[dayOfWeek - 1] == '1'); fnResult = dayTypes.Select(s => s.DDAY_ID.Value).ToList(); dayTypes.ToList().ForEach(t => LogDayResponse(t)); } catch (Exception error) { trace?.Write(TraceLevel.Error, error.ToLogString()); throw; } return(fnResult); }
public Days IsSpecialDay(COPSDate pdtDate) { trace?.Write(TraceLevel.Debug, $"IMT_Days::IsSpecialDay"); Days fnResult = null; try { LoadIfIsNeeded(); IEnumerable <Days> filteredDays = FilterByDate(pdtDate); string dateString = pdtDate.Value.ToShortDateString(); trace?.Write(TraceLevel.Info, $"IsSpecialDay - QUERY : Is the Day ({dateString}) an special day ? (QUERY TABLE DAYS)"); fnResult = filteredDays.Any() ? filteredDays.ElementAt(0) : null; LogResponse(fnResult, dateString); } catch (System.Exception error) { trace?.Write(TraceLevel.Error, error.ToLogString()); fnResult = null; } return(fnResult); }
public bool ExistTimeTable(IMT_TimeTables timetablesTable, long lTariff, long dayType, COPSDate dtOper, ref bool bBlockFound, bool bConsiderCloseInterval) { trace.Write(TraceLevel.Debug, "CiMD_Tariffs::ExistTimeTable"); bool fnResult = true; try { bBlockFound = false; int minutes = dtOper.TimeToMinutes(); trace.Write(TraceLevel.Info, $"QUERY : Which are the Time Table, Init Hour, End Hour for the Tariff({lTariff}) at this Hour({minutes / 60}:{minutes % 60}) for Day({dayType})?"); int nTimIni = -1; int nTimEnd = -1; IEnumerable <Tariffs> tariffs = Data.Where(w => w.TAR_ID == lTariff && w.TAR_DDAY_ID == dayType && (w.TAR_INIDATE.GetStatus() == COPSDateStatus.Valid && w.TAR_INIDATE <= dtOper) && (w.TAR_ENDDATE.GetStatus() == COPSDateStatus.Valid && w.TAR_ENDDATE > dtOper) ); foreach (Tariffs tariff in tariffs) { int nDummyTimIni = -1; int nDummyTimEnd = -1; Timetables foundTimeTable = timetablesTable.GetIniEndFromTimId(tariff.TAR_TIM_ID.Value); trace.Write(TraceLevel.Info, $"Minutes ({minutes:D2}) TimTabIni ({foundTimeTable.TIM_INI:D2}) TimTabEnd ({foundTimeTable.TIM_END:D2})"); bool bGetTimetable = false; if (bConsiderCloseInterval) { bGetTimetable = ((minutes <= nDummyTimEnd) && (minutes >= nDummyTimIni)); } else { bGetTimetable = ((minutes < nDummyTimEnd) && (minutes >= nDummyTimIni)); } if (bGetTimetable) { trace.Write(TraceLevel.Info, $"Interval Found Minutes {minutes / 60:D2}:{minutes % 60:D2} < {foundTimeTable.TIM_INI / 60:D2}:{foundTimeTable.TIM_INI % 60:D2}"); bBlockFound = true; break; } } } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } return(fnResult); }
public bool IsDateOk(COPSDate pDate) { return(pDate.IsValid()); }
public void Parse(IDataReader reader, long tableVersion) { DAY_ID = reader.IsDBNull(0) ? 0 : reader.GetInt64(0); DAY_DDAY_ID = reader.IsDBNull(1) ? 0 : reader.GetInt64(1); DAY_DATE = reader.IsDBNull(2) ? new COPSDate() : new COPSDate(reader.GetString(2)); }
public void SetLastDate(COPSDate pdt) { m_dtLast = pdt.Copy(); }
public virtual bool IterateDayTariff(CDatM1 pDatM1, stHOURLYBLOCK pstDayTariff, COPSDate pdtWork, long plWorkMoney, long plDaysChanges, bool bChangeDayInOutOfTariff, bool bDayChangeInInterval, bool bM1Plus, bool pbDayChange) { throw new NotImplementedException(""); }
public bool DeleteOperations(COPSDate pdt, int iMinutes) { throw new NotImplementedException(""); }
public bool GetNumberTariff(int iTariff, COPSDate pdtInDate, long plOutTimTabIni, long plOutTimTabEnd, long plStarID, bool pbFind, CTariffM1 pobjTariff) { throw new NotImplementedException(""); }
public bool IsFestive(COPSDate pdtWork, IEnumerable plstFestives, bool pbFestive) { throw new NotImplementedException(""); }
public bool GetTariffTimeTable(long lTariff, long dayType, COPSDate dtOper, long numDaysPassed, IMT_TimeTables timetables, bool considerCloseInterval, out Tariffs outTariff, out Timetables outTimetable) { trace.Write(TraceLevel.Debug, "IMT_Tariffs::GetTariffTimeTable"); bool fnResult = true; outTariff = null; outTimetable = null; try { Guard.IsNull(dtOper, nameof(dtOper)); int totalMinutes = dtOper.TimeToMinutes(); trace.Write(TraceLevel.Info, $@"QUERY: Which are the Time Table, Init Hour, End Hour for the Tariff({lTariff}) at this Hour({totalMinutes/60:D2}:{totalMinutes%60:D2}) for Day({dayType})?"); IEnumerable <Tariffs> tariffs = Data.Where(w => w.TAR_ID == lTariff && w.TAR_DDAY_ID == dayType && (w.TAR_INIDATE.GetStatus() == COPSDateStatus.Valid && w.TAR_INIDATE <= dtOper) && (w.TAR_ENDDATE.GetStatus() == COPSDateStatus.Valid && w.TAR_ENDDATE > dtOper) ); bool timtableHasBeenFound = false; if (tariffs.Any()) { bool bApplyTariff = false; foreach (Tariffs tariff in tariffs) { if (numDaysPassed != GlobalDefs.DEF_UNDEFINED_VALUE) { bApplyTariff = (tariff.TAR_NUMDAYS_PASSED.HasValue && tariff.TAR_NUMDAYS_PASSED.Value == numDaysPassed); } else { bApplyTariff = !tariff.TAR_NUMDAYS_PASSED.HasValue; } if (bApplyTariff) { Timetables foundTimeTable = timetables.GetIniEndFromTimId(tariff.TAR_TIM_ID.Value); trace.Write(TraceLevel.Info, $"Minutes ({totalMinutes:D2}) TimTabIni ({foundTimeTable.TIM_INI:D2}) TimTabEnd ({foundTimeTable.TIM_END:D2})"); bool getTimetable = false; if (considerCloseInterval) { getTimetable = totalMinutes <= foundTimeTable.TIM_END && totalMinutes >= foundTimeTable.TIM_INI; } else { getTimetable = totalMinutes < foundTimeTable.TIM_END && totalMinutes >= foundTimeTable.TIM_INI; } if (getTimetable) { trace.Write(TraceLevel.Info, $"Interval Found Minutes {totalMinutes/60:D2}:{totalMinutes%60:D2} < {foundTimeTable.TIM_INI/60:D2}:{foundTimeTable.TIM_INI % 60:D2}"); outTariff = tariff; outTimetable = foundTimeTable; timtableHasBeenFound = true; break; } } } } } catch (Exception error) { trace.Write(TraceLevel.Error, error.ToLogString()); fnResult = false; } return(fnResult); }