/// <summary>
        /// Update status object
        /// </summary>
        /// <param name="status">status object</param>
        public void UpdateStatus(Status status)
        {
            try
            {
                Status st = (from s in context.Statuses
                             where s.StatusID == status.StatusID
                             select s).FirstOrDefault<Status>();

                st.Name = status.Name;
                st.Group = status.Group;
                st.Description = status.Description;

                context.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
        }
 /// <summary>
 /// Get status by primary key
 /// </summary>
 /// <param name="status">status object</param>
 /// <returns>status object</returns>
 public Status GetStatusByID(Status status)
 {
     return GetAllStatuses().Where(s => s.StatusID == status.StatusID).FirstOrDefault<Status>();
 }
 /// <summary>
 /// Update the requisition status
 /// </summary>
 /// <param name="requisition">requistion object</param>
 /// <param name="status">status object</param>
 public void UpdateRequisitionStatus(Requisition requisition, Status status)
 {
     try
     {
         requisition.StatusID = status.StatusID;
         requisition.DateApproved = DateTime.Now;
     }
     catch (Exception)
     {
         throw new RequisitionException("Update failed.");
     }
 }
        /// <summary>
        /// Create a status object
        /// </summary>
        /// <param name="status">Status object</param>
        public void CreateStatus(Status status)
        {
            try
            {
                context.AddToStatuses(status);
            }
            catch (Exception)
            {

                throw;
            }
        }
        /// <summary>
        /// Delete status object
        /// </summary>
        /// <param name="status">status object</param>
        public void DeleteStatus(Status status)
        {
            try
            {
                context.Statuses.DeleteObject(status);
            }
            catch (Exception)
            {

                throw;
            }
        }
 /// <summary>
 /// Update requisition status and persist with database
 /// </summary>
 /// <param name="requisition">requisition object</param>
 /// <param name="status">status object</param>
 public void UpdateRequisitionStatus(Requisition requisition, Status status)
 {
     if (ValidateRequisition(requisition, RequisitionMethod.UpdateStatus))
     {
         requisitionDAO.UpdateRequisitionStatus(requisition, status);
     }
 }
        /// <summary>
        /// Update status object
        /// </summary>
        /// <param name="status">status object</param>
        public bool UpdateStatus(Status status)
        {
            try
            {
                Status st = requisitionDAO.GetStatusByID(status);

                if (st != null)
                {
                    st.Name = status.Name;
                    st.Group = status.Group;
                    st.Description = status.Description;
                    requisitionDAO.UpdateStatus(st);
                    return true;
                }
                ErrorMessage("Update status record failed");
                return false;
            }
            catch (Exception)
            {

                throw;
            }
        }
        /// <summary>
        /// Get status by primary key
        /// </summary>
        /// <param name="status">status object</param>
        /// <returns>status object</returns>
        public Status GetStatusByID(Status status)
        {
            var temp = requisitionDAO.GetStatusByID(status);

            if (temp != null)
                return temp;

            ErrorMessage("Result not found");
            return null;
        }
        /// <summary>
        /// Delete status object
        /// </summary>
        /// <param name="status">status object</param>
        public bool DeleteStatus(Status status)
        {
            try
            {
                if (status != null && status.StatusID != 0)
                {
                    requisitionDAO.DeleteStatus(status);
                    return true;
                }
                ErrorMessage("Delete status record failed");
                return false;
            }
            catch (Exception)
            {

                throw;
            }
        }
        /// <summary>
        /// Create a status object
        /// </summary>
        /// <param name="status">Status object</param>
        public void CreateStatus(Status status)
        {
            try
            {
                if (status != null)
                {
                    requisitionDAO.CreateStatus(status);
                }
                else
                {
                    ErrorMessage("Create staus failed");
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the Statuses EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToStatuses(Status status)
 {
     base.AddObject("Statuses", status);
 }
 /// <summary>
 /// Create a new Status object.
 /// </summary>
 /// <param name="statusID">Initial value of the StatusID property.</param>
 /// <param name="name">Initial value of the Name property.</param>
 public static Status CreateStatus(global::System.Int32 statusID, global::System.String name)
 {
     Status status = new Status();
     status.StatusID = statusID;
     status.Name = name;
     return status;
 }