I have 2 strings, say:
Meter_read_date= "2019-10-04"
Settlement_date= "2019-10-02"
I wanted to write Condition such that if difference between meter_read_date and settlement_date is less than 5 0r metter_read_date=settlement_date than do something or else do something).
I have the below code:
if (RegID > 0)
{
var MPAN = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.MPAN }).FirstOrDefault();
var D0071_SEND = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.D0071_SEND }).FirstOrDefault();
var ROLECODE = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.ROLECODE }).FirstOrDefault();
var TARIFFTYPE = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.TariffType }).FirstOrDefault();
var NORMAL_METER_READ = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.NORMAL_METER_READ }).FirstOrDefault();
var LOW_METER_READ = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.LOW_METER_READ }).FirstOrDefault();
var METER_READ_DATE = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.METER_READ_DATE }).FirstOrDefault();
var BILL_GENERATED = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.BILL_GENERATED }).FirstOrDefault();
var SETTLEMENT_DATE_REGI = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.SETTLEMENT_DATE_REGI }).FirstOrDefault();
var CUST_REFERENCE = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.CUST_REF_NUMBER }).FirstOrDefault(); //added by amit on 18-06-19
var ADDRESS = (from reg in ApproveCustRead where reg.REGISTRATION_ID == RegID select new { reg.CUST_ADDRESS }).FirstOrDefault(); // added by amit on 19-06-19
if (Flow == "71")
{
D0071Send(RegID, Convert.ToString(MPAN.MPAN.Trim()), Convert.ToString(ROLECODE.ROLECODE.Trim()), Convert.ToString(TARIFFTYPE.TariffType.Trim()), Convert.ToInt32(NORMAL_METER_READ.NORMAL_METER_READ), Convert.ToInt32(LOW_METER_READ.LOW_METER_READ), Convert.ToString(SETTLEMENT_DATE_REGI.SETTLEMENT_DATE_REGI.Trim()));
}
else if (Flow == "10")
{
D0010Send(RegID, Convert.ToString(MPAN.MPAN.Trim()), Convert.ToString(ROLECODE.ROLECODE.Trim()), Convert.ToString(TARIFFTYPE.TariffType.Trim()), Convert.ToInt32(NORMAL_METER_READ.NORMAL_METER_READ), Convert.ToInt32(LOW_METER_READ.LOW_METER_READ), Convert.ToString(METER_READ_DATE.METER_READ_DATE.Trim()));
}
else if (Flow == "RR")
{
DateTime startdate = Convert.ToDateTime(METER_READ_DATE);//latest date
DateTime enddate = Convert.ToDateTime(SETTLEMENT_DATE_REGI);//old date
string D0071send = Convert.ToString(D0071_SEND);
if ((startdate - enddate).Days < 5 || startdate.Date==enddate.Date)
{
if(D0071send == "YES")
{
D0010Send(RegID, Convert.ToString(MPAN.MPAN.Trim()), Convert.ToString(ROLECODE.ROLECODE.Trim()), Convert.ToString(TARIFFTYPE.TariffType.Trim()), Convert.ToInt32(NORMAL_METER_READ.NORMAL_METER_READ), Convert.ToInt32(LOW_METER_READ.LOW_METER_READ), Convert.ToString(METER_READ_DATE.METER_READ_DATE.Trim()));
}
else
{
D0071Send(RegID, Convert.ToString(MPAN.MPAN.Trim()), Convert.ToString(ROLECODE.ROLECODE.Trim()), Convert.ToString(TARIFFTYPE.TariffType.Trim()), Convert.ToInt32(NORMAL_METER_READ.NORMAL_METER_READ), Convert.ToInt32(LOW_METER_READ.LOW_METER_READ), Convert.ToString(SETTLEMENT_DATE_REGI.SETTLEMENT_DATE_REGI.Trim()));
}
}
else
{
D0010Send(RegID, Convert.ToString(MPAN.MPAN.Trim()), Convert.ToString(ROLECODE.ROLECODE.Trim()), Convert.ToString(TARIFFTYPE.TariffType.Trim()), Convert.ToInt32(NORMAL_METER_READ.NORMAL_METER_READ), Convert.ToInt32(LOW_METER_READ.LOW_METER_READ), Convert.ToString(METER_READ_DATE.METER_READ_DATE.Trim()));
}
}
}
How can I proceed with this? I tried in else if(flow="RR") but not worked.