/// <summary> /// Determines if the supplied special can be applied to this transaction /// </summary> /// <param name="special"></param> /// <param name="transaction"></param> /// <returns>True if applies, false otherwise</returns> public static bool DoesSpecialApply(Special special, Transaction transaction) { return DateTimeMethods.DoDatesOverlap(special.DateStart, special.DateEnd, transaction.RentalDateStart, transaction.RentalDateEnd); }
/// <summary> /// Saves a Special to the data store. /// </summary> /// <param name="item">The item to save</param> public static void Save(Special item) { if (item.IsItemModified) { if (item.SpecialId == null) { item.SpecialId = Insert(item); } else { Update(item); } } }
public static Special CreateSpecialObject(Inventory inventory) { Random rand = new Random(); Special special = new Special { DateEnd = DateTime.Parse("4/1/2013"), DateStart = DateTime.Parse("1/1/2013"), IsItemModified = true, InventoryId = inventory.InventoryId.GetValueOrDefault(), SpecialId = null, Price = (decimal)((rand.NextDouble() + .01) * rand.Next(5, 100)) }; string errorMessage; SpecialManager.Save(special, out errorMessage); return special; }
protected void grdSpecials_OnInsertCommand(object sender, GridCommandEventArgs e) { if (e.Item is GridEditableItem) { GridEditableItem item = e.Item as GridEditableItem; RadComboBox ddlInventory = item.FindControl("ddlInventory") as RadComboBox; RadDatePicker dtDateStart = item.FindControl("dtDateStart") as RadDatePicker; RadDatePicker dtDateEnd = item.FindControl("dtDateEnd") as RadDatePicker; RadNumericTextBox txtPrice = item.FindControl("txtPrice") as RadNumericTextBox; HideErrorMessage(item); if (ddlInventory != null && dtDateStart != null && dtDateEnd != null && txtPrice != null) { Special special = new Special { InventoryId = Convert.ToInt32(ddlInventory.SelectedValue), DateStart = dtDateStart.SelectedDate.GetValueOrDefault(), DateEnd = dtDateEnd.SelectedDate.GetValueOrDefault(), Price = (decimal) txtPrice.Value.GetValueOrDefault() }; string errorMessage; if (!SpecialManager.Save(special, out errorMessage)) { e.Canceled = true; ShowErrorMessage(item, errorMessage); } } } }
public static void DeleteSpecialObject(Special special) { SpecialManager.Delete(special.SpecialId.GetValueOrDefault()); }
public void TestInitialize() { InventoryTestObject = InventoryManagerTest.CreateTestObject(); SpecialTestObject = CreateSpecialObject(InventoryTestObject); }
/// <summary> /// Updates a Special /// </summary> /// <param name="item">The Special item to save</param> private static void Update(Special item) { List<SqlParameter> parameters = new List<SqlParameter> { new SqlParameter("@SpecialId", item.SpecialId), new SqlParameter("@InventoryId", item.InventoryId), new SqlParameter("@DateStart", item.DateStart), new SqlParameter("@DateEnd", item.DateEnd), new SqlParameter("@Price", item.Price) }; DataManager.ExecuteProcedure(KarzPlusConnectionString, "PKP_UpdateSpecial", parameters); }
/// <summary> /// Inserts a new Special /// </summary> /// <param name="item">The Special item to insert</param> /// <returns>The id of the Special item just inserted</returns> private static int Insert(Special item) { List<SqlParameter> parameters = new List<SqlParameter> { new SqlParameter("@InventoryId", item.InventoryId), new SqlParameter("@DateStart", item.DateStart), new SqlParameter("@DateEnd", item.DateEnd), new SqlParameter("@Price", item.Price) }; return Convert.ToInt32(DataManager.ExecuteScalarProcedure(KarzPlusConnectionString, "PKP_InsertSpecial", parameters)); }
/// <summary> /// Validate Special Entity /// </summary> /// <param name="item">Entity to validate</param> /// <param name="errorMessage">error message if validation failed</param> /// <returns>return true if entity passes validation logic, else return false</returns> public static bool Validate(Special item, out string errorMessage) { StringBuilder builder = new StringBuilder(); Inventory inventory = InventoryManager.Load(item.InventoryId); if (inventory == null) { builder.AppendHtmlLine("*Inventory record must be valid"); } if (!item.DateStart.IsValidWithSqlDateStandards()) { builder.AppendHtmlLine("*Date start must be valid"); } if (!item.DateEnd.IsValidWithSqlDateStandards()) { builder.AppendHtmlLine("*Date end must be valid"); } if (item.Price <= 0) { builder.AppendHtmlLine("*Price must be greater than zero"); } if (item.DateStart.After(item.DateEnd)) { builder.AppendHtmlLine("*Start date must be before end date"); } if (item.DateEnd.Before(item.DateStart)) { builder.AppendHtmlLine("*End date must be after start date"); } List<Special> otherSpecials = LoadByInventoryId(item.InventoryId).Where(dd => dd.SpecialId != item.SpecialId).ToList(); if ( otherSpecials.SafeAny( dd => DateTimeMethods.DoDatesOverlap(item.DateStart, item.DateEnd, dd.DateStart, dd.DateEnd))) { builder.AppendHtmlLine("*Your selection will conflict with at least one other special with the same inventory."); } errorMessage = builder.ToString(); return errorMessage.IsNullOrWhiteSpace(); }
/// <summary> /// Save Special Entity /// </summary> /// <param name="item">Entity to save</param> /// <param name="errorMessage">Error Message</param> /// <returns>return true if save successfully, else return false</returns> public static bool Save(Special item, out string errorMessage) { bool isValid = Validate(item, out errorMessage); if (isValid) { SpecialDao.Save(item); } return isValid; }