예제 #1
0
        /// <summary>
        /// Обновить данные в БД.
        /// </summary>
        /// <param name="login">логин пользователя</param>
        private void UpdateDataInDB(string login)
        {
            if (_ADLogins[login].UpdateDate.AddDays(UpdateIntervalInDay) < DateTime.Now)
            {
                using (IDBSource dBSource = new MKKContext()) {
                    _ADLogins[login].Name       = GetNameByLogin(login);
                    _ADLogins[login].UpdateDate = DateTime.Now;

                    dBSource.SaveChanges();
                }
            }
        }
예제 #2
0
        /// <summary>
        /// функция обновления данных клиента.
        /// </summary>
        /// <param name="clientTask">Задача с данными клиента</param>
        private static void UpdateClientFunction(ClientTask clientTask)
        {
            using (IDBSource dbSource = new MKKContext()) {
                if (clientTask.ClientDB.BirthDate < new DateTime(1920, 1, 1))
                {
                    LogAndThrowException <Exception, EFService1C>(_Logger,
                                                                  "",
                                                                  "Проверьте год рождения клиента {clientLastName} {clientFirstName} {clientSecondName}" +
                                                                  " (код клиента {clientID1C}). Год рождения: {clientBirthDate}./* Метод {methodName}.*/",
                                                                  clientTask.ClientDB.LastName, clientTask.ClientDB.FirstName,
                                                                  clientTask.ClientDB.SecondName, clientTask.ClientDB.Code1C, clientTask.ClientDB.BirthDate,
                                                                  "UpdateClientsInfo");
                }

                ClientDB presentClient = clientTask.Task.ResultAndThrowException();
                ICollection <GuarantorDB> guarantorDB = clientTask.ClientDB.GuarantorDBs;
                clientTask.ClientDB.GuarantorDBs = default;

                if (presentClient == default)
                {
                    dbSource.Clients.Add(clientTask.ClientDB);
                    presentClient = clientTask.ClientDB;
                }
                else
                {
                    dbSource.Entry(presentClient).State = EntityState.Modified;
                }

                presentClient.BirthDate  = clientTask.ClientDB.BirthDate;
                presentClient.FIO        = clientTask.ClientDB.FIO;
                presentClient.FirstName  = clientTask.ClientDB.FirstName;
                presentClient.LastName   = clientTask.ClientDB.LastName;
                presentClient.SecondName = clientTask.ClientDB.SecondName;

                try { dbSource.SaveChanges(); }
                catch (Exception exception) {
                    LogAndThrowException <Exception, EFService1C>(_Logger,
                                                                  "",
                                                                  "Не удалось обновить данные клиента по договору. Клиент {ClientDB}. Ошибка работы" +
                                                                  " с БД./* Метод {methodName}, исключение: {ContextException}*/",
                                                                  new ExLogValue()
                    {
                        LogValue = clientTask.ClientDB,
                        ExValue  = clientTask.ClientDB.Code1C
                    },
                                                                  "UpdateClientsInfo", exception);
                }

                clientTask.ClientDB.GuarantorDBs = guarantorDB;
            }
        }