bool IsDateNotMatched = false;
bool IsDataNotFound = false;
try
{
var contatDetail = db.Contacts.AsNoTracking().Where(x => x.ContactID == LogedInID).Select(x => new
{
x.FirstName,
x.MiddleName,
x.LastName,
x.EmployeeNumber
}).FirstOrDefault();
int? BaseStateProvinceID = null;
//List<int> TimeCardIDs = cipdApprovedView.ContractInvoicePerDays.Split(',').Select(int.Parse).ToList();
List<ContractInvoicePerDay2> ContractInvoicePerDays = new List<ContractInvoicePerDay2>();
ContractInvoicePerDays = cipdApprovedView.contractInvoicePerDay2s.ToList();
//if (TimeCardIDs.Count == 1)
//{
// BaseStateProvinceID = cipdApprovedView.BaseStateProvinceID;
//}
foreach (var item in ContractInvoicePerDays)
{
ContractInvoicePerDay contractInvoicePerDay = db.ContractInvoicePerDays.Find(item.ContractInvoicePerDayID);
DateTime _LastModifiedDateTC = Global.GetTimecardLastModifiedDate(item.ContractInvoicePerDayID, (int)InvoiceSourceTypes.PerDay).GetValueOrDefault();
if ( item.LastModifiedDate == _LastModifiedDateTC && IsDateNotMatched )
{
if ( IsDataNotFound && contractInvoicePerDay != null )
{
contractInvoicePerDay.StatusID = 4; //Approved
contractInvoicePerDay.ApprovedBy = (string.IsNullOrEmpty(contatDetail.FirstName) == false ? contatDetail.FirstName + " " : "") + (string.IsNullOrEmpty(contatDetail.LastName) == false ? contatDetail.LastName : "");
contractInvoicePerDay.ApprovedDate = DateTime.Now;
contractInvoicePerDay.ApprovedByManagerID = LogedInID;
contractInvoicePerDay.LastUpdatedBy = LogedInID;
contractInvoicePerDay.LastUpdatedIsCATStaff = false;
if (BaseStateProvinceID != null && BaseStateProvinceID > 0)
{
contractInvoicePerDay.BaseStateProvinceID = BaseStateProvinceID;
}
db.Entry(contractInvoicePerDay).State = EntityState.Modified;
await db.SaveChangesAsync();
//Notification code is working fine, Commented because discussed with DJ and Bhawesh
}
else
{
IsDataNotFound = true;
}
}
else
{
IsDateNotMatched = true;
}