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;
            }
        }