/// <summary>
        /// Saves a Equipment Combo Entity in the Database
        /// </summary>
        /// <param name="equipmentCombo">New Equipment Combo Entity</param>
        /// <param name="equipmentList">Equipments inside Combo</param>
        /// <param name="username">Username that is executing the method</param>
        public void SaveCombo(CS_EquipmentCombo equipmentCombo, IList<EquipmentComboVO> equipmentList, string username)
        {
            if (null == equipmentCombo)
                throw new Exception("The Equipment Combo object is null!");

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    equipmentCombo.CreatedBy = username;
                    equipmentCombo.CreationDate = DateTime.Now;
                    equipmentCombo.ModifiedBy = username;
                    equipmentCombo.ModificationDate = DateTime.Now;
                    equipmentCombo.Active = true;

                    equipmentCombo = _equipmentComboRepository.Add(equipmentCombo);
                }
                catch (Exception ex)
                {
                    throw new Exception("Error while trying to save Combo information!", ex);
                }

                try
                {
                    if (null != equipmentList)
                    {
                        for (int i = 0; i < equipmentList.Count; i++)
                        {
                            equipmentList[i].ComboId = equipmentCombo.ID;
                            UpdateEquipmentCombo(equipmentList[i].EquipmentId, equipmentCombo.ID, username);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("Error while trying to save Equipment Combo information!", ex);
                }

                scope.Complete();
            }
        }
        /// <summary>
        /// Updates a Equipment Combo Entity in the Database
        /// </summary>
        /// <param name="equipmentCombo">Equipment Combo Entity</param>
        /// <param name="equipmentList">Equipments inside Combo</param>
        /// <param name="username">Username that is executing the method</param>
        public void UpdateCombo(CS_EquipmentCombo equipmentCombo, IList<EquipmentComboVO> equipmentList, string username)
        {
            if (null == equipmentCombo)
                throw new Exception("The Equipment Combo object is null!");

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    equipmentCombo.ModifiedBy = username;
                    equipmentCombo.ModificationDate = DateTime.Now;
                    equipmentCombo.Active = true;

                    equipmentCombo = _equipmentComboRepository.Update(equipmentCombo);
                }
                catch (Exception ex)
                {
                    throw new Exception("Error while trying to save Combo information!", ex);
                }

                try
                {
                    if (null != equipmentList)
                    {
                        List<EquipmentComboVO> oldList = ListEquipmentsOfACombo(equipmentCombo.ID);
                        List<EquipmentComboVO> removedList = oldList.Where(e => !equipmentList.Any(f => f.EquipmentId == e.EquipmentId)).ToList();
                        List<EquipmentComboVO> addedList = equipmentList.Where(e => !oldList.Any(f => f.EquipmentId == e.EquipmentId)).ToList();

                        for (int i = 0; i < addedList.Count; i++)
                            UpdateEquipmentCombo(addedList[i].EquipmentId, equipmentCombo.ID, username);

                        for (int i = 0; i < removedList.Count; i++)
                            UpdateEquipmentCombo(removedList[i].EquipmentId, null, username);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("Error while trying to save Equipment Combo information!", ex);
                }

                scope.Complete();
            }
        }
        /// <summary>
        /// Saves or Updates a Combo
        /// </summary>
        public void SaveEquipmentCombo()
        {
            if (_view.EquipmentComboId.HasValue)
            {
                CS_EquipmentCombo combo = _equipmentModel.GetCombo(_view.EquipmentComboId.Value);
                if (null != combo)
                {
                    combo.Name = _view.ComboName;
                    combo.ComboType = _view.ComboType;
                    combo.PrimaryEquipmentID = _view.PrimaryEquipmentId;
                    _equipmentModel.UpdateCombo(combo, _view.EquipmentInfoShoppingCartDataSource, _view.UserName);

                    _view.EquipmentInfoShoppingCartDataSource = _equipmentModel.ListEquipmentsOfACombo(combo.ID);
                }
            }
            else
            {
                CS_EquipmentCombo combo = new CS_EquipmentCombo();
                combo.Name = _view.ComboName;
                combo.ComboType = _view.ComboType;
                combo.PrimaryEquipmentID = _view.PrimaryEquipmentId;
                _equipmentModel.SaveCombo(combo, _view.EquipmentInfoShoppingCartDataSource, _view.UserName);

                _view.EquipmentComboId = combo.ID;

                _view.EquipmentInfoShoppingCartDataSource = _equipmentModel.ListEquipmentsOfACombo(combo.ID);
            }
        }