コード例 #1
0
        public async Task <IActionResult> ChangeRequestStatus(ChangeRequestStatus changerequeststatus)
        {
            var url         = $"{this.serviceUrl}/AirService/GetChangeRequestStatus";
            var apiResponse = await this.PostAsync(url, JsonConvert.SerializeObject(changerequeststatus));

            return(this.View(changerequeststatus));
        }
コード例 #2
0
        public void Should_Construct_ChangeRequestStatus()
        {
            ChangeRequestStatus changeRequestStatus = new ChangeRequestStatus();

            _ = changeRequestStatus.NameAr;
            _ = changeRequestStatus.NameEn;
            _ = changeRequestStatus.Id;

            changeRequestStatus.ShouldNotBeNull();
        }
コード例 #3
0
        public async Task <ChangeRequestStore> AddToChangeRequestStoreAsync(long changeRequestId,
                                                                            ChangeRequestStatus status,
                                                                            string decisionBy)
        {
            try
            {
                long id = Convert.ToInt64(changeRequestId);

                ChangeRequestStaging staging = await this.ChangeRequestStagingRepositoryService.FindAsync(id);

                List <ChangeRequestItemStaging> items =
                    await ChangeRequestItemStagingBusinessService.GetChangeRequestItemsAsync(
                        item => item.ChangeRequestId == id);

                List <CommentsStaging> comments =
                    await CommentsStagingBusinessService.GetChangeRequestCommentsAsync(
                        item => item.ChangeRequestId == id);

                List <AttachmentsStaging> attachments =
                    await AttachmentStagingBusinessService.GetChangeRequestAttachmentsAsync(
                        item => item.ChangeRequestId == id);

                List <ChangeRequestAssignmentStaging> assignments =
                    await AssignmentStagingRepositoryService.GetAsync(
                        item => item.ChangeRequestId == id);

                List <LikesStaging> likes =
                    await LikesStagingRepositoryService.GetAsync(item => item.ChangeRequestId == id);

                staging.ChangeRequestItemStagings       = items;
                staging.CommentsStagings                = comments;
                staging.AttachmentsStagings             = attachments;
                staging.ChangeRequestAssignmentStagings = assignments;
                staging.LikesStagings = likes;

                // todo: use automapper for map ChangeRequestStaging to ChangeRequesStore
                ChangeRequestStore changeRequestStoreItem = this.MapToChangeRequestStore(staging);
                changeRequestStoreItem.DecisionBy        = decisionBy;
                changeRequestStoreItem.Status            = status;
                changeRequestStoreItem.CompletedDateTime = DateTime.UtcNow;

                this.ChangeRequestStoreRepositoryService.Add(changeRequestStoreItem);
                return(changeRequestStoreItem);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #4
0
        public static string GetRequestStatusColor(ChangeRequestStatus status)
        {
            switch (status)
            {
            case ChangeRequestStatus.Unprocessed:
                return("primary");

            case ChangeRequestStatus.Approved:
                return("success");

            case ChangeRequestStatus.Refused:
                return("danger");

            default:
                return("secondary");
            }
        }
コード例 #5
0
        public static string GetRequestStatusBadgeColor(ChangeRequestStatus status)
        {
            switch (status)
            {
            case ChangeRequestStatus.Unprocessed:
                return("badge-outline-primary");

            case ChangeRequestStatus.Approved:
                return("badge-outline-success");

            case ChangeRequestStatus.Refused:
                return("badge-outline-danger");

            default:
                return("badge-outline-secondary");
            }
        }
コード例 #6
0
        public static string GetRequestStatusString(ChangeRequestStatus status)
        {
            switch (status)
            {
            case ChangeRequestStatus.Unprocessed:
                return("unprocessed");

            case ChangeRequestStatus.Approved:
                return("approved");

            case ChangeRequestStatus.Refused:
                return("refused");

            default:
                return(string.Empty);
            }
        }
コード例 #7
0
        public async Task UpdateChangeRequestStatusToChangeRequestIndexAsync(long changeRequestId,
                                                                             ChangeRequestStatus changeRequestStatus, long reviewCommentId)
        {
            var document = new ChangeRequestDocument()
            {
                ChangeRequestId = changeRequestId.ToString(),
                Status          = (short)changeRequestStatus,
                StatusText      = changeRequestStatus.ToString(),
                UpdatedDate     = DateTime.UtcNow
            };

            if (reviewCommentId > 0)
            {
                document.CommentExists = true;
            }

            await this._changeRequestIndexingService.UpdateDocumentAsync(document);
        }
コード例 #8
0
        public async Task <IActionResult> GetRequestsWithStatus(Guid projectId, ChangeRequestStatus status)
        {
            var request = await Mediator.Send(new GetChangeRequestListQuery
            {
                ProjectId = projectId,
                Status    = status
            });

            if (request == null)
            {
                return(BadRequest());
            }

            ViewBag.ProjectId = projectId;
            ViewBag.Status    = status;
            return(Json(new
            {
                view = await this.RenderViewAsync("_RequestsByStatus", request, true),
                count = request.ChangeRequests.Count
            }));
        }
コード例 #9
0
 public void AddToChangeRequestStatuses(ChangeRequestStatus changeRequestStatus)
 {
     base.AddObject("ChangeRequestStatuses", changeRequestStatus);
 }
コード例 #10
0
 public static ChangeRequestStatus CreateChangeRequestStatus(int ID, string status, byte[] rowVersion)
 {
     ChangeRequestStatus changeRequestStatus = new ChangeRequestStatus();
     changeRequestStatus.Id = ID;
     changeRequestStatus.Status = status;
     changeRequestStatus.RowVersion = rowVersion;
     return changeRequestStatus;
 }
コード例 #11
0
        public virtual async Task <bool> SubmitReviewAsync <TId>(TId changeRequestId, string reviewedBy, ChangeRequestStatus reviewStatus,
                                                                 TComment commentsStaging = null, List <TAttachment> attachments = null)
        {
            bool result = false;

            // check review status
            switch (reviewStatus)
            {
            case ChangeRequestStatus.Submitted:     // never executed
                break;

            case ChangeRequestStatus.Deleted:     // if review status .equals cancel
                result = await this.DeleteAsync(changeRequestId, reviewedBy, commentsStaging);

                break;

            case ChangeRequestStatus.PreliminaryApproved:     // if review status .equals preliminary approve
                result = await this.PreliminaryApproveAsync(changeRequestId, reviewedBy, commentsStaging);

                break;

            case ChangeRequestStatus.Approved:     // if review status .equals approve
                result = await this.ApproveAsync(changeRequestId, reviewedBy, commentsStaging);

                break;

            case ChangeRequestStatus.Rejected:      // if review status .equals reject
                result = await this.RejectAsync(changeRequestId, reviewedBy, commentsStaging);

                break;
            }

            return(result);
        }