示例#1
0
        private void LoadData()
        {
            var testCount = 100;
            var cardTable = new TemplateTable <string, CardDescription>();

            for (int i = 0; i < 2; i++)
            {
                var delayedLoad = i == 1;
                var tag         = delayedLoad ? "(Delayed)" : "";
                RunTest($"Load{tag} Json", testCount,
                        () =>
                {
                    cardTable.Load(new TemplateTableJsonLoader <string, CardDescription>(
                                       _json, delayedLoad));
                });

                RunTest($"Load{tag} BsonPack", testCount,
                        () =>
                {
                    cardTable.Load(new TemplateTableBsonPackLoader <string, CardDescription>(
                                       new MemoryStream(_bsonPack), delayedLoad));
                });

                RunTest($"Load{tag} ProtobufPack", testCount,
                        () =>
                {
                    cardTable.Load(new TemplateTableProtobufPackLoader <string, CardDescription>(
                                       new MemoryStream(_protobufPack), delayedLoad));
                });
            }
        }
 public TemplateTable<int, TestObject> PrepareTable()
 {
     var table = new TemplateTable<int, TestObject>();
     var jsonLoader = new TemplateTableJsonLoader<int, TestObject>(TestObjectJson.LoadJson, false);
     table.Load(jsonLoader);
     return table;
 }
示例#3
0
        private void Load()
        {
            var json = File.ReadAllText(@"..\..\CardTable.json");

            _cardTable = new TemplateTable <string, CardDescription>();
            _cardTable.Load(new TemplateTableJsonLoader <string, CardDescription>(json, true));
        }
示例#4
0
        private void PrepareData()
        {
            var json = File.ReadAllText(@"..\..\CardTable.json");

            _json = json;

            var cardTable = new TemplateTable <string, CardDescription>();

            cardTable.Load(new TemplateTableJsonLoader <string, CardDescription>(json, true));

            // Save BsonPack

            using (var file = File.Create("CardTableBsonPack.bin"))
            {
                new TemplateTableBsonPackSaver <string, CardDescription>().SaveTo(cardTable, file);
            }
            _bsonPack = File.ReadAllBytes("CardTableBsonPack.bin");

            // Save ProtobufPack

            using (var file = File.Create("CardTableProtobufPack.bin"))
            {
                new TemplateTableProtobufPackSaver <string, CardDescription>().SaveTo(cardTable, file);
            }
            _protobufPack = File.ReadAllBytes("CardTableProtobufPack.bin");
        }
示例#5
0
        public void Test_GetNonExistentKey_ReturnNull()
        {
            var table = new TemplateTable <int, TestObject>();
            var value = table.TryGet(1);

            Assert.Null(value);
        }
示例#6
0
        public TemplateTable <int, TestObject> PrepareTable()
        {
            var table = new TemplateTable <int, TestObject>();

            table.Load(new TestObjectLoader());
            return(table);
        }
 public void Test_GetNonExistentKey_CreateGhostValue()
 {
     var table = new TemplateTable<int, TestObject>();
     table.GhostValueFactory = key => new TestObject { Id = key, Name = "Ghost" };
     var value = table[1];
     Assert.Equal("Ghost", value.Name);
 }
示例#8
0
        private void LoadData()
        {
            var testCount = 100;
            var cardTable = new TemplateTable<string, CardDescription>();

            for (int i = 0; i < 2; i++)
            {
                var delayedLoad = i == 1;
                var tag = delayedLoad ? "(Delayed)" : "";
                RunTest($"Load{tag} Json", testCount,
                        () =>
                        {
                            cardTable.Load(new TemplateTableJsonLoader<string, CardDescription>(
                                               _json, delayedLoad));
                        });

                RunTest($"Load{tag} BsonPack", testCount,
                        () =>
                        {
                            cardTable.Load(new TemplateTableBsonPackLoader<string, CardDescription>(
                                               new MemoryStream(_bsonPack), delayedLoad));
                        });

                RunTest($"Load{tag} ProtobufPack", testCount,
                        () =>
                        {
                            cardTable.Load(new TemplateTableProtobufPackLoader<string, CardDescription>(
                                               new MemoryStream(_protobufPack), delayedLoad));
                        });
            }
        }
 public void Test_JsonLoadNow()
 {
     var table = new TemplateTable<int, TestObject>();
     var jsonLoader = new TemplateTableJsonLoader<int, TestObject>(TestObjectJson.LoadJson, false);
     table.Load(jsonLoader);
     var value = table[1];
     Assert.Equal("One", value.Name);
 }
示例#10
0
        public TemplateTable <int, TestObject> PrepareTable()
        {
            var table      = new TemplateTable <int, TestObject>();
            var jsonLoader = new TemplateTableJsonLoader <int, TestObject>(TestObjectJson.LoadJson, false);

            table.Load(jsonLoader);
            return(table);
        }
