public void Data_StoredProcWriter_Update() { var testEntity = new CustomerInfo(); var writer = new StoredProcedureWriter <CustomerInfo>(); var oldFirstName = TypeExtension.DefaultString; var newFirstName = DateTime.UtcNow.Ticks.ToString(); int entityId = TypeExtension.DefaultInteger; var entityKey = TypeExtension.DefaultGuid; // Create and capture original data this.Data_StoredProcWriter_Insert(); testEntity = new EntityReader <CustomerInfo>().GetAll().OrderByDescending(x => x.CreatedDate).FirstOrDefaultSafe(); oldFirstName = testEntity.FirstName; entityId = testEntity.Id; entityKey = testEntity.Key; testEntity.FirstName = newFirstName; Assert.IsTrue(testEntity.IsNew == false); Assert.IsTrue(testEntity.Id != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); // Do Update writer.Save(testEntity); // Pull from DB and retest testEntity = new EntityReader <CustomerInfo>().GetById(entityId); Assert.IsTrue(testEntity.IsNew == false); Assert.IsTrue(testEntity.Id == entityId); Assert.IsTrue(testEntity.Key == entityKey); Assert.IsTrue(testEntity.Id != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); }
/// <summary> /// Save the entity to the database. This method will auto-generate activity tracking. /// </summary> public CustomerInfo Save() { var writer = new StoredProcedureWriter <CustomerInfo>(); // Ensure data does not contain cross site scripting injection HTML/Js/SQL FirstName = new HtmlUnsafeCleanser(FirstName).Cleanse(); MiddleName = new HtmlUnsafeCleanser(MiddleName).Cleanse(); LastName = new HtmlUnsafeCleanser(LastName).Cleanse(); this.Fill(writer.Save(this)); return(this); }