public void ValidateAcquisitionDate(EnumRegisteredAssetStatus status)
        {
            bool depreciateInInventory = RegisteredAssetFunction.GetDepreciateInInventory();
            switch (status)
            {
                    case EnumRegisteredAssetStatus.AssetIdle:
                    if (depreciateInInventory)
                    {
                        RegisteredAssetFunction.UpdateBookDepreciation(this.AssetAcquisitionDate, this.RegisterAssetId);
                    }

                    break;
                    case EnumRegisteredAssetStatus.AssetLive:
                    DateTime contractStartDate = RegisteredAssetFunction.GetContractStartDate(this.AssetContractNum);
                    if (this.AssetAcquisitionDate <= contractStartDate)
                    {
                        ConfirmationWindowView confirm = new ConfirmationWindowView();
                        ConfirmmationViewModel confirmViewModel = new ConfirmmationViewModel();
                        confirmViewModel.Content = "Asset is live on Contract " + this.AssetContractNum + " with Start Date of " + contractStartDate + ". Please select OK to continue.";
                        confirmViewModel.Title = "Confirm - Asset Contract";
                        confirm.DataContext = confirmViewModel;

                        confirm.ShowDialog();
                    }
                    else
                    {
                        this.ShowMessageAsync("Asset is live on Contract " + this.AssetContractNum + " with Start Date of " + contractStartDate + ". Acquisition Date cannot be greater than the Contract Start Date. Please remove the Asset from the Contract or change Acquisition Date before trying again.", "Asset Contract - Error");
                    }

                    break;
                    case EnumRegisteredAssetStatus.AssetReserve:
                    DateTime? quoteStartDate = RegisteredAssetFunction.GetQuoteStartDate(this.RegisterAssetId);
                    if (this.AssetAcquisitionDate <= quoteStartDate)
                    {
                        ConfirmationWindowView confirm = new ConfirmationWindowView();
                        ConfirmmationViewModel confirmViewModel = new ConfirmmationViewModel();
                        confirmViewModel.Content = "Asset is reserved on Quote " + this.AssetContractNum + " with Start Date of " + quoteStartDate + ". Please select OK to continue.";
                        confirmViewModel.Title = "Confirm - Asset Quote";
                        confirm.DataContext = confirmViewModel;

                        confirm.ShowDialog();
                    }
                    else
                    {
                        this.ShowMessageAsync("Asset is reserved on Quote " + this.AssetContractNum + " with Start Date of " + quoteStartDate + ". Acquisition Date cannot be greater than the Quote Start Date. Please remove Asset from the Quote or change Acquisition Date before trying again.", "Asset Contract - Error");
                    }

                    break;
            }
        }
        /// <summary>
        /// The enable control.
        /// </summary>
        /// <param name="state">
        /// The state.
        /// </param>
        /// <param name="status">
        /// The status.
        /// </param>
        public void EnableControl(EnumRegisteredAssetState state, EnumRegisteredAssetStatus status)
        {
            switch (state)
            {
                    case EnumRegisteredAssetState.Active:
                        this.IsStateActive = true;
                        break;
                    case EnumRegisteredAssetState.Inactive:
                        this.IsStateInactive = true;
                        break;
                    case EnumRegisteredAssetState.Terminated:
                        this.IsStateTerminated = true;
                        break;
            }

            switch (status)
            {
                    case EnumRegisteredAssetStatus.AssetIdle:
                        this.IsStatusIdle = true;
                        break;
                    case EnumRegisteredAssetStatus.AssetLive:
                        this.IsStatusLive = true;
                        break;
                    case EnumRegisteredAssetStatus.AssetReserve:
                        this.IsStatusReserve = true;
                        break;
                    case EnumRegisteredAssetStatus.AssetReturn:
                        this.IsStatusReturn = true;
                    break;
            }
        }