示例#11
0
        public void Test_JsonLoadLazy()
        {
            var table      = new TemplateTable <int, TestObject>();
            var jsonLoader = new TemplateTableJsonLoader <int, TestObject>(TestObjectJson.LoadJson, true);

            table.Load(jsonLoader);
            var value = table[1];

            Assert.Equal("One", value.Name);
        }
 public void Test_JsonPatchNow()
 {
     var table = new TemplateTable<int, TestObject>();
     var jsonLoader = new TemplateTableJsonLoader<int, TestObject>(TestObjectJson.LoadJson, false);
     table.Load(jsonLoader);
     var jsonPatcher = new TemplateTableJsonLoader<int, TestObject>(TestObjectJson.PatchJson, false);
     table.Update(jsonPatcher);
     var value = table[2];
     Assert.Equal("TwoTwo", value.Name);
 }
 public void Test_JsonUpdateLazy()
 {
     var table = new TemplateTable<int, TestObject>();
     var jsonLoader = new TemplateTableJsonLoader<int, TestObject>(TestObjectJson.LoadJson, true);
     table.Load(jsonLoader);
     var jsonUpdater = new TemplateTableJsonLoader<int, TestObject>(TestObjectJson.UpdateJson, true);
     table.Update(jsonUpdater);
     var value = table[2];
     Assert.Equal("TwoTwo", value.Name);
 }
示例#14
0
 public ActionResult SelectTemplate(TemplateModel model)
 {
     using (var context = new MailProEntities())
     {
         TemplateTable tt = new TemplateTable();
         tt = context.TemplateTable.SingleOrDefault(x => x.TemplateID == model.TemplateID);
         string y = tt.TemplateURL;
         Session["TemplateURL"] = y;
     }
     return(RedirectToAction("Show", "Category"));
 }
示例#15
0
        public void Test_GetNonExistentKey_CreateGhostValue()
        {
            var table = new TemplateTable <int, TestObject>();

            table.GhostValueFactory = key => new TestObject {
                Id = key, Name = "Ghost"
            };
            var value = table[1];

            Assert.Equal("Ghost", value.Name);
        }
 public void Test_JsonPatchLoad()
 {
     var table = new TemplateTable<int, TestObject>();
     var jsonLoader = new TemplateTableJsonLoader<int, TestObject>(TestObjectJson.LoadJson, false);
     table.Load(jsonLoader);
     var jsonPatcher = new TemplateTableJsonPatchLoader<int, TestObject>(table, TestObjectJson.PatchJson, false);
     table.Update(jsonPatcher);
     Assert.Equal("One", table[1].Name);
     Assert.Equal(20, table[1].Power);
     Assert.Equal("Three", table[3].Name);
 }
        public static void Run()
        {
            // Create a table template with the parameters
            TemplateTable table = new TemplateTable(
                new TemplateTableParameters(new Rectangle(new Point(35, 320), new Size(530, 55)), null),
                "Details",
                null);

            // Create a template
            Template template = new Template(new TemplateItem[] { table });

            // Create an instance of Parser class
            using (Parser parser = new Parser(Constants.SampleInvoicePdf))
            {
                // Parse the document by the template
                DocumentData data = parser.ParseByTemplate(template);

                // Print all extracted data
                for (int i = 0; i < data.Count; i++)
                {
                    Console.Write(data[i].Name + ": ");
                    // Check if the field is a table
                    PageTableArea area = data[i].PageArea as PageTableArea;
                    if (area == null)
                    {
                        continue;
                    }

                    // Iterate via table rows
                    for (int row = 0; row < area.RowCount; row++)
                    {
                        // Iterate via table columns
                        for (int column = 0; column < area.ColumnCount; column++)
                        {
                            // Get the cell value
                            PageTextArea cellValue = area[row, column].PageArea as PageTextArea;

                            // Print the space between columns
                            if (column > 0)
                            {
                                Console.Write("\t");
                            }

                            // Print the cell value
                            Console.Write(cellValue == null ? "" : cellValue.Text);
                        }

                        // Print new line
                        Console.WriteLine();
                    }
                }
            }
        }
示例#18
0
        public void Test_JsonPatchLoad()
        {
            var table      = new TemplateTable <int, TestObject>();
            var jsonLoader = new TemplateTableJsonLoader <int, TestObject>(TestObjectJson.LoadJson, false);

            table.Load(jsonLoader);
            var jsonPatcher = new TemplateTableJsonPatchLoader <int, TestObject>(table, TestObjectJson.PatchJson, false);

            table.Update(jsonPatcher);
            Assert.Equal("One", table[1].Name);
            Assert.Equal(20, table[1].Power);
            Assert.Equal("Three", table[3].Name);
        }
