/// <summary>
        /// Validate SpecialRequisitionItem
        /// </summary>
        /// <param name="specialRequisitionItem">specialRequisitionItem object</param>
        /// <param name="requisitionMethod">enum requisitionMethod</param>
        /// <returns>boolean</returns>
        private bool ValidateSpecialRequisitionItem(SpecialRequisitionItem specialRequisitionItem, RequisitionMethod requisitionMethod)
        {
            try
            {
                if (specialRequisitionItem != null)
                {
                    if (requisitionMethod == RequisitionMethod.Create)
                    {
                        if ((specialRequisitionItem.RequisitionID != 0 || specialRequisitionItem.Requisition != null) &&
                           (specialRequisitionItem.SpecialStationeryID != 0 || specialRequisitionItem.SpecialStationeryID != null) &&
                           (specialRequisitionItem.QuantityRequested > 0))
                        {
                            return true;
                        }
                    }

                    if (requisitionMethod == RequisitionMethod.Update)
                    {
                        if ((specialRequisitionItem.RequisitionID != 0 || specialRequisitionItem.Requisition != null) &&
                         (specialRequisitionItem.SpecialStationeryID != 0 || specialRequisitionItem.SpecialStationery != null) &&
                         (specialRequisitionItem.SpecialStationery.IsApproved == false) &&
                         (specialRequisitionItem.QuantityRequested > 0))
                        {
                            return true;
                        }
                    }

                    if (requisitionMethod == RequisitionMethod.Delete)
                    {
                        if (specialRequisitionItem.SpecialRequisitionItemsID != 0)
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// Validate Requisition
        /// </summary>
        /// <param name="requisition">Requisition object</param>
        /// <param name="requisitionMethod">enum requisitionMethod</param>
        /// <returns>boolean</returns>
        private bool ValidateRequisition(Requisition requisition, RequisitionMethod requisitionMethod)
        {
            try
            {
                if (requisition != null)
                {
                    if (requisitionMethod == RequisitionMethod.Create)
                    {

                        if ((requisition.CreatedBy != 0 || requisition.CreatedByUser != null) &&
                            (requisition.DepartmentID != 0 || requisition.Department != null) &&
                            (requisition.RequisitionForm != string.Empty || requisition.RequisitionForm != null) &&
                            (requisition.StatusID != 0 || requisition.Status != null) &&
                            (requisition.UrgencyID != 0 || requisition.Urgency != null) &&
                            (requisition.DateRequested != null && requisition.DateRequested.Date.ToShortDateString() == DateTime.Now.Date.ToShortDateString()) &&
                            (requisition.ApprovedByUser == null) && (requisition.DateApproved == null))
                        {
                            return true;
                        }

                    }
                    if (requisitionMethod == RequisitionMethod.Update)
                    {

                        if ((requisition.CreatedBy != 0 || requisition.CreatedByUser != null) &&
                           (requisition.DepartmentID != 0 || requisition.Department != null) &&
                           (requisition.RequisitionForm != string.Empty || requisition.RequisitionForm != null) &&
                           (requisition.StatusID == 2 || requisition.Status != null) &&
                           (requisition.UrgencyID != 0 || requisition.Urgency != null) &&
                           (requisition.DateRequested != null && requisition.DateRequested.Date.ToShortDateString() != string.Empty) &&
                           (requisition.ApprovedBy != 0))
                        {
                            return true;
                        }
                        else
                        {
                            try
                            {
                                throw new RequisitionException("Update Requisition Failed");
                            }
                            catch (Exception)
                            {

                                throw;
                            }

                        }
                    }

                    if (requisitionMethod == RequisitionMethod.UpdateStatus)
                    {
                        if (requisition.RequisitionID != 0)
                        {
                            return true;
                        }
                    }

                    if (requisitionMethod == RequisitionMethod.Approve || requisitionMethod == RequisitionMethod.Reject)
                    {
                        if (requisition.ApprovedBy != 0 && requisition.ApprovedByUser.Role.Contains("DepartmentHeads"))
                        {
                            return true;
                        }
                    }

                    if (requisitionMethod == RequisitionMethod.Cancel)
                    {
                        if (requisition.ApprovedBy == 0 || requisition.ApprovedBy == null)
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
            catch (Exception)
            {
                throw new RequisitionException("Create Requisition failed. Please try again later");
            }
        }
        /// <summary>
        /// Validate RequisitionItem
        /// </summary>
        /// <param name="requisitionItem">requisitionItem object</param>
        /// <param name="requisitionMethod">enum requisitionMethod</param>
        /// <returns>boolean</returns>
        private bool ValidateRequisitionItem(RequisitionItem requisitionItem, RequisitionMethod requisitionMethod)
        {
            try
            {
                if (requisitionItem != null)
                {
                    if (requisitionMethod == RequisitionMethod.Create)
                    {
                        if ((requisitionItem.RequisitionID != 0 || requisitionItem.Requisition != null) &&
                           (requisitionItem.StationeryID != 0 || requisitionItem.Stationery != null) &&
                           (requisitionItem.QuantityRequested > 0))
                        {
                            return true;
                        }
                    }

                    if (requisitionMethod == RequisitionMethod.Update)
                    {
                        if ((requisitionItem.RequisitionID != 0 || requisitionItem.Requisition != null) &&
                         (requisitionItem.StationeryID != 0 || requisitionItem.Stationery != null) &&
                         (requisitionItem.QuantityRequested > 0))
                        {
                            return true;
                        }
                    }

                    if (requisitionMethod == RequisitionMethod.Delete)
                    {
                        if (requisitionItem.RequisitionItemID != 0)
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
            catch (Exception)
            {
                throw;
            }
        }