public static bool UpdateContractConsoleSimple(string pPersonnelNumber, DateTime pEndEmploymentDate) { try { Resources _contextUpd = Queries365.CreateErpContext(); var queryUpd = from Employment in _contextUpd.Employments where Employment.PersonnelNumber == pPersonnelNumber orderby Employment.EmploymentStartDate descending select Employment; DataServiceCollection <Employment> employmentCollection = new DataServiceCollection <Employment>(queryUpd); if (employmentCollection != null) { foreach (Employment emp in employmentCollection) { Console.WriteLine($"OLD EMPLOYMENT: {JsonConvert.SerializeObject(emp)}"); LogHelper.WriteDevLog($"OLD EMPLOYMENT: {JsonConvert.SerializeObject(emp)}"); emp.EmploymentEndDate = pEndEmploymentDate.ToUniversalTime(); _contextUpd.UpdateObject(emp); Console.WriteLine($"IN MEMORY CHANGED EMPLOYMENT: {JsonConvert.SerializeObject(emp)}"); LogHelper.WriteDevLog($"IN MEMORY CHANGED EMPLOYMENT: {JsonConvert.SerializeObject(emp)}"); break; } } DataServiceResponse response = _contextUpd.SaveChanges(SaveChangesOptions.PostOnlySetProperties); // for testing (same context Check) Employment emp2 = Queries365.GetContract(_contextUpd, pPersonnelNumber); Console.WriteLine($"FROM SAME CONTEXT EMPLOYMENT: {JsonConvert.SerializeObject(emp2)}"); LogHelper.WriteDevLog($"FROM SAME CONTEXT EMPLOYMENT: {JsonConvert.SerializeObject(emp2)}"); // new context refreshed data Resources _newContext = Queries365.CreateErpContext(); Employment empAfterNew = Queries365.GetContract(_newContext, pPersonnelNumber); Console.WriteLine($"AFTER UPDATE NEW CONTEXT: {JsonConvert.SerializeObject(empAfterNew)}"); LogHelper.WriteDevLog($"AFTER UPDATE NEW CONTEXT: {JsonConvert.SerializeObject(empAfterNew)}"); return(true); } catch (Exception ex) { Console.WriteLine($"Error updating contract with Id {pPersonnelNumber} with Exception: {ex} "); return(false); } }
private static bool UpdateWorkerConsole(string _persNum, string _email, string _phoneNum) { //// bool success = true; Queries365.SetFakeSslCertificate(); try { Resources _contextUpd = Queries365.CreateErpContext(); var queryUpd = from Worker in _contextUpd.Workers where Worker.PersonnelNumber == _persNum select Worker; DataServiceCollection <Worker> workerCollection = new DataServiceCollection <Worker>(queryUpd); Worker worBefore = Queries365.GetWorkerById(_contextUpd, _persNum); Console.WriteLine($"ORIGINAL WORKER: {JsonConvert.SerializeObject(worBefore)}"); LogHelper.WriteDevLog($"ORIGINAL WORKER: {JsonConvert.SerializeObject(worBefore)}"); if (workerCollection != null) { foreach (Worker wrk in workerCollection) { try { bool shouldUpdate = false; #region Update record wrk.PrimaryContactEmail = _email; wrk.PrimaryContactPhone = _phoneNum; shouldUpdate = true; if (shouldUpdate) { Console.WriteLine($"Updating.... worker with Personnel Number {_persNum}"); _contextUpd.UpdateObject(wrk); Console.WriteLine($"IN MEMORY CHANGED EMPLOYMENT: {JsonConvert.SerializeObject(wrk)}"); LogHelper.WriteDevLog($"IN MEMORY CHANGED EMPLOYMENT: {JsonConvert.SerializeObject(wrk)}"); DataServiceResponse response = _contextUpd.SaveChanges(SaveChangesOptions.PostOnlySetProperties); // check context record Worker wrkAfter = Queries365.GetWorkerById(_contextUpd, _persNum); Console.WriteLine($"AFTER UPDATE: {JsonConvert.SerializeObject(wrkAfter)}"); LogHelper.WriteDevLog($"AFTER UPDATE: {JsonConvert.SerializeObject(wrkAfter)}"); // check with new context Resources _contextNew = Queries365.CreateErpContext(); Worker empAfterNew = Queries365.GetWorkerById(_contextNew, _persNum); Console.WriteLine($"AFTER UPDATE NEW CONTEXT: {JsonConvert.SerializeObject(empAfterNew)}"); LogHelper.WriteDevLog($"AFTER UPDATE NEW CONTEXT: {JsonConvert.SerializeObject(empAfterNew)}"); // 2 //DataServiceResponse response = _contextUpd.SaveChanges( //SaveChangesOptions.PostOnlySetProperties /*| SaveChangesOptions.BatchWithSingleChangeset*/); } else { Console.WriteLine($"No changes for Contract with Personnel Number {_persNum}"); } success = true; } catch (Exception ex) { LogHelper.WriteErrorLog($"Error updating Contract for Personnel Number {_persNum} with Exception: {ex}"); success = false; } #endregion break; } } return(success); // } catch (Exception ex) { LogHelper.WriteErrorLog($"On Create Contract for number:{_persNum}, Exception: {ex}"); return(false); } //// }