Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
 /// <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);
        }
Esempio n. 7
0
 /// <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);
 }
Esempio n. 8
0
 /// <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));
 }
Esempio n. 9
0
        /// <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();
        }
Esempio n. 10
0
        /// <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;
        }