Beispiel #1
0
        /// <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); }
        }