예제 #1
0
 /// <summary>
 /// The all requisitions pending approval.
 /// </summary>
 /// <param name="context">
 /// The context.
 /// </param>
 /// <param name="organizationIds">
 /// The organization ids.
 /// </param>
 /// <returns>
 /// The <see cref="IQueryable"/>.
 /// </returns>
 public static IQueryable <Requisition> AllRequisitionsPendingApproval(
     this IQueryingContext context,
     List <int> organizationIds)
 {
     return
         (context.AllRequisitions(organizationIds)
          .Where(r => PendingApprovalRequisitionStatuses.Contains(r.RequisitionStatusId)));
 }
예제 #2
0
        /// <summary>
        /// The all requisitions.
        /// </summary>
        /// <param name="context">
        /// The context.
        /// </param>
        /// <param name="organizationIds">
        /// The organization ids.
        /// </param>
        /// <returns>
        /// The <see cref="IQueryable"/>.
        /// </returns>
        /// <exception cref="ArgumentException">
        /// If organization id is not provided.
        /// </exception>
        public static IQueryable <Requisition> AllRequisitions(
            this IQueryingContext context,
            List <int> organizationIds)
        {
            if (organizationIds == null || organizationIds.Count == 0)
            {
                throw new ArgumentException("At least one organization id must be provided", nameof(organizationIds));
            }

            return(context.Requisitions.Where(r => !r.IsSowRequisition && organizationIds.Contains(r.OrganizationId)));
        }
예제 #3
0
 /// <summary>
 /// The all active requisitions.
 /// </summary>
 /// <param name="context">
 /// The context.
 /// </param>
 /// <param name="organizationIds">
 /// The organization Ids.
 /// </param>
 /// <returns>
 /// The <see cref="IQueryable"/>.
 /// </returns>
 public static IQueryable <Requisition> AllActiveRequisitions(
     this IQueryingContext context,
     List <int> organizationIds)
 {
     return
         (context.AllRequisitions(organizationIds)
          .Where(
              r =>
              organizationIds.Contains(r.OrganizationId) &&
              (ActiveRequisitionStatuses.Contains(r.RequisitionStatusId) ||
               (r.RequisitionStatusId == (int)RequisitionStatus.PendingApproval &&
                context.OrganizationDetails.Any(
                    o =>
                    o.OrganizationId == r.OrganizationId &&
                    !o.IsApprovalRequiredBeforeRequisitionDistribution)))));
 }
예제 #4
0
        /// <summary>
        /// The all requisitions pending user approval.
        /// </summary>
        /// <param name="context">
        /// The context.
        /// </param>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="organizationIds">
        /// The organization ids.
        /// </param>
        /// <returns>
        /// The <see cref="IQueryable"/>.
        /// </returns>
        public static IQueryable <Requisition> AllRequisitionsPendingUserApproval(
            this IQueryingContext context,
            int userId,
            List <int> organizationIds)
        {
            if (userId <= 0)
            {
                throw new ArgumentException("User Id must be greater than zero", nameof(userId));
            }

            return
                (context.AllRequisitionsPendingApproval(organizationIds)
                 .Where(
                     r =>
                     context.RequisitionNextApprovers.Any(
                         rna =>
                         rna.RequisitionId == r.Id &&
                         (rna.ApproverUserId == userId || rna.AlternateApproverUserId == userId))));
        }
예제 #5
0
 /// <summary>
 /// The all draft requisitions.
 /// </summary>
 /// <param name="context">
 /// The context.
 /// </param>
 /// <param name="organizationIds">
 /// The organization ids.
 /// </param>
 /// <returns>
 /// The <see cref="IQueryable"/>.
 /// </returns>
 public static IQueryable <Requisition> AllDraftRequisitions(
     this IQueryingContext context,
     List <int> organizationIds)
 {
     return(context.AllRequisitions(organizationIds).Where(r => r.RequisitionStatusId == (int)RequisitionStatus.Draft));
 }