示例#19
0
        public void Test_JsonUpdateNow()
        {
            var table      = new TemplateTable <int, TestObject>();
            var jsonLoader = new TemplateTableJsonLoader <int, TestObject>(TestObjectJson.LoadJson, false);

            table.Load(jsonLoader);
            var jsonUpdater = new TemplateTableJsonLoader <int, TestObject>(TestObjectJson.UpdateJson, false);

            table.Update(jsonUpdater);
            var value = table[2];

            Assert.Equal("TwoTwo", value.Name);
        }
        public void Test_Load()
        {
            var table = PrepareTable();

            var saver = new TemplateTableProtobufPackSaver<int, TestObject>();
            var stream = new MemoryStream();
            saver.SaveTo(table, stream);
            stream.Seek(0, SeekOrigin.Begin);

            var loader = new TemplateTableProtobufPackLoader<int, TestObject>(stream, false);
            var table2 = new TemplateTable<int, TestObject>();
            table2.Load(loader);

            Assert.Equal(table.Count, table2.Count);
            Assert.Equal(table[1].Name, table2[1].Name);
        }
示例#21
0
        public void Test_Load()
        {
            var table = PrepareTable();

            var saver  = new TemplateTableProtobufPackSaver <int, TestObject>();
            var stream = new MemoryStream();

            saver.SaveTo(table, stream);
            stream.Seek(0, SeekOrigin.Begin);

            var loader = new TemplateTableProtobufPackLoader <int, TestObject>(stream, false);
            var table2 = new TemplateTable <int, TestObject>();

            table2.Load(loader);

            Assert.Equal(table.Count, table2.Count);
            Assert.Equal(table[1].Name, table2[1].Name);
        }
        public async void ListViewBase_OnItemClick(object sender, ItemClickEventArgs e)
        {
            _clickedItem = (TemplateTable)e.ClickedItem;
            if (string.IsNullOrEmpty(_clickedItem.Name))
            {
                return;
            }
            TemplateConfigModel configModel = new TemplateConfigModel();

            try
            {
                _template = await configModel.GetConfiguration(_clickedItem.Name);

                Template = _template;
            }
            catch (Exception exception)
            {
                Debug.Assert(true, exception.Message);
            }

            this.NavigationService.Navigate(typeof(TemplateConfigPage), this.Template);
        }
示例#23
0
        private static List <TemplateTable> fillTable(IEnumerable <TemplateDetail> details)
        {
            var tables = details.Select(e => new
            {
                ID        = e.TableID,
                TableType = e.TableType,
                Checked   = e.TableChecked,
                Name      = e.TableName,
                DispZHCN  = e.TableDispZHCN,
                DispENUS  = e.TableDispENUS
            }).Distinct().Select(e =>
            {
                var table       = new TemplateTable();
                table.ID        = e.ID;
                table.TableType = e.TableType;
                table.TableName = e.Name;
                table.DispZHCN  = e.DispZHCN;
                table.DispENUS  = e.DispENUS;
                table.Checked   = e.Checked;
                table.Fields    = details.Where(item => item.TableName == e.Name).Select(item => new TemplateField
                {
                    ID            = item.FieldID,
                    FieldName     = item.FieldName,
                    FieldDispENUS = item.FieldDispENUS,
                    FieldDispZHCN = item.FieldDispZHCN,
                    IsFieldLocked = item.IsFieldLocked,
                    ConditionType = item.ConditionType,
                    ConditionText = item.ConditionText,
                    Checked       = item.Checked,
                    IsOrderBy     = item.IsOrderBy,
                    IsDESC        = item.IsDESC
                }).ToList();
                return(table);
            }).ToList() ?? new List <TemplateTable>();

            return(tables);
        }
示例#24
0
        private void PrepareData()
        {
            var json = File.ReadAllText(@"..\..\CardTable.json");
            _json = json;

            var cardTable = new TemplateTable<string, CardDescription>();
            cardTable.Load(new TemplateTableJsonLoader<string, CardDescription>(json, true));

            // Save BsonPack

            using (var file = File.Create("CardTableBsonPack.bin"))
            {
                new TemplateTableBsonPackSaver<string, CardDescription>().SaveTo(cardTable, file);
            }
            _bsonPack = File.ReadAllBytes("CardTableBsonPack.bin");

            // Save ProtobufPack

            using (var file = File.Create("CardTableProtobufPack.bin"))
            {
                new TemplateTableProtobufPackSaver<string, CardDescription>().SaveTo(cardTable, file);
            }
            _protobufPack = File.ReadAllBytes("CardTableProtobufPack.bin");
        }
示例#25
0
        public List <Message> 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} " +
                             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] ";
                }


                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", "customloadmany", "notfound"), "Message 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 <Message>());
                }

                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;

                List <Message> result = new List <Message>();
                do
                {
                    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             = (this.Depth > -1) ? mTable.CreateInstance(m_sObject, m_cObject, m_moObject) : null;
                    result.Add(mObject);
                } while (sqlReader.Read());
                sqlReader.Close();

                return(result);
            }
            catch (Exception ex)
            {
                database.HandleException(ex);
                IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "customloadmany", "exception"), "Message 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, "Message", "Exception while loading (custom/many) Message object from database. See inner exception for details.", ex);
            }
        }
示例#26
0
        public void Test_GetNonExistentKey_ThrowException()
        {
            var table = new TemplateTable <int, TestObject>();

            Assert.Throws <KeyNotFoundException>(() => { var value = table[1]; });
        }
示例#27
0
 public void Test_GetNonExistentKey_ReturnNull()
 {
     var table = new TemplateTable<int, TestObject>();
     var value = table.TryGet(1);
     Assert.Null(value);
 }
 public TemplateTable<int, TestObject> PrepareTable()
 {
     var table = new TemplateTable<int, TestObject>();
     table.Load(new TestObjectLoader());
     return table;
 }
示例#29
0
 public void Test_GetNonExistentKey_ThrowException()
 {
     var table = new TemplateTable<int, TestObject>();
     Assert.Throws<KeyNotFoundException>(() => { var value = table[1]; });
 }
示例#30
0
 private void Load()
 {
     var json = File.ReadAllText(@"..\..\CardTable.json");
     _cardTable = new TemplateTable<string, CardDescription>();
     _cardTable.Load(new TemplateTableJsonLoader<string, CardDescription>(json, true));
 }
示例#31
0
 public static void GetFormData(DataTable dt, List <TemplateTable> list,
                                out List <TemplateTable> lockedTables, out List <TemplateTable> unlockedTables,
                                out List <string> lockedDatas, out List <string> unlockedDatas)
 {
     lockedTables   = new List <TemplateTable>();
     unlockedTables = new List <TemplateTable>();
     lockedDatas    = new List <string>();
     unlockedDatas  = new List <string>();
     foreach (var tempTable in list)
     {
         if (tempTable.Checked)
         {
             if (tempTable.Fields.Any(f => f.IsFieldLocked && f.Checked))
             {
                 var lockedtable = new TemplateTable();
                 lockedtable.ID        = tempTable.ID;
                 lockedtable.TableType = tempTable.TableType;
                 lockedtable.Checked   = tempTable.Checked;
                 lockedtable.TableName = tempTable.TableName;
                 lockedtable.DispZHCN  = tempTable.DispZHCN;
                 lockedtable.DispENUS  = tempTable.DispENUS;
                 lockedtable.Fields    = tempTable.Fields.Where(f => f.IsFieldLocked && f.Checked).ToList();
                 if (lockedtable.Fields.Count > 0)
                 {
                     lockedTables.Add(lockedtable);
                 }
             }
             var unlockedtable = new TemplateTable();
             unlockedtable.ID        = tempTable.ID;
             unlockedtable.TableType = tempTable.TableType;
             unlockedtable.Checked   = tempTable.Checked;
             unlockedtable.TableName = tempTable.TableName;
             unlockedtable.DispZHCN  = tempTable.DispZHCN;
             unlockedtable.DispENUS  = tempTable.DispENUS;
             unlockedtable.Fields    = tempTable.Fields.Where(f => !f.IsFieldLocked && f.Checked).ToList();
             if (unlockedtable.Fields.Count > 0)
             {
                 unlockedTables.Add(unlockedtable);
             }
         }
     }
     foreach (DataRow dr in dt.Rows)
     {
         StringBuilder sbL = new StringBuilder();
         foreach (var table in lockedTables)
         {
             foreach (var field in table.Fields)
             {
                 string data = dr[table.TableName + "__" + field.FieldName].ToString();
                 data = DataTransfer(data, field.ConditionType);
                 sbL.AppendFormat("<td>{0}</td>", data);
             }
         }
         lockedDatas.Add(sbL.ToString());
         StringBuilder sbU = new StringBuilder();
         foreach (var table in unlockedTables)
         {
             foreach (var field in table.Fields)
             {
                 string data = dr[table.TableName + "__" + field.FieldName].ToString();
                 data = DataTransfer(data, field.ConditionType);
                 sbU.AppendFormat("<td>{0}</td>", data);
             }
         }
         unlockedDatas.Add(sbU.ToString());
     }
 }
示例#32
0
        protected override Message 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 " +
                             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] ";
                }
                sqlCmdText += "WHERE [m].[MessageID] = @MessageID;";

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

                if (!sqlReader.HasRows || !sqlReader.Read())
                {
                    IMessageBuilder builder = new DbLogMessageBuilder(new LogErrorCode("m", "loadinternal", "notfound"), "Message 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);

                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", "loadinternal", "exception"), "Message 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, "Message", "Exception while loading Message object from database. See inner exception for details.", ex);
            }
        }