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);
            }
        }
Пример #2
0
        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);
            }
            ////
        }