Esempio n. 1
0
        public Merchant Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             MerchantTable.GetColumnNames("[m]") +
                             (this.Depth > 0 ? "," + InstanceTable.GetColumnNames("[m_i]") : string.Empty) +
                             (this.Depth > 0 ? "," + TemplateTable.GetColumnNames("[m_t]") : string.Empty) +
                             " FROM [core].[Merchant] AS [m] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Instance] AS [m_i] ON [m].[InstanceID] = [m_i].[InstanceID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Template] AS [m_t] ON [m].[TemplateID] = [m_t].[TemplateID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "customload", "notfound"), "Merchant could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                MerchantTable mTable   = new MerchantTable(query);
                InstanceTable m_iTable = (this.Depth > 0) ? new InstanceTable(query) : null;
                TemplateTable m_tTable = (this.Depth > 0) ? new TemplateTable(query) : null;


                Instance m_iObject = (this.Depth > 0) ? m_iTable.CreateInstance() : null;
                Template m_tObject = (this.Depth > 0) ? m_tTable.CreateInstance() : null;
                Merchant mObject   = mTable.CreateInstance(m_iObject, m_tObject);
                sqlReader.Close();

                return(mObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "customload", "exception"), "Merchant could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "Merchant", "Exception while loading (custom/single) Merchant object from database. See inner exception for details.", ex);
            }
        }
        protected override TranslationGroup LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             TranslationGroupTable.GetColumnNames("[tg]") +
                             (this.Depth > 0 ? "," + TranslationTable.GetColumnNames("[tg_t]") : string.Empty) +
                             (this.Depth > 1 ? "," + TranslationTypeTable.GetColumnNames("[tg_t_tt]") : string.Empty) +
                             " FROM [core].[TranslationGroup] AS [tg] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Translation] AS [tg_t] ON [tg].[TranslationID] = [tg_t].[TranslationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[TranslationType] AS [tg_t_tt] ON [tg_t].[TranslationTypeID] = [tg_t_tt].[TranslationTypeID] ";
                }
                sqlCmdText += "WHERE [tg].[TranslationGroupID] = @TranslationGroupID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@TranslationGroupID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("tg", "loadinternal", "notfound"), "TranslationGroup could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                TranslationGroupTable tgTable      = new TranslationGroupTable(query);
                TranslationTable      tg_tTable    = (this.Depth > 0) ? new TranslationTable(query) : null;
                TranslationTypeTable  tg_t_ttTable = (this.Depth > 1) ? new TranslationTypeTable(query) : null;


                TranslationType  tg_t_ttObject = (this.Depth > 1) ? tg_t_ttTable.CreateInstance() : null;
                Translation      tg_tObject    = (this.Depth > 0) ? tg_tTable.CreateInstance(tg_t_ttObject) : null;
                TranslationGroup tgObject      = tgTable.CreateInstance(tg_tObject);
                sqlReader.Close();

                return(tgObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("tg", "loadinternal", "exception"), "TranslationGroup could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "TranslationGroup", "Exception while loading TranslationGroup object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 3
0
        public ServiceProfileGroupMap Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             ServiceProfileGroupMapTable.GetColumnNames("[spgm]") +
                             (this.Depth > 0 ? "," + ProfileGroupTable.GetColumnNames("[spgm_pg]") : string.Empty) +
                             (this.Depth > 1 ? "," + ProfileCategoryTable.GetColumnNames("[spgm_pg_pc]") : string.Empty) +
                             " FROM [web].[ServiceProfileGroupMap] AS [spgm] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [web].[ProfileGroup] AS [spgm_pg] ON [spgm].[ProfileGroupID] = [spgm_pg].[ProfileGroupID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [web].[ProfileCategory] AS [spgm_pg_pc] ON [spgm_pg].[ProfileCategoryID] = [spgm_pg_pc].[ProfileCategoryID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("spgm", "customload", "notfound"), "ServiceProfileGroupMap could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                ServiceProfileGroupMapTable spgmTable       = new ServiceProfileGroupMapTable(query);
                ProfileGroupTable           spgm_pgTable    = (this.Depth > 0) ? new ProfileGroupTable(query) : null;
                ProfileCategoryTable        spgm_pg_pcTable = (this.Depth > 1) ? new ProfileCategoryTable(query) : null;


                ProfileCategory        spgm_pg_pcObject = (this.Depth > 1) ? spgm_pg_pcTable.CreateInstance() : null;
                ProfileGroup           spgm_pgObject    = (this.Depth > 0) ? spgm_pgTable.CreateInstance(spgm_pg_pcObject) : null;
                ServiceProfileGroupMap spgmObject       = spgmTable.CreateInstance(spgm_pgObject);
                sqlReader.Close();

                return(spgmObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("spgm", "customload", "exception"), "ServiceProfileGroupMap could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "ServiceProfileGroupMap", "Exception while loading (custom/single) ServiceProfileGroupMap object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 4
0
        protected override Merchant LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             MerchantTable.GetColumnNames("[m]") +
                             (this.Depth > 0 ? "," + InstanceTable.GetColumnNames("[m_i]") : string.Empty) +
                             (this.Depth > 0 ? "," + TemplateTable.GetColumnNames("[m_t]") : string.Empty) +
                             " FROM [core].[Merchant] AS [m] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Instance] AS [m_i] ON [m].[InstanceID] = [m_i].[InstanceID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Template] AS [m_t] ON [m].[TemplateID] = [m_t].[TemplateID] ";
                }
                sqlCmdText += "WHERE [m].[MerchantID] = @MerchantID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@MerchantID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "loadinternal", "notfound"), "Merchant could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                MerchantTable mTable   = new MerchantTable(query);
                InstanceTable m_iTable = (this.Depth > 0) ? new InstanceTable(query) : null;
                TemplateTable m_tTable = (this.Depth > 0) ? new TemplateTable(query) : null;


                Instance m_iObject = (this.Depth > 0) ? m_iTable.CreateInstance() : null;
                Template m_tObject = (this.Depth > 0) ? m_tTable.CreateInstance() : null;
                Merchant mObject   = mTable.CreateInstance(m_iObject, m_tObject);
                sqlReader.Close();

                return(mObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "loadinternal", "exception"), "Merchant could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "Merchant", "Exception while loading Merchant object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 5
0
        public List <Domain> LoadMany(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             DomainTable.GetColumnNames("[d]") +
                             (this.Depth > 0 ? "," + ServiceTable.GetColumnNames("[d_s]") : string.Empty) +
                             (this.Depth > 1 ? "," + ApplicationTable.GetColumnNames("[d_s_a]") : string.Empty) +
                             (this.Depth > 1 ? "," + ProductTable.GetColumnNames("[d_s_p]") : string.Empty) +
                             (this.Depth > 1 ? "," + MerchantTable.GetColumnNames("[d_s_m]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceTypeTable.GetColumnNames("[d_s_st]") : string.Empty) +
                             (this.Depth > 1 ? "," + UserSessionTypeTable.GetColumnNames("[d_s_ust]") : string.Empty) +
                             (this.Depth > 1 ? "," + CountryTable.GetColumnNames("[d_s_c]") : string.Empty) +
                             (this.Depth > 1 ? "," + LanguageTable.GetColumnNames("[d_s_l]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceConfigurationTable.GetColumnNames("[d_s_sc]") : string.Empty) +
                             (this.Depth > 1 ? "," + TemplateTable.GetColumnNames("[d_s_t]") : string.Empty) +
                             " FROM [core].[Domain] AS [d] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Service] AS [d_s] ON [d].[ServiceID] = [d_s].[ServiceID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Application] AS [d_s_a] ON [d_s].[ApplicationID] = [d_s_a].[ApplicationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Product] AS [d_s_p] ON [d_s].[ProductID] = [d_s_p].[ProductID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Merchant] AS [d_s_m] ON [d_s].[MerchantID] = [d_s_m].[MerchantID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[ServiceType] AS [d_s_st] ON [d_s].[ServiceTypeID] = [d_s_st].[ServiceTypeID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[UserSessionType] AS [d_s_ust] ON [d_s].[UserSessionTypeID] = [d_s_ust].[UserSessionTypeID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Country] AS [d_s_c] ON [d_s].[FallbackCountryID] = [d_s_c].[CountryID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Language] AS [d_s_l] ON [d_s].[FallbackLanguageID] = [d_s_l].[LanguageID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[ServiceConfiguration] AS [d_s_sc] ON [d_s].[ServiceConfigurationID] = [d_s_sc].[ServiceConfigurationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Template] AS [d_s_t] ON [d_s].[TemplateID] = [d_s_t].[TemplateID] ";
                }


                sqlCmdText = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("d", "customloadmany", "notfound"), "Domain list could not be loaded using custom logic as no items were found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(new List <Domain>());
                }

                SqlQuery query = new SqlQuery(sqlReader);

                DomainTable               dTable       = new DomainTable(query);
                ServiceTable              d_sTable     = (this.Depth > 0) ? new ServiceTable(query) : null;
                ApplicationTable          d_s_aTable   = (this.Depth > 1) ? new ApplicationTable(query) : null;
                ProductTable              d_s_pTable   = (this.Depth > 1) ? new ProductTable(query) : null;
                MerchantTable             d_s_mTable   = (this.Depth > 1) ? new MerchantTable(query) : null;
                ServiceTypeTable          d_s_stTable  = (this.Depth > 1) ? new ServiceTypeTable(query) : null;
                UserSessionTypeTable      d_s_ustTable = (this.Depth > 1) ? new UserSessionTypeTable(query) : null;
                CountryTable              d_s_cTable   = (this.Depth > 1) ? new CountryTable(query) : null;
                LanguageTable             d_s_lTable   = (this.Depth > 1) ? new LanguageTable(query) : null;
                ServiceConfigurationTable d_s_scTable  = (this.Depth > 1) ? new ServiceConfigurationTable(query) : null;
                TemplateTable             d_s_tTable   = (this.Depth > 1) ? new TemplateTable(query) : null;

                List <Domain> result = new List <Domain>();
                do
                {
                    Application          d_s_aObject   = (this.Depth > 1) ? d_s_aTable.CreateInstance() : null;
                    Product              d_s_pObject   = (this.Depth > 1) ? d_s_pTable.CreateInstance() : null;
                    Merchant             d_s_mObject   = (this.Depth > 1) ? d_s_mTable.CreateInstance() : null;
                    ServiceType          d_s_stObject  = (this.Depth > 1) ? d_s_stTable.CreateInstance() : null;
                    UserSessionType      d_s_ustObject = (this.Depth > 1) ? d_s_ustTable.CreateInstance() : null;
                    Country              d_s_cObject   = (this.Depth > 1) ? d_s_cTable.CreateInstance() : null;
                    Language             d_s_lObject   = (this.Depth > 1) ? d_s_lTable.CreateInstance() : null;
                    ServiceConfiguration d_s_scObject  = (this.Depth > 1) ? d_s_scTable.CreateInstance() : null;
                    Template             d_s_tObject   = (this.Depth > 1) ? d_s_tTable.CreateInstance() : null;
                    Service              d_sObject     = (this.Depth > 0) ? d_sTable.CreateInstance(d_s_aObject, d_s_pObject, d_s_mObject, d_s_stObject, d_s_ustObject, d_s_cObject, d_s_lObject, d_s_scObject, d_s_tObject) : null;
                    Domain dObject = (this.Depth > -1) ? dTable.CreateInstance(d_sObject) : null;
                    result.Add(dObject);
                } while (sqlReader.Read());
                sqlReader.Close();

                return(result);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("d", "customloadmany", "exception"), "Domain list could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "Domain", "Exception while loading (custom/many) Domain object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 6
0
        protected override ServiceProfileGroupMap LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             ServiceProfileGroupMapTable.GetColumnNames("[spgm]") +
                             (this.Depth > 0 ? "," + ProfileGroupTable.GetColumnNames("[spgm_pg]") : string.Empty) +
                             (this.Depth > 1 ? "," + ProfileCategoryTable.GetColumnNames("[spgm_pg_pc]") : string.Empty) +
                             " FROM [web].[ServiceProfileGroupMap] AS [spgm] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [web].[ProfileGroup] AS [spgm_pg] ON [spgm].[ProfileGroupID] = [spgm_pg].[ProfileGroupID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [web].[ProfileCategory] AS [spgm_pg_pc] ON [spgm_pg].[ProfileCategoryID] = [spgm_pg_pc].[ProfileCategoryID] ";
                }
                sqlCmdText += "WHERE [spgm].[ServiceProfileGroupMapID] = @ServiceProfileGroupMapID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@ServiceProfileGroupMapID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("spgm", "loadinternal", "notfound"), "ServiceProfileGroupMap could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                ServiceProfileGroupMapTable spgmTable       = new ServiceProfileGroupMapTable(query);
                ProfileGroupTable           spgm_pgTable    = (this.Depth > 0) ? new ProfileGroupTable(query) : null;
                ProfileCategoryTable        spgm_pg_pcTable = (this.Depth > 1) ? new ProfileCategoryTable(query) : null;


                ProfileCategory        spgm_pg_pcObject = (this.Depth > 1) ? spgm_pg_pcTable.CreateInstance() : null;
                ProfileGroup           spgm_pgObject    = (this.Depth > 0) ? spgm_pgTable.CreateInstance(spgm_pg_pcObject) : null;
                ServiceProfileGroupMap spgmObject       = spgmTable.CreateInstance(spgm_pgObject);
                sqlReader.Close();

                return(spgmObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("spgm", "loadinternal", "exception"), "ServiceProfileGroupMap could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "ServiceProfileGroupMap", "Exception while loading ServiceProfileGroupMap object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 7
0
        public override bool Update(ISqlConnectionInfo connection, UserDetail data)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            string sqlCmdText = string.Empty;

            try
            {
                data.Updated = DateTime.Now;
                sqlCmdText   = "UPDATE [core].[UserDetail] SET " +
                               "[UserID] = @UserID, " +
                               "[CountryID] = @CountryID, " +
                               "[GenderID] = @GenderID, " +
                               "[FirstName] = @FirstName, " +
                               "[LastName] = @LastName, " +
                               "[Address] = @Address, " +
                               "[Mail] = @Mail, " +
                               "[Contact] = @Contact, " +
                               "[BirthDate] = @BirthDate, " +
                               "[Updated] = GETDATE() " +
                               "WHERE [UserDetailID] = @UserDetailID;";
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;

                sqlCmd.Parameters.AddWithValue("@UserID", data.User.ID);
                sqlCmd.Parameters.AddWithValue("@CountryID", data.CountryID).SqlDbType = SqlDbType.Int;
                sqlCmd.Parameters.AddWithValue("@GenderID", data.Gender.ID);
                sqlCmd.Parameters.AddWithValue("@FirstName", data.FirstName).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@LastName", data.LastName).SqlDbType   = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Address", !string.IsNullOrEmpty(data.Address) ? (object)data.Address : DBNull.Value).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Mail", data.Mail).SqlDbType       = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Contact", data.Contact).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@BirthDate", data.BirthDate.HasValue ? (object)data.BirthDate.Value : DBNull.Value).SqlDbType = SqlDbType.DateTime2;
                sqlCmd.Parameters.AddWithValue("@Updated", data.Updated).SqlDbType = SqlDbType.DateTime2;
                sqlCmd.Parameters.AddWithValue("@UserDetailID", data.ID);

                int rowCount = sqlCmd.ExecuteNonQuery();
                if (rowCount < 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ud", "update", "norecord"), "UserDetail could not be updated as no matching record was found.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsErrorEnabled)
                    {
                        this.Logger.Error(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "UserDetail", "Exception while updating UserDetail object in database. No record found for this id.");
                }
                else if (rowCount > 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ud", "update", "morerecords"), "UserDetail was updated but there was more than one record affected.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsFatalEnabled)
                    {
                        this.Logger.Fatal(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "UserDetail", "Exception while updating UserDetail object in database. More than one record found for this statement (update statement where clause broken?!).");
                }
                return(true);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ud", "update", "exception"), "UserDetail could not be updated. See exception for details", sqlCmdText, ex, this, connection, data);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Update, "UserDetail", "Exception while updating UserDetail object in database. See inner exception for details.", ex);
            }
        }
        public MobileOperatorCode Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             MobileOperatorCodeTable.GetColumnNames("[moc]") +
                             (this.Depth > 0 ? "," + MobileOperatorTable.GetColumnNames("[moc_mo]") : string.Empty) +
                             (this.Depth > 1 ? "," + CountryTable.GetColumnNames("[moc_mo_c]") : string.Empty) +
                             " FROM [core].[MobileOperatorCode] AS [moc] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[MobileOperator] AS [moc_mo] ON [moc].[MobileOperatorID] = [moc_mo].[MobileOperatorID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Country] AS [moc_mo_c] ON [moc_mo].[CountryID] = [moc_mo_c].[CountryID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("moc", "customload", "notfound"), "MobileOperatorCode could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                MobileOperatorCodeTable mocTable      = new MobileOperatorCodeTable(query);
                MobileOperatorTable     moc_moTable   = (this.Depth > 0) ? new MobileOperatorTable(query) : null;
                CountryTable            moc_mo_cTable = (this.Depth > 1) ? new CountryTable(query) : null;


                Country            moc_mo_cObject = (this.Depth > 1) ? moc_mo_cTable.CreateInstance() : null;
                MobileOperator     moc_moObject   = (this.Depth > 0) ? moc_moTable.CreateInstance(moc_mo_cObject) : null;
                MobileOperatorCode mocObject      = mocTable.CreateInstance(moc_moObject);
                sqlReader.Close();

                return(mocObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("moc", "customload", "exception"), "MobileOperatorCode could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "MobileOperatorCode", "Exception while loading (custom/single) MobileOperatorCode object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 9
0
        public UserDetail Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             UserDetailTable.GetColumnNames("[ud]") +
                             (this.Depth > 0 ? "," + UserTable.GetColumnNames("[ud_u]") : string.Empty) +
                             (this.Depth > 1 ? "," + UserTypeTable.GetColumnNames("[ud_u_ut]") : string.Empty) +
                             (this.Depth > 0 ? "," + GenderTable.GetColumnNames("[ud_g]") : string.Empty) +
                             " FROM [core].[UserDetail] AS [ud] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[User] AS [ud_u] ON [ud].[UserID] = [ud_u].[UserID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[UserType] AS [ud_u_ut] ON [ud_u].[UserTypeID] = [ud_u_ut].[UserTypeID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Gender] AS [ud_g] ON [ud].[GenderID] = [ud_g].[GenderID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ud", "customload", "notfound"), "UserDetail could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                UserDetailTable udTable      = new UserDetailTable(query);
                UserTable       ud_uTable    = (this.Depth > 0) ? new UserTable(query) : null;
                UserTypeTable   ud_u_utTable = (this.Depth > 1) ? new UserTypeTable(query) : null;
                GenderTable     ud_gTable    = (this.Depth > 0) ? new GenderTable(query) : null;


                UserType   ud_u_utObject = (this.Depth > 1) ? ud_u_utTable.CreateInstance() : null;
                User       ud_uObject    = (this.Depth > 0) ? ud_uTable.CreateInstance(ud_u_utObject) : null;
                Gender     ud_gObject    = (this.Depth > 0) ? ud_gTable.CreateInstance() : null;
                UserDetail udObject      = udTable.CreateInstance(ud_uObject, ud_gObject);
                sqlReader.Close();

                return(udObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ud", "customload", "exception"), "UserDetail could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "UserDetail", "Exception while loading (custom/single) UserDetail object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 10
0
        protected override UserDetail LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             UserDetailTable.GetColumnNames("[ud]") +
                             (this.Depth > 0 ? "," + UserTable.GetColumnNames("[ud_u]") : string.Empty) +
                             (this.Depth > 1 ? "," + UserTypeTable.GetColumnNames("[ud_u_ut]") : string.Empty) +
                             (this.Depth > 0 ? "," + GenderTable.GetColumnNames("[ud_g]") : string.Empty) +
                             " FROM [core].[UserDetail] AS [ud] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[User] AS [ud_u] ON [ud].[UserID] = [ud_u].[UserID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[UserType] AS [ud_u_ut] ON [ud_u].[UserTypeID] = [ud_u_ut].[UserTypeID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Gender] AS [ud_g] ON [ud].[GenderID] = [ud_g].[GenderID] ";
                }
                sqlCmdText += "WHERE [ud].[UserDetailID] = @UserDetailID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@UserDetailID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ud", "loadinternal", "notfound"), "UserDetail could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                UserDetailTable udTable      = new UserDetailTable(query);
                UserTable       ud_uTable    = (this.Depth > 0) ? new UserTable(query) : null;
                UserTypeTable   ud_u_utTable = (this.Depth > 1) ? new UserTypeTable(query) : null;
                GenderTable     ud_gTable    = (this.Depth > 0) ? new GenderTable(query) : null;


                UserType   ud_u_utObject = (this.Depth > 1) ? ud_u_utTable.CreateInstance() : null;
                User       ud_uObject    = (this.Depth > 0) ? ud_uTable.CreateInstance(ud_u_utObject) : null;
                Gender     ud_gObject    = (this.Depth > 0) ? ud_gTable.CreateInstance() : null;
                UserDetail udObject      = udTable.CreateInstance(ud_uObject, ud_gObject);
                sqlReader.Close();

                return(udObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ud", "loadinternal", "exception"), "UserDetail could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "UserDetail", "Exception while loading UserDetail object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 11
0
        public List <TranslationGroup> Load(ISqlConnectionInfo connection)
        {
            SqlQueryParameters parameters = new SqlQueryParameters();

            return(this.LoadMany(connection, parameters));
        }
Esempio n. 12
0
        public List <UserType> LoadMany(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             UserTypeTable.GetColumnNames("[ut]") +
                             " FROM [core].[UserType] AS [ut] ";


                sqlCmdText = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ut", "customloadmany", "notfound"), "UserType list could not be loaded using custom logic as no items were found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(new List <UserType>());
                }

                SqlQuery query = new SqlQuery(sqlReader);

                UserTypeTable utTable = new UserTypeTable(query);

                List <UserType> result = new List <UserType>();
                do
                {
                    UserType utObject = (this.Depth > -1) ? utTable.CreateInstance() : null;
                    result.Add(utObject);
                } while (sqlReader.Read());
                sqlReader.Close();

                return(result);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ut", "customloadmany", "exception"), "UserType list could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "UserType", "Exception while loading (custom/many) UserType object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 13
0
        public override bool Update(ISqlConnectionInfo connection, Message data)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            string sqlCmdText = string.Empty;

            try
            {
                data.Updated = DateTime.Now;
                sqlCmdText   = "UPDATE [stats].[Message] SET " +
                               "[MessageGuid] = @MessageGuid, " +
                               "[ExternalID] = @ExternalID, " +
                               "[ServiceID] = @ServiceID, " +
                               "[CustomerID] = @CustomerID, " +
                               "[MobileOperatorName] = @MobileOperatorName, " +
                               "[MobileOperatorID] = @MobileOperatorID, " +
                               "[MessageDirectionID] = @MessageDirectionID, " +
                               "[MessageTypeID] = @MessageTypeID, " +
                               "[MessageStatusID] = @MessageStatusID, " +
                               "[Text] = @Text, " +
                               "[Shorcode] = @Shorcode, " +
                               "[Keyword] = @Keyword, " +
                               "[TrackingID] = @TrackingID, " +
                               "[Updated] = GETDATE() " +
                               "WHERE [MessageID] = @MessageID;";
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;

                sqlCmd.Parameters.AddWithValue("@MessageGuid", data.Guid);
                sqlCmd.Parameters.AddWithValue("@ExternalID", data.ExternalID.HasValue ? (object)data.ExternalID.Value : DBNull.Value).SqlDbType = SqlDbType.Int;
                sqlCmd.Parameters.AddWithValue("@ServiceID", data.Service.ID);
                sqlCmd.Parameters.AddWithValue("@CustomerID", data.Customer == null ? DBNull.Value : (object)data.Customer.ID);
                sqlCmd.Parameters.AddWithValue("@MobileOperatorName", !string.IsNullOrEmpty(data.MobileOperatorName) ? (object)data.MobileOperatorName : DBNull.Value).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@MobileOperatorID", data.MobileOperator == null ? DBNull.Value : (object)data.MobileOperator.ID);
                sqlCmd.Parameters.AddWithValue("@MessageDirectionID", (int)data.MessageDirection);
                sqlCmd.Parameters.AddWithValue("@MessageTypeID", (int)data.MessageType);
                sqlCmd.Parameters.AddWithValue("@MessageStatusID", (int)data.MessageStatus);
                sqlCmd.Parameters.AddWithValue("@Text", !string.IsNullOrEmpty(data.Text) ? (object)data.Text : DBNull.Value).SqlDbType           = SqlDbType.NText;
                sqlCmd.Parameters.AddWithValue("@Shorcode", data.Shorcode.HasValue ? (object)data.Shorcode.Value : DBNull.Value).SqlDbType       = SqlDbType.Int;
                sqlCmd.Parameters.AddWithValue("@Keyword", !string.IsNullOrEmpty(data.Keyword) ? (object)data.Keyword : DBNull.Value).SqlDbType  = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@TrackingID", data.TrackingID.HasValue ? (object)data.TrackingID.Value : DBNull.Value).SqlDbType = SqlDbType.Int;
                sqlCmd.Parameters.AddWithValue("@Updated", data.Updated).SqlDbType = SqlDbType.DateTime2;
                sqlCmd.Parameters.AddWithValue("@MessageID", data.ID);

                int rowCount = sqlCmd.ExecuteNonQuery();
                if (rowCount < 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "update", "norecord"), "Message could not be updated as no matching record was found.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsErrorEnabled)
                    {
                        this.Logger.Error(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "Message", "Exception while updating Message object in database. No record found for this id.");
                }
                else if (rowCount > 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "update", "morerecords"), "Message was updated but there was more than one record affected.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsFatalEnabled)
                    {
                        this.Logger.Fatal(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "Message", "Exception while updating Message object in database. More than one record found for this statement (update statement where clause broken?!).");
                }
                return(true);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "update", "exception"), "Message could not be updated. See exception for details", sqlCmdText, ex, this, connection, data);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Update, "Message", "Exception while updating Message object in database. See inner exception for details.", ex);
            }
        }
 public SqlServerFileRepository(ISqlConnectionInfo sqlConnectionInfo, IUserIdentity userIdentity, IFileStorage fileStorage)
 {
     _sqlConnectionInfo = DIHelper.VerifyParameter(sqlConnectionInfo);
     _userIdentity = DIHelper.VerifyParameter(userIdentity);
     _fileStorage = DIHelper.VerifyParameter(fileStorage);
 }
Esempio n. 15
0
        public List <PaymentConfiguration> LoadMany(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             PaymentConfigurationTable.GetColumnNames("[pc]") +
                             (this.Depth > 0 ? "," + PaymentCredentialsTable.GetColumnNames("[pc_pc]") : string.Empty) +
                             (this.Depth > 0 ? "," + PaymentInterfaceTable.GetColumnNames("[pc_pi]") : string.Empty) +
                             (this.Depth > 0 ? "," + PaymentProviderTable.GetColumnNames("[pc_pp]") : string.Empty) +
                             (this.Depth > 0 ? "," + BehaviorModelTable.GetColumnNames("[pc_bm]") : string.Empty) +
                             " FROM [core].[PaymentConfiguration] AS [pc] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[PaymentCredentials] AS [pc_pc] ON [pc].[PaymentCredentialsID] = [pc_pc].[PaymentCredentialsID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[PaymentInterface] AS [pc_pi] ON [pc].[PaymentInterfaceID] = [pc_pi].[PaymentInterfaceID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[PaymentProvider] AS [pc_pp] ON [pc].[PaymentProviderID] = [pc_pp].[PaymentProviderID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[BehaviorModel] AS [pc_bm] ON [pc].[BehaviorModelID] = [pc_bm].[BehaviorModelID] ";
                }


                sqlCmdText = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("pc", "customloadmany", "notfound"), "PaymentConfiguration list could not be loaded using custom logic as no items were found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(new List <PaymentConfiguration>());
                }

                SqlQuery query = new SqlQuery(sqlReader);

                PaymentConfigurationTable pcTable    = new PaymentConfigurationTable(query);
                PaymentCredentialsTable   pc_pcTable = (this.Depth > 0) ? new PaymentCredentialsTable(query) : null;
                PaymentInterfaceTable     pc_piTable = (this.Depth > 0) ? new PaymentInterfaceTable(query) : null;
                PaymentProviderTable      pc_ppTable = (this.Depth > 0) ? new PaymentProviderTable(query) : null;
                BehaviorModelTable        pc_bmTable = (this.Depth > 0) ? new BehaviorModelTable(query) : null;

                List <PaymentConfiguration> result = new List <PaymentConfiguration>();
                do
                {
                    PaymentCredentials   pc_pcObject = (this.Depth > 0) ? pc_pcTable.CreateInstance() : null;
                    PaymentInterface     pc_piObject = (this.Depth > 0) ? pc_piTable.CreateInstance() : null;
                    PaymentProvider      pc_ppObject = (this.Depth > 0) ? pc_ppTable.CreateInstance() : null;
                    BehaviorModel        pc_bmObject = (this.Depth > 0) ? pc_bmTable.CreateInstance() : null;
                    PaymentConfiguration pcObject    = (this.Depth > -1) ? pcTable.CreateInstance(pc_pcObject, pc_piObject, pc_ppObject, pc_bmObject) : null;
                    result.Add(pcObject);
                } while (sqlReader.Read());
                sqlReader.Close();

                return(result);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("pc", "customloadmany", "exception"), "PaymentConfiguration list could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "PaymentConfiguration", "Exception while loading (custom/many) PaymentConfiguration object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 16
0
        public Message Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             MessageTable.GetColumnNames("[m]") +
                             (this.Depth > 0 ? "," + ServiceTable.GetColumnNames("[m_s]") : string.Empty) +
                             (this.Depth > 1 ? "," + ApplicationTable.GetColumnNames("[m_s_a]") : string.Empty) +
                             (this.Depth > 1 ? "," + ProductTable.GetColumnNames("[m_s_p]") : string.Empty) +
                             (this.Depth > 1 ? "," + MerchantTable.GetColumnNames("[m_s_m]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceTypeTable.GetColumnNames("[m_s_st]") : string.Empty) +
                             (this.Depth > 1 ? "," + UserSessionTypeTable.GetColumnNames("[m_s_ust]") : string.Empty) +
                             (this.Depth > 1 ? "," + CountryTable.GetColumnNames("[m_s_c]") : string.Empty) +
                             (this.Depth > 1 ? "," + LanguageTable.GetColumnNames("[m_s_l]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceConfigurationTable.GetColumnNames("[m_s_sc]") : string.Empty) +
                             (this.Depth > 1 ? "," + TemplateTable.GetColumnNames("[m_s_t]") : string.Empty) +
                             (this.Depth > 0 ? "," + CustomerTable.GetColumnNames("[m_c]") : string.Empty) +
                             (this.Depth > 1 ? "," + UserTable.GetColumnNames("[m_c_u]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceTable.GetColumnNames("[m_c_s]") : string.Empty) +
                             (this.Depth > 1 ? "," + CountryTable.GetColumnNames("[m_c_c]") : string.Empty) +
                             (this.Depth > 1 ? "," + LanguageTable.GetColumnNames("[m_c_l]") : string.Empty) +
                             (this.Depth > 1 ? "," + MobileOperatorTable.GetColumnNames("[m_c_mo]") : string.Empty) +
                             (this.Depth > 0 ? "," + MobileOperatorTable.GetColumnNames("[m_mo]") : string.Empty) +
                             (this.Depth > 1 ? "," + CountryTable.GetColumnNames("[m_mo_c]") : string.Empty) +
                             " FROM [stats].[Message] AS [m] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Service] AS [m_s] ON [m].[ServiceID] = [m_s].[ServiceID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Application] AS [m_s_a] ON [m_s].[ApplicationID] = [m_s_a].[ApplicationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Product] AS [m_s_p] ON [m_s].[ProductID] = [m_s_p].[ProductID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Merchant] AS [m_s_m] ON [m_s].[MerchantID] = [m_s_m].[MerchantID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[ServiceType] AS [m_s_st] ON [m_s].[ServiceTypeID] = [m_s_st].[ServiceTypeID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[UserSessionType] AS [m_s_ust] ON [m_s].[UserSessionTypeID] = [m_s_ust].[UserSessionTypeID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Country] AS [m_s_c] ON [m_s].[FallbackCountryID] = [m_s_c].[CountryID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Language] AS [m_s_l] ON [m_s].[FallbackLanguageID] = [m_s_l].[LanguageID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[ServiceConfiguration] AS [m_s_sc] ON [m_s].[ServiceConfigurationID] = [m_s_sc].[ServiceConfigurationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Template] AS [m_s_t] ON [m_s].[TemplateID] = [m_s_t].[TemplateID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Customer] AS [m_c] ON [m].[CustomerID] = [m_c].[CustomerID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[User] AS [m_c_u] ON [m_c].[UserID] = [m_c_u].[UserID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Service] AS [m_c_s] ON [m_c].[ServiceID] = [m_c_s].[ServiceID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Country] AS [m_c_c] ON [m_c].[CountryID] = [m_c_c].[CountryID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Language] AS [m_c_l] ON [m_c].[LanguageID] = [m_c_l].[LanguageID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[MobileOperator] AS [m_c_mo] ON [m_c].[MobileOperatorID] = [m_c_mo].[MobileOperatorID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[MobileOperator] AS [m_mo] ON [m].[MobileOperatorID] = [m_mo].[MobileOperatorID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Country] AS [m_mo_c] ON [m_mo].[CountryID] = [m_mo_c].[CountryID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "customload", "notfound"), "Message could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                MessageTable              mTable       = new MessageTable(query);
                ServiceTable              m_sTable     = (this.Depth > 0) ? new ServiceTable(query) : null;
                ApplicationTable          m_s_aTable   = (this.Depth > 1) ? new ApplicationTable(query) : null;
                ProductTable              m_s_pTable   = (this.Depth > 1) ? new ProductTable(query) : null;
                MerchantTable             m_s_mTable   = (this.Depth > 1) ? new MerchantTable(query) : null;
                ServiceTypeTable          m_s_stTable  = (this.Depth > 1) ? new ServiceTypeTable(query) : null;
                UserSessionTypeTable      m_s_ustTable = (this.Depth > 1) ? new UserSessionTypeTable(query) : null;
                CountryTable              m_s_cTable   = (this.Depth > 1) ? new CountryTable(query) : null;
                LanguageTable             m_s_lTable   = (this.Depth > 1) ? new LanguageTable(query) : null;
                ServiceConfigurationTable m_s_scTable  = (this.Depth > 1) ? new ServiceConfigurationTable(query) : null;
                TemplateTable             m_s_tTable   = (this.Depth > 1) ? new TemplateTable(query) : null;
                CustomerTable             m_cTable     = (this.Depth > 0) ? new CustomerTable(query) : null;
                UserTable           m_c_uTable         = (this.Depth > 1) ? new UserTable(query) : null;
                ServiceTable        m_c_sTable         = (this.Depth > 1) ? new ServiceTable(query) : null;
                CountryTable        m_c_cTable         = (this.Depth > 1) ? new CountryTable(query) : null;
                LanguageTable       m_c_lTable         = (this.Depth > 1) ? new LanguageTable(query) : null;
                MobileOperatorTable m_c_moTable        = (this.Depth > 1) ? new MobileOperatorTable(query) : null;
                MobileOperatorTable m_moTable          = (this.Depth > 0) ? new MobileOperatorTable(query) : null;
                CountryTable        m_mo_cTable        = (this.Depth > 1) ? new CountryTable(query) : null;


                Application          m_s_aObject   = (this.Depth > 1) ? m_s_aTable.CreateInstance() : null;
                Product              m_s_pObject   = (this.Depth > 1) ? m_s_pTable.CreateInstance() : null;
                Merchant             m_s_mObject   = (this.Depth > 1) ? m_s_mTable.CreateInstance() : null;
                ServiceType          m_s_stObject  = (this.Depth > 1) ? m_s_stTable.CreateInstance() : null;
                UserSessionType      m_s_ustObject = (this.Depth > 1) ? m_s_ustTable.CreateInstance() : null;
                Country              m_s_cObject   = (this.Depth > 1) ? m_s_cTable.CreateInstance() : null;
                Language             m_s_lObject   = (this.Depth > 1) ? m_s_lTable.CreateInstance() : null;
                ServiceConfiguration m_s_scObject  = (this.Depth > 1) ? m_s_scTable.CreateInstance() : null;
                Template             m_s_tObject   = (this.Depth > 1) ? m_s_tTable.CreateInstance() : null;
                Service              m_sObject     = (this.Depth > 0) ? m_sTable.CreateInstance(m_s_aObject, m_s_pObject, m_s_mObject, m_s_stObject, m_s_ustObject, m_s_cObject, m_s_lObject, m_s_scObject, m_s_tObject) : null;
                User           m_c_uObject         = (this.Depth > 1) ? m_c_uTable.CreateInstance() : null;
                Service        m_c_sObject         = (this.Depth > 1) ? m_c_sTable.CreateInstance() : null;
                Country        m_c_cObject         = (this.Depth > 1) ? m_c_cTable.CreateInstance() : null;
                Language       m_c_lObject         = (this.Depth > 1) ? m_c_lTable.CreateInstance() : null;
                MobileOperator m_c_moObject        = (this.Depth > 1) ? m_c_moTable.CreateInstance() : null;
                Customer       m_cObject           = (this.Depth > 0) ? m_cTable.CreateInstance(m_c_uObject, m_c_sObject, m_c_cObject, m_c_lObject, m_c_moObject) : null;
                Country        m_mo_cObject        = (this.Depth > 1) ? m_mo_cTable.CreateInstance() : null;
                MobileOperator m_moObject          = (this.Depth > 0) ? m_moTable.CreateInstance(m_mo_cObject) : null;
                Message        mObject             = mTable.CreateInstance(m_sObject, m_cObject, m_moObject);
                sqlReader.Close();

                return(mObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "customload", "exception"), "Message could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "Message", "Exception while loading (custom/single) Message object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 17
0
        protected override PaymentConfiguration LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             PaymentConfigurationTable.GetColumnNames("[pc]") +
                             (this.Depth > 0 ? "," + PaymentCredentialsTable.GetColumnNames("[pc_pc]") : string.Empty) +
                             (this.Depth > 0 ? "," + PaymentInterfaceTable.GetColumnNames("[pc_pi]") : string.Empty) +
                             (this.Depth > 0 ? "," + PaymentProviderTable.GetColumnNames("[pc_pp]") : string.Empty) +
                             (this.Depth > 0 ? "," + BehaviorModelTable.GetColumnNames("[pc_bm]") : string.Empty) +
                             " FROM [core].[PaymentConfiguration] AS [pc] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[PaymentCredentials] AS [pc_pc] ON [pc].[PaymentCredentialsID] = [pc_pc].[PaymentCredentialsID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[PaymentInterface] AS [pc_pi] ON [pc].[PaymentInterfaceID] = [pc_pi].[PaymentInterfaceID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[PaymentProvider] AS [pc_pp] ON [pc].[PaymentProviderID] = [pc_pp].[PaymentProviderID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[BehaviorModel] AS [pc_bm] ON [pc].[BehaviorModelID] = [pc_bm].[BehaviorModelID] ";
                }
                sqlCmdText += "WHERE [pc].[PaymentConfigurationID] = @PaymentConfigurationID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@PaymentConfigurationID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("pc", "loadinternal", "notfound"), "PaymentConfiguration could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                PaymentConfigurationTable pcTable    = new PaymentConfigurationTable(query);
                PaymentCredentialsTable   pc_pcTable = (this.Depth > 0) ? new PaymentCredentialsTable(query) : null;
                PaymentInterfaceTable     pc_piTable = (this.Depth > 0) ? new PaymentInterfaceTable(query) : null;
                PaymentProviderTable      pc_ppTable = (this.Depth > 0) ? new PaymentProviderTable(query) : null;
                BehaviorModelTable        pc_bmTable = (this.Depth > 0) ? new BehaviorModelTable(query) : null;


                PaymentCredentials   pc_pcObject = (this.Depth > 0) ? pc_pcTable.CreateInstance() : null;
                PaymentInterface     pc_piObject = (this.Depth > 0) ? pc_piTable.CreateInstance() : null;
                PaymentProvider      pc_ppObject = (this.Depth > 0) ? pc_ppTable.CreateInstance() : null;
                BehaviorModel        pc_bmObject = (this.Depth > 0) ? pc_bmTable.CreateInstance() : null;
                PaymentConfiguration pcObject    = pcTable.CreateInstance(pc_pcObject, pc_piObject, pc_ppObject, pc_bmObject);
                sqlReader.Close();

                return(pcObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("pc", "loadinternal", "exception"), "PaymentConfiguration could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "PaymentConfiguration", "Exception while loading PaymentConfiguration object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 18
0
        protected override Domain LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             DomainTable.GetColumnNames("[d]") +
                             (this.Depth > 0 ? "," + ServiceTable.GetColumnNames("[d_s]") : string.Empty) +
                             (this.Depth > 1 ? "," + ApplicationTable.GetColumnNames("[d_s_a]") : string.Empty) +
                             (this.Depth > 1 ? "," + ProductTable.GetColumnNames("[d_s_p]") : string.Empty) +
                             (this.Depth > 1 ? "," + MerchantTable.GetColumnNames("[d_s_m]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceTypeTable.GetColumnNames("[d_s_st]") : string.Empty) +
                             (this.Depth > 1 ? "," + UserSessionTypeTable.GetColumnNames("[d_s_ust]") : string.Empty) +
                             (this.Depth > 1 ? "," + CountryTable.GetColumnNames("[d_s_c]") : string.Empty) +
                             (this.Depth > 1 ? "," + LanguageTable.GetColumnNames("[d_s_l]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceConfigurationTable.GetColumnNames("[d_s_sc]") : string.Empty) +
                             (this.Depth > 1 ? "," + TemplateTable.GetColumnNames("[d_s_t]") : string.Empty) +
                             " FROM [core].[Domain] AS [d] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Service] AS [d_s] ON [d].[ServiceID] = [d_s].[ServiceID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Application] AS [d_s_a] ON [d_s].[ApplicationID] = [d_s_a].[ApplicationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Product] AS [d_s_p] ON [d_s].[ProductID] = [d_s_p].[ProductID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Merchant] AS [d_s_m] ON [d_s].[MerchantID] = [d_s_m].[MerchantID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[ServiceType] AS [d_s_st] ON [d_s].[ServiceTypeID] = [d_s_st].[ServiceTypeID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[UserSessionType] AS [d_s_ust] ON [d_s].[UserSessionTypeID] = [d_s_ust].[UserSessionTypeID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Country] AS [d_s_c] ON [d_s].[FallbackCountryID] = [d_s_c].[CountryID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Language] AS [d_s_l] ON [d_s].[FallbackLanguageID] = [d_s_l].[LanguageID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[ServiceConfiguration] AS [d_s_sc] ON [d_s].[ServiceConfigurationID] = [d_s_sc].[ServiceConfigurationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Template] AS [d_s_t] ON [d_s].[TemplateID] = [d_s_t].[TemplateID] ";
                }
                sqlCmdText += "WHERE [d].[DomainID] = @DomainID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@DomainID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("d", "loadinternal", "notfound"), "Domain could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                DomainTable               dTable       = new DomainTable(query);
                ServiceTable              d_sTable     = (this.Depth > 0) ? new ServiceTable(query) : null;
                ApplicationTable          d_s_aTable   = (this.Depth > 1) ? new ApplicationTable(query) : null;
                ProductTable              d_s_pTable   = (this.Depth > 1) ? new ProductTable(query) : null;
                MerchantTable             d_s_mTable   = (this.Depth > 1) ? new MerchantTable(query) : null;
                ServiceTypeTable          d_s_stTable  = (this.Depth > 1) ? new ServiceTypeTable(query) : null;
                UserSessionTypeTable      d_s_ustTable = (this.Depth > 1) ? new UserSessionTypeTable(query) : null;
                CountryTable              d_s_cTable   = (this.Depth > 1) ? new CountryTable(query) : null;
                LanguageTable             d_s_lTable   = (this.Depth > 1) ? new LanguageTable(query) : null;
                ServiceConfigurationTable d_s_scTable  = (this.Depth > 1) ? new ServiceConfigurationTable(query) : null;
                TemplateTable             d_s_tTable   = (this.Depth > 1) ? new TemplateTable(query) : null;


                Application          d_s_aObject   = (this.Depth > 1) ? d_s_aTable.CreateInstance() : null;
                Product              d_s_pObject   = (this.Depth > 1) ? d_s_pTable.CreateInstance() : null;
                Merchant             d_s_mObject   = (this.Depth > 1) ? d_s_mTable.CreateInstance() : null;
                ServiceType          d_s_stObject  = (this.Depth > 1) ? d_s_stTable.CreateInstance() : null;
                UserSessionType      d_s_ustObject = (this.Depth > 1) ? d_s_ustTable.CreateInstance() : null;
                Country              d_s_cObject   = (this.Depth > 1) ? d_s_cTable.CreateInstance() : null;
                Language             d_s_lObject   = (this.Depth > 1) ? d_s_lTable.CreateInstance() : null;
                ServiceConfiguration d_s_scObject  = (this.Depth > 1) ? d_s_scTable.CreateInstance() : null;
                Template             d_s_tObject   = (this.Depth > 1) ? d_s_tTable.CreateInstance() : null;
                Service              d_sObject     = (this.Depth > 0) ? d_sTable.CreateInstance(d_s_aObject, d_s_pObject, d_s_mObject, d_s_stObject, d_s_ustObject, d_s_cObject, d_s_lObject, d_s_scObject, d_s_tObject) : null;
                Domain dObject = dTable.CreateInstance(d_sObject);
                sqlReader.Close();

                return(dObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("d", "loadinternal", "exception"), "Domain could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "Domain", "Exception while loading Domain object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 19
0
        public override bool Update(ISqlConnectionInfo connection, PaymentConfiguration data)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            string sqlCmdText = string.Empty;

            try
            {
                data.Updated = DateTime.Now;
                sqlCmdText   = "UPDATE [core].[PaymentConfiguration] SET " +
                               "[PaymentCredentialsID] = @PaymentCredentialsID, " +
                               "[PaymentInterfaceID] = @PaymentInterfaceID, " +
                               "[PaymentProviderID] = @PaymentProviderID, " +
                               "[BehaviorModelID] = @BehaviorModelID, " +
                               "[Name] = @Name, " +
                               "[Updated] = GETDATE() " +
                               "WHERE [PaymentConfigurationID] = @PaymentConfigurationID;";
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;

                sqlCmd.Parameters.AddWithValue("@PaymentCredentialsID", data.PaymentCredentials.ID);
                sqlCmd.Parameters.AddWithValue("@PaymentInterfaceID", data.PaymentInterface.ID);
                sqlCmd.Parameters.AddWithValue("@PaymentProviderID", data.PaymentProvider.ID);
                sqlCmd.Parameters.AddWithValue("@BehaviorModelID", data.BehaviorModel.ID);
                sqlCmd.Parameters.AddWithValue("@Name", data.Name).SqlDbType       = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Updated", data.Updated).SqlDbType = SqlDbType.DateTime2;
                sqlCmd.Parameters.AddWithValue("@PaymentConfigurationID", data.ID);

                int rowCount = sqlCmd.ExecuteNonQuery();
                if (rowCount < 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("pc", "update", "norecord"), "PaymentConfiguration could not be updated as no matching record was found.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsErrorEnabled)
                    {
                        this.Logger.Error(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "PaymentConfiguration", "Exception while updating PaymentConfiguration object in database. No record found for this id.");
                }
                else if (rowCount > 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("pc", "update", "morerecords"), "PaymentConfiguration was updated but there was more than one record affected.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsFatalEnabled)
                    {
                        this.Logger.Fatal(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "PaymentConfiguration", "Exception while updating PaymentConfiguration object in database. More than one record found for this statement (update statement where clause broken?!).");
                }
                return(true);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("pc", "update", "exception"), "PaymentConfiguration could not be updated. See exception for details", sqlCmdText, ex, this, connection, data);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Update, "PaymentConfiguration", "Exception while updating PaymentConfiguration object in database. See inner exception for details.", ex);
            }
        }
Esempio n. 20
0
        public List <PaymentConfiguration> Load(ISqlConnectionInfo connection)
        {
            SqlQueryParameters parameters = new SqlQueryParameters();

            return(this.LoadMany(connection, parameters));
        }
Esempio n. 21
0
        public List <UserType> Load(ISqlConnectionInfo connection)
        {
            SqlQueryParameters parameters = new SqlQueryParameters();

            return(this.LoadMany(connection, parameters));
        }
Esempio n. 22
0
        public override bool Update(ISqlConnectionInfo connection, ServiceProfileGroupMap data)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            string sqlCmdText = string.Empty;

            try
            {
                data.Updated = DateTime.Now;
                sqlCmdText   = "UPDATE [web].[ServiceProfileGroupMap] SET " +
                               "[ServiceID] = @ServiceID, " +
                               "[ProfileGroupID] = @ProfileGroupID, " +
                               "[IsActive] = @IsActive, " +
                               "[Updated] = GETDATE() " +
                               "WHERE [ServiceProfileGroupMapID] = @ServiceProfileGroupMapID;";
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;

                sqlCmd.Parameters.AddWithValue("@ServiceID", data.ServiceID).SqlDbType = SqlDbType.Int;
                sqlCmd.Parameters.AddWithValue("@ProfileGroupID", data.ProfileGroup.ID);
                sqlCmd.Parameters.AddWithValue("@IsActive", data.IsActive).SqlDbType = SqlDbType.Bit;
                sqlCmd.Parameters.AddWithValue("@Updated", data.Updated).SqlDbType   = SqlDbType.DateTime2;
                sqlCmd.Parameters.AddWithValue("@ServiceProfileGroupMapID", data.ID);

                int rowCount = sqlCmd.ExecuteNonQuery();
                if (rowCount < 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("spgm", "update", "norecord"), "ServiceProfileGroupMap could not be updated as no matching record was found.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsErrorEnabled)
                    {
                        this.Logger.Error(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "ServiceProfileGroupMap", "Exception while updating ServiceProfileGroupMap object in database. No record found for this id.");
                }
                else if (rowCount > 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("spgm", "update", "morerecords"), "ServiceProfileGroupMap was updated but there was more than one record affected.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsFatalEnabled)
                    {
                        this.Logger.Fatal(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "ServiceProfileGroupMap", "Exception while updating ServiceProfileGroupMap object in database. More than one record found for this statement (update statement where clause broken?!).");
                }
                return(true);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("spgm", "update", "exception"), "ServiceProfileGroupMap could not be updated. See exception for details", sqlCmdText, ex, this, connection, data);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Update, "ServiceProfileGroupMap", "Exception while updating ServiceProfileGroupMap object in database. See inner exception for details.", ex);
            }
        }
        public TranslationValue Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             TranslationValueTable.GetColumnNames("[tv]") +
                             (this.Depth > 0 ? "," + TranslationKeyTable.GetColumnNames("[tv_tk]") : string.Empty) +
                             (this.Depth > 1 ? "," + TranslationKeyTable.GetColumnNames("[tv_tk_tk]") : string.Empty) +
                             (this.Depth > 1 ? "," + TranslationTable.GetColumnNames("[tv_tk_t]") : string.Empty) +
                             (this.Depth > 1 ? "," + LanguageTable.GetColumnNames("[tv_tk_l]") : string.Empty) +
                             (this.Depth > 1 ? "," + ServiceTable.GetColumnNames("[tv_tk_s]") : string.Empty) +
                             (this.Depth > 0 ? "," + TranslationGroupKeyTable.GetColumnNames("[tv_tgk]") : string.Empty) +
                             (this.Depth > 1 ? "," + TranslationGroupTable.GetColumnNames("[tv_tgk_tg]") : string.Empty) +
                             " FROM [core].[TranslationValue] AS [tv] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[TranslationKey] AS [tv_tk] ON [tv].[TranslationKeyID] = [tv_tk].[TranslationKeyID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[TranslationKey] AS [tv_tk_tk] ON [tv_tk].[FallbackTranslationKeyID] = [tv_tk_tk].[TranslationKeyID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Translation] AS [tv_tk_t] ON [tv_tk].[TranslationID] = [tv_tk_t].[TranslationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Language] AS [tv_tk_l] ON [tv_tk].[LanguageID] = [tv_tk_l].[LanguageID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "LEFT OUTER  JOIN [core].[Service] AS [tv_tk_s] ON [tv_tk].[ServiceID] = [tv_tk_s].[ServiceID] ";
                }
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[TranslationGroupKey] AS [tv_tgk] ON [tv].[TranslationGroupKeyID] = [tv_tgk].[TranslationGroupKeyID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[TranslationGroup] AS [tv_tgk_tg] ON [tv_tgk].[TranslationGroupID] = [tv_tgk_tg].[TranslationGroupID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("tv", "customload", "notfound"), "TranslationValue could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                TranslationValueTable    tvTable        = new TranslationValueTable(query);
                TranslationKeyTable      tv_tkTable     = (this.Depth > 0) ? new TranslationKeyTable(query) : null;
                TranslationKeyTable      tv_tk_tkTable  = (this.Depth > 1) ? new TranslationKeyTable(query) : null;
                TranslationTable         tv_tk_tTable   = (this.Depth > 1) ? new TranslationTable(query) : null;
                LanguageTable            tv_tk_lTable   = (this.Depth > 1) ? new LanguageTable(query) : null;
                ServiceTable             tv_tk_sTable   = (this.Depth > 1) ? new ServiceTable(query) : null;
                TranslationGroupKeyTable tv_tgkTable    = (this.Depth > 0) ? new TranslationGroupKeyTable(query) : null;
                TranslationGroupTable    tv_tgk_tgTable = (this.Depth > 1) ? new TranslationGroupTable(query) : null;


                TranslationKey      tv_tk_tkObject  = (this.Depth > 1) ? tv_tk_tkTable.CreateInstance() : null;
                Translation         tv_tk_tObject   = (this.Depth > 1) ? tv_tk_tTable.CreateInstance() : null;
                Language            tv_tk_lObject   = (this.Depth > 1) ? tv_tk_lTable.CreateInstance() : null;
                Service             tv_tk_sObject   = (this.Depth > 1) ? tv_tk_sTable.CreateInstance() : null;
                TranslationKey      tv_tkObject     = (this.Depth > 0) ? tv_tkTable.CreateInstance(tv_tk_tkObject, tv_tk_tObject, tv_tk_lObject, tv_tk_sObject) : null;
                TranslationGroup    tv_tgk_tgObject = (this.Depth > 1) ? tv_tgk_tgTable.CreateInstance() : null;
                TranslationGroupKey tv_tgkObject    = (this.Depth > 0) ? tv_tgkTable.CreateInstance(tv_tgk_tgObject) : null;
                TranslationValue    tvObject        = tvTable.CreateInstance(tv_tkObject, tv_tgkObject);
                sqlReader.Close();

                return(tvObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("tv", "customload", "exception"), "TranslationValue could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "TranslationValue", "Exception while loading (custom/single) TranslationValue object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 24
0
        public List <ProfileDetail> Load(ISqlConnectionInfo connection)
        {
            SqlQueryParameters parameters = new SqlQueryParameters();

            return(this.LoadMany(connection, parameters));
        }
        protected override RouteParameter LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             RouteParameterTable.GetColumnNames("[rp]") +
                             (this.Depth > 0 ? "," + RouteTable.GetColumnNames("[rp_r]") : string.Empty) +
                             (this.Depth > 1 ? "," + RouteSetTable.GetColumnNames("[rp_r_rs]") : string.Empty) +
                             " FROM [core].[RouteParameter] AS [rp] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Route] AS [rp_r] ON [rp].[RouteID] = [rp_r].[RouteID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[RouteSet] AS [rp_r_rs] ON [rp_r].[RouteSetID] = [rp_r_rs].[RouteSetID] ";
                }
                sqlCmdText += "WHERE [rp].[RouteParameterID] = @RouteParameterID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@RouteParameterID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("rp", "loadinternal", "notfound"), "RouteParameter could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                RouteParameterTable rpTable      = new RouteParameterTable(query);
                RouteTable          rp_rTable    = (this.Depth > 0) ? new RouteTable(query) : null;
                RouteSetTable       rp_r_rsTable = (this.Depth > 1) ? new RouteSetTable(query) : null;


                RouteSet       rp_r_rsObject = (this.Depth > 1) ? rp_r_rsTable.CreateInstance() : null;
                Route          rp_rObject    = (this.Depth > 0) ? rp_rTable.CreateInstance(rp_r_rsObject) : null;
                RouteParameter rpObject      = rpTable.CreateInstance(rp_rObject);
                sqlReader.Close();

                return(rpObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("rp", "loadinternal", "exception"), "RouteParameter could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "RouteParameter", "Exception while loading RouteParameter object from database. See inner exception for details.", ex);
            }
        }
Esempio n. 26
0
        public override bool Update(ISqlConnectionInfo connection, Merchant data)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            string sqlCmdText = string.Empty;

            try
            {
                data.Updated = DateTime.Now;
                sqlCmdText   = "UPDATE [core].[Merchant] SET " +
                               "[InstanceID] = @InstanceID, " +
                               "[TemplateID] = @TemplateID, " +
                               "[Name] = @Name, " +
                               "[Address] = @Address, " +
                               "[Phone] = @Phone, " +
                               "[Email] = @Email, " +
                               "[RegistrationNo] = @RegistrationNo, " +
                               "[VatNo] = @VatNo, " +
                               "[Updated] = GETDATE() " +
                               "WHERE [MerchantID] = @MerchantID;";
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;

                sqlCmd.Parameters.AddWithValue("@InstanceID", data.Instance.ID);
                sqlCmd.Parameters.AddWithValue("@TemplateID", data.Template == null ? DBNull.Value : (object)data.Template.ID);
                sqlCmd.Parameters.AddWithValue("@Name", data.Name).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Address", !string.IsNullOrEmpty(data.Address) ? (object)data.Address : DBNull.Value).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Phone", !string.IsNullOrEmpty(data.Phone) ? (object)data.Phone : DBNull.Value).SqlDbType       = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Email", !string.IsNullOrEmpty(data.Email) ? (object)data.Email : DBNull.Value).SqlDbType       = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@RegistrationNo", !string.IsNullOrEmpty(data.RegistrationNo) ? (object)data.RegistrationNo : DBNull.Value).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@VatNo", !string.IsNullOrEmpty(data.VatNo) ? (object)data.VatNo : DBNull.Value).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Updated", data.Updated).SqlDbType = SqlDbType.DateTime2;
                sqlCmd.Parameters.AddWithValue("@MerchantID", data.ID);

                int rowCount = sqlCmd.ExecuteNonQuery();
                if (rowCount < 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "update", "norecord"), "Merchant could not be updated as no matching record was found.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsErrorEnabled)
                    {
                        this.Logger.Error(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "Merchant", "Exception while updating Merchant object in database. No record found for this id.");
                }
                else if (rowCount > 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "update", "morerecords"), "Merchant was updated but there was more than one record affected.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsFatalEnabled)
                    {
                        this.Logger.Fatal(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "Merchant", "Exception while updating Merchant object in database. More than one record found for this statement (update statement where clause broken?!).");
                }
                return(true);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "update", "exception"), "Merchant could not be updated. See exception for details", sqlCmdText, ex, this, connection, data);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Update, "Merchant", "Exception while updating Merchant object in database. See inner exception for details.", ex);
            }
        }
        public override bool Update(ISqlConnectionInfo connection, RouteParameter data)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            string sqlCmdText = string.Empty;

            try
            {
                data.Updated = DateTime.Now;
                sqlCmdText   = "UPDATE [core].[RouteParameter] SET " +
                               "[RouteID] = @RouteID, " +
                               "[Key] = @Key, " +
                               "[Value] = @Value, " +
                               "[Constraint] = @Constraint, " +
                               "[IsOptional] = @IsOptional, " +
                               "[Updated] = GETDATE() " +
                               "WHERE [RouteParameterID] = @RouteParameterID;";
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;

                sqlCmd.Parameters.AddWithValue("@RouteID", data.Route.ID);
                sqlCmd.Parameters.AddWithValue("@Key", data.Key).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Value", !string.IsNullOrEmpty(data.Value) ? (object)data.Value : DBNull.Value).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@Constraint", !string.IsNullOrEmpty(data.Constraint) ? (object)data.Constraint : DBNull.Value).SqlDbType = SqlDbType.NVarChar;
                sqlCmd.Parameters.AddWithValue("@IsOptional", data.IsOptional).SqlDbType = SqlDbType.Bit;
                sqlCmd.Parameters.AddWithValue("@Updated", data.Updated).SqlDbType       = SqlDbType.DateTime2;
                sqlCmd.Parameters.AddWithValue("@RouteParameterID", data.ID);

                int rowCount = sqlCmd.ExecuteNonQuery();
                if (rowCount < 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("rp", "update", "norecord"), "RouteParameter could not be updated as no matching record was found.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsErrorEnabled)
                    {
                        this.Logger.Error(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "RouteParameter", "Exception while updating RouteParameter object in database. No record found for this id.");
                }
                else if (rowCount > 1)
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("rp", "update", "morerecords"), "RouteParameter was updated but there was more than one record affected.", sqlCmdText, this, connection, data);
                    if (this.Logger.IsFatalEnabled)
                    {
                        this.Logger.Fatal(builder.ToString());
                    }
                    throw new DataOperationException(DataOperation.Update, "RouteParameter", "Exception while updating RouteParameter object in database. More than one record found for this statement (update statement where clause broken?!).");
                }
                return(true);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("rp", "update", "exception"), "RouteParameter could not be updated. See exception for details", sqlCmdText, ex, this, connection, data);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Update, "RouteParameter", "Exception while updating RouteParameter object in database. See inner exception for details.", ex);
            }
        }
        public List <TranslationGroup> LoadMany(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             TranslationGroupTable.GetColumnNames("[tg]") +
                             (this.Depth > 0 ? "," + TranslationTable.GetColumnNames("[tg_t]") : string.Empty) +
                             (this.Depth > 1 ? "," + TranslationTypeTable.GetColumnNames("[tg_t_tt]") : string.Empty) +
                             " FROM [core].[TranslationGroup] AS [tg] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Translation] AS [tg_t] ON [tg].[TranslationID] = [tg_t].[TranslationID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[TranslationType] AS [tg_t_tt] ON [tg_t].[TranslationTypeID] = [tg_t_tt].[TranslationTypeID] ";
                }


                sqlCmdText = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("tg", "customloadmany", "notfound"), "TranslationGroup list could not be loaded using custom logic as no items were found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(new List <TranslationGroup>());
                }

                SqlQuery query = new SqlQuery(sqlReader);

                TranslationGroupTable tgTable      = new TranslationGroupTable(query);
                TranslationTable      tg_tTable    = (this.Depth > 0) ? new TranslationTable(query) : null;
                TranslationTypeTable  tg_t_ttTable = (this.Depth > 1) ? new TranslationTypeTable(query) : null;

                List <TranslationGroup> result = new List <TranslationGroup>();
                do
                {
                    TranslationType  tg_t_ttObject = (this.Depth > 1) ? tg_t_ttTable.CreateInstance() : null;
                    Translation      tg_tObject    = (this.Depth > 0) ? tg_tTable.CreateInstance(tg_t_ttObject) : null;
                    TranslationGroup tgObject      = (this.Depth > -1) ? tgTable.CreateInstance(tg_tObject) : null;
                    result.Add(tgObject);
                } while (sqlReader.Read());
                sqlReader.Close();

                return(result);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("tg", "customloadmany", "exception"), "TranslationGroup list could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "TranslationGroup", "Exception while loading (custom/many) TranslationGroup object from database. See inner exception for details.", ex);
            }
        }
        public RouteParameter Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             RouteParameterTable.GetColumnNames("[rp]") +
                             (this.Depth > 0 ? "," + RouteTable.GetColumnNames("[rp_r]") : string.Empty) +
                             (this.Depth > 1 ? "," + RouteSetTable.GetColumnNames("[rp_r_rs]") : string.Empty) +
                             " FROM [core].[RouteParameter] AS [rp] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[Route] AS [rp_r] ON [rp].[RouteID] = [rp_r].[RouteID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[RouteSet] AS [rp_r_rs] ON [rp_r].[RouteSetID] = [rp_r_rs].[RouteSetID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("rp", "customload", "notfound"), "RouteParameter could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                RouteParameterTable rpTable      = new RouteParameterTable(query);
                RouteTable          rp_rTable    = (this.Depth > 0) ? new RouteTable(query) : null;
                RouteSetTable       rp_r_rsTable = (this.Depth > 1) ? new RouteSetTable(query) : null;


                RouteSet       rp_r_rsObject = (this.Depth > 1) ? rp_r_rsTable.CreateInstance() : null;
                Route          rp_rObject    = (this.Depth > 0) ? rp_rTable.CreateInstance(rp_r_rsObject) : null;
                RouteParameter rpObject      = rpTable.CreateInstance(rp_rObject);
                sqlReader.Close();

                return(rpObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("rp", "customload", "exception"), "RouteParameter could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "RouteParameter", "Exception while loading (custom/single) RouteParameter object from database. See inner exception for details.", ex);
            }
        }
 public SqlServerFileStorage(ISqlConnectionInfo sqlConnectionInfo, IUserIdentity userIdentity)
 {
     _sqlConnectionInfo = DIHelper.VerifyParameter(sqlConnectionInfo);
     _userIdentity = DIHelper.VerifyParameter(userIdentity);
 }
        protected override MobileOperatorCode LoadInternal(ISqlConnectionInfo connection, int id)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT " +
                             MobileOperatorCodeTable.GetColumnNames("[moc]") +
                             (this.Depth > 0 ? "," + MobileOperatorTable.GetColumnNames("[moc_mo]") : string.Empty) +
                             (this.Depth > 1 ? "," + CountryTable.GetColumnNames("[moc_mo_c]") : string.Empty) +
                             " FROM [core].[MobileOperatorCode] AS [moc] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [core].[MobileOperator] AS [moc_mo] ON [moc].[MobileOperatorID] = [moc_mo].[MobileOperatorID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [core].[Country] AS [moc_mo_c] ON [moc_mo].[CountryID] = [moc_mo_c].[CountryID] ";
                }
                sqlCmdText += "WHERE [moc].[MobileOperatorCodeID] = @MobileOperatorCodeID;";

                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                sqlCmd.Parameters.AddWithValue("@MobileOperatorCodeID", id);
                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("moc", "loadinternal", "notfound"), "MobileOperatorCode could not be loaded by id as it was not found.", sqlCmdText, this, connection, id);
                    if (this.Logger.IsWarnEnabled)
                    {
                        this.Logger.Warn(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                MobileOperatorCodeTable mocTable      = new MobileOperatorCodeTable(query);
                MobileOperatorTable     moc_moTable   = (this.Depth > 0) ? new MobileOperatorTable(query) : null;
                CountryTable            moc_mo_cTable = (this.Depth > 1) ? new CountryTable(query) : null;


                Country            moc_mo_cObject = (this.Depth > 1) ? moc_mo_cTable.CreateInstance() : null;
                MobileOperator     moc_moObject   = (this.Depth > 0) ? moc_moTable.CreateInstance(moc_mo_cObject) : null;
                MobileOperatorCode mocObject      = mocTable.CreateInstance(moc_moObject);
                sqlReader.Close();

                return(mocObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("moc", "loadinternal", "exception"), "MobileOperatorCode could not be loaded by id. See exception for details.", sqlCmdText, ex, this, connection, id);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "MobileOperatorCode", "Exception while loading MobileOperatorCode object from database. See inner exception for details.", ex);
            }
        }
 public SqlServerProjectRepository(ISqlConnectionInfo sqlConnectionInfo, IUserIdentity userIdentity)
 {
     _sqlConnectionInfo = DIHelper.VerifyParameter(sqlConnectionInfo);
     _userIdentity = DIHelper.VerifyParameter(userIdentity);
 }
        public ProfileThumbnailData Load(ISqlConnectionInfo connection, SqlQueryParameters parameters)
        {
            IDatabase database = connection.Database;

            if (database == null)
            {
                throw new ArgumentNullException("database", "Error initializing database connection.");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            string sqlCmdText = string.Empty;

            try
            {
                sqlCmdText = "SELECT {0} " +
                             ProfileThumbnailDataTable.GetColumnNames("[ptd]") +
                             (this.Depth > 0 ? "," + ProfileThumbnailTable.GetColumnNames("[ptd_pt]") : string.Empty) +
                             (this.Depth > 1 ? "," + ProfileTable.GetColumnNames("[ptd_pt_p]") : string.Empty) +
                             " FROM [web].[ProfileThumbnailData] AS [ptd] ";
                if (this.Depth > 0)
                {
                    sqlCmdText += "INNER  JOIN [web].[ProfileThumbnail] AS [ptd_pt] ON [ptd].[ProfileThumbnailID] = [ptd_pt].[ProfileThumbnailID] ";
                }
                if (this.Depth > 1)
                {
                    sqlCmdText += "INNER  JOIN [web].[Profile] AS [ptd_pt_p] ON [ptd_pt].[ProfileID] = [ptd_pt_p].[ProfileID] ";
                }


                parameters.Top = 1;
                sqlCmdText     = parameters.BuildQuery(sqlCmdText);
                SqlCommand sqlCmd = database.Add(sqlCmdText) as SqlCommand;
                foreach (KeyValuePair <string, object> argument in parameters.Arguments)
                {
                    sqlCmd.Parameters.AddWithValue("@" + argument.Key, argument.Value);
                }

                SqlDataReader sqlReader = database.Add(sqlCmd) as SqlDataReader;

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ptd", "customload", "notfound"), "ProfileThumbnailData could not be loaded using custom logic as it was not found.", sqlCmdText, this, connection, parameters);
                    if (this.Logger.IsDebugEnabled)
                    {
                        this.Logger.Debug(builder.ToString());
                    }
                    sqlReader.Close();
                    return(null);
                }

                SqlQuery query = new SqlQuery(sqlReader);

                ProfileThumbnailDataTable ptdTable    = new ProfileThumbnailDataTable(query);
                ProfileThumbnailTable     ptd_ptTable = (this.Depth > 0) ? new ProfileThumbnailTable(query) : null;
                ProfileTable ptd_pt_pTable            = (this.Depth > 1) ? new ProfileTable(query) : null;


                Profile              ptd_pt_pObject = (this.Depth > 1) ? ptd_pt_pTable.CreateInstance() : null;
                ProfileThumbnail     ptd_ptObject   = (this.Depth > 0) ? ptd_ptTable.CreateInstance(ptd_pt_pObject) : null;
                ProfileThumbnailData ptdObject      = ptdTable.CreateInstance(ptd_ptObject);
                sqlReader.Close();

                return(ptdObject);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("ptd", "customload", "exception"), "ProfileThumbnailData could not be loaded using custom logic. See exception for details.", sqlCmdText, ex, this, connection, parameters);
                if (this.Logger.IsErrorEnabled)
                {
                    this.Logger.Error(builder.ToString(), ex);
                }
                throw new DataOperationException(DataOperation.Load, "ProfileThumbnailData", "Exception while loading (custom/single) ProfileThumbnailData object from database. See inner exception for details.", ex);
            }
        }