public static ProductRecordBuilder testProductRecordBuilder() { return(ProductRecordBuilder.productRecordBuilder() .Product_ID(1) .Product_Name("Aspirin") .Product_Security_Group("SomeGroup") .Parent_Product_ID(null) .HCO_Required(true) .CPO_Access(null) .Product_Notifying_Email("*****@*****.**") .Requires_Explicit_User_Delete(null) .Product_Description("My Special Product") .PHI_Product(null) .Product_Expiry_Date(null) .Dynamic_Product_Users(null) .IT_Team_Group("Admins") .Product_Business_Owner_Group("BusinessGroup") .Product_Users_Group("UsersGroup") .Admin_Console_Display(null) .Alliance_Aware(null) .Product_Type("Liquid") .Application_Name("App") .Is_Active(true) .Date_Created_On(new DateTime(2018, 6, 25, 19, 00, 00)) .Created_By("Marge") .Modified_Date(null) .Modified_By(null) .Application_Id("1")); }
public static void Main() { using (var connection = new SqlConnection("Some Connection String")) { var productFactory = new ProductFactory(connection); var productA = productFactory.create(ProductFactory.testProductRecordBuilder() //Build a Default Product override Properties and insert in DB .Product_ID(100)); var productB = ProductRecordBuilder.productRecordBuilder() //Build a Product override properties .Product_ID(10) .build(); var productC = ProductFactory.testProductRecordBuilder().build(); //Build a Product with Defaults var productD = productFactory.create(); //Dump a default one in DB } }
public Product create(ProductRecordBuilder builder) { var product = builder.build(); var sql = $@"INSERT INTO PRODUCTS ( Product_ID, Product_Name, Product_Security_Group, Parent_Product_ID, HCO_Required, CPO_Access, Product_Notifying_Email, Requires_Explicit_User_Delete, Product_Description, PHI_Product, Product_Expirty_Date, Dynamic_Product_Users, IT_Team_Group, Product_Business_Owner_Group, Product_Users_Group, AdminConsoleDisplay, Alliance_Aware, Product_Type, Application_Name, Is_Active, Date_Created_On, Created_By, Modified_Date, Modified_By, ApplicationId ) VALUES ( @Product_ID, @Product_Name, @Product_Security_Group, @Parent_Product_ID, @HCO_Required, @CPO_Access, @Product_Notifying_Email, @Requires_Explicit_User_Delete, @Product_Description, @PHI_Product, @Product_Expiry_Date, @Dynamic_Product_Users, @IT_Team_Group, @Product_Business_Owner_Group, @Product_Users_Group, @AdminConsoleDisplay, @Alliance_Aware, @Product_Type, @Application_Name, @Is_Active, @Date_Created_On, @Created_By, @Modified_Date, @Modified_By, @ApplicationId )"; try { using (var command = new SqlCommand(sql, connection)) { command.CommandType = System.Data.CommandType.Text; command.Parameters.AddWithValue("@Product_ID", product.Product_ID); command.Parameters.AddWithValue("@Product_Name", product.Product_Name); command.Parameters.AddWithValue("@Product_Security_Group", product.Product_Security_Group); command.Parameters.AddWithValue("@Parent_Product_ID", product.Parent_Product_ID); command.Parameters.AddWithValue("@HCO_Required", product.HCO_Required); command.Parameters.AddWithValue("@CPO_Access", product.CPO_Access); command.Parameters.AddWithValue("@Product_Notifying_Email", product.Product_Notifying_Email); command.Parameters.AddWithValue("@Requires_Explicit_User_Delete", product.Requires_Explicit_User_Delete); command.Parameters.AddWithValue("@Product_Description", product.Product_Description); command.Parameters.AddWithValue("@PHI_Product", product.PHI_Product); command.Parameters.AddWithValue("@Product_Expiry_Date", product.Product_Expiry_Date); command.Parameters.AddWithValue("@Dynamic_Product_Users", product.Dynamic_Product_Users); command.Parameters.AddWithValue("@IT_Team_Group", product.IT_Team_Group); command.Parameters.AddWithValue("@Product_Business_Owner_Group", product.Product_Business_Owner_Group); command.Parameters.AddWithValue("@Product_Users_Group", product.Product_Users_Group); command.Parameters.AddWithValue("@AdminConsoleDisplay", product.AdminConsoleDisplay); command.Parameters.AddWithValue("@Alliance_Aware", product.Alliance_Aware); command.Parameters.AddWithValue("@Product_Type", product.Product_Type); command.Parameters.AddWithValue("@Application_Name", product.Application_Name); command.Parameters.AddWithValue("@Is_Active", product.Is_Active); command.Parameters.AddWithValue("@Date_Created_On", product.Date_Created_On); command.Parameters.AddWithValue("@Created_By", product.Created_By); command.Parameters.AddWithValue("@Modified_Date", product.Modified_Date); command.Parameters.AddWithValue("@Modified_By", product.Modified_By); command.Parameters.AddWithValue("@ApplicationId", product.ApplicationId); connection.Open(); command.ExecuteNonQuery(); } } catch (Exception) { } finally { connection.Close(); } return(builder.build()); }