/// <summary> /// Заполнение каталога адресов с зависимостями /// </summary> /// <param name="customer">Модель таблицы L4_L3_Customer</param> /// <param name="addressEngine">Интерфейс для каталога адресов</param> /// <param name="pModUserId">ИД пользователя</param> /// <param name="odp"></param> /// <returns>Результат обработки</returns> public bool FillAddressEngine(L4L3Customer customer, AddressEngine addressEngine, string pModUserId, OracleDynamicParameters odp = null) { bool res = false; try { Country cnt = new Country(); ZipCatalogue zip = new ZipCatalogue(); logger.Info("Init 'FillAddressEngine' function"); string str = $"SELECT * FROM COUNTRY WHERE COUNTRY = '{customer.country}'"; using (OracleConnection connection = GetConnection()) { cnt = connection.QueryFirstOrDefault <Country>(str, null); } if (cnt == null) { odp = new OracleDynamicParameters(); str = "INSERT INTO COUNTRY ( " + "COUNTRY," + "COUNTRY_CODE," + "COUNTRY_ON_DOC," + "MOD_USER_ID," + "MOD_DATETIME" + ") VALUES (" + ":P_COUNTRY," + ":P_COUNTRY_CODE," + ":P_COUNTRY_ON_DOC," + ":P_MOD_USER_ID," + "SYSDATE )"; odp.Add("P_COUNTRY", customer.country); odp.Add("P_COUNTRY_CODE", customer.country.Substring(0, 3)); odp.Add("P_COUNTRY_ON_DOC", customer.country); odp.Add("P_MOD_USER_ID", pModUserId); using (OracleConnection connection = GetConnection()) { LogSqlWithParams(str, odp); connection.Execute(str, odp); } } odp = new OracleDynamicParameters(); str = "SELECT * FROM ZIP_CATALOGUE WHERE COUNTRY = '" + customer.country + "' AND ZIP_CODE = '" + customer.zipCode + "' AND CITY = '" + customer.city + "'"; using (OracleConnection connection = GetConnection()) { zip = connection.QueryFirstOrDefault <ZipCatalogue>(str, null); } if (zip == null) { str = "INSERT INTO ZIP_CATALOGUE ( " + "COUNTRY," + "ZIP_CODE," + "CITY," + "STATE, " + "MOD_USER_ID," + "MOD_DATETIME" + ") VALUES (" + ":P_COUNTRY," + ":P_ZIP_CODE," + ":P_CITY," + ":P_STATE, " + ":P_MOD_USER_ID," + "SYSDATE )"; odp.Add("P_COUNTRY", customer.country); odp.Add("P_ZIP_CODE", customer.zipCode); odp.Add("P_CITY", customer.city); odp.Add("P_STATE", customer.state); odp.Add("P_MOD_USER_ID", pModUserId); using (OracleConnection connection = GetConnection()) { LogSqlWithParams(str, odp); connection.Execute(str, odp); } } addressEngine.SetAddressFullName(customer.customerName); addressEngine.SetZipCode(customer.zipCode); addressEngine.SetAddress1(customer.address1); addressEngine.SetAddress2(customer.address2); addressEngine.SetAddress3(customer.address3); addressEngine.SetCity(customer.city); addressEngine.SetState(customer.state); addressEngine.SetCountry(customer.country); addressEngine.SetContactName(customer.contactName); addressEngine.SetContactPhone1(customer.contactPhone); addressEngine.SetContactFax(customer.contactFax); addressEngine.SetContactMobile(customer.contactMobile); addressEngine.SetEmailAddress(customer.contactEmail); logger.Info("End 'FillAddressEngine' function"); res = addressEngine.SaveData(); return(res); } catch { return(res); } }