Example #1
0
        public JoinTechnicalCommitteeModel GetJoinTechnicalCommitteeModel()
        {
            JoinTechnicalCommitteeModel model = new JoinTechnicalCommitteeModel
            {
                EnquiryId               = 1,
                JoinedCommitteeId       = 1,
                SelectedUserCommitteeId = 2,
                EnquiryComment          = "Comment"
            };

            return(model);
        }
Example #2
0
        public async Task <ActionResult> JoinTechnicalCommittee(string enquiryIdString)
        {
            try
            {
                int enquiryId = Util.Decrypt(enquiryIdString);

                JoinTechnicalCommitteeModel joinTechnicalCommitteeModel = await _ApiClient.GetAsync <JoinTechnicalCommitteeModel>("Enquiry/GetJoinTechnicalCommitteeByEnquiryId/" + enquiryId, null);

                EnquiryModel enquiryModel = await _ApiClient.GetAsync <EnquiryModel>("Enquiry/GetEnquiryById/" + enquiryId, null);

                var technicalCommitteeList = await _ApiClient.GetListAsync <LookupModel>("Lookup/GetTechnicalCommitteeListOnBranchTender/" + enquiryModel.TenderId, null);

                if (joinTechnicalCommitteeModel.JoinTechnicalCommitteeId == 0)
                {
                    joinTechnicalCommitteeModel.EnquiryIdString    = enquiryIdString;
                    joinTechnicalCommitteeModel.EnquiryId          = enquiryId;
                    joinTechnicalCommitteeModel.TenderId           = enquiryModel.TenderId;
                    joinTechnicalCommitteeModel.EnquiryName        = enquiryModel.EnquiryName;
                    joinTechnicalCommitteeModel.EnquirySendingDate = enquiryModel.EnquirySendingDate;
                    joinTechnicalCommitteeModel.CommitteeList      = technicalCommitteeList;
                }
                else
                {
                    joinTechnicalCommitteeModel.CommitteeList      = technicalCommitteeList;
                    joinTechnicalCommitteeModel.EnquiryName        = enquiryModel.EnquiryName;
                    joinTechnicalCommitteeModel.TenderId           = enquiryModel.TenderId;
                    joinTechnicalCommitteeModel.EnquirySendingDate = enquiryModel.EnquirySendingDate;
                }
                return(View(joinTechnicalCommitteeModel));
            }
            catch (BusinessRuleException ex)
            {
                AddError(ex.Message);
                return(RedirectToAction(nameof(EnquiryDetails)));
            }
            catch (AuthorizationException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString(), ex);
                AddError(Resources.TenderResources.ErrorMessages.UnexpectedError);
                return(RedirectToAction(nameof(EnquiryDetails), new { enquiryIdString = enquiryIdString }));
            }
        }
Example #3
0
        private async Task SendInvitationsToJoinCommitteeNotification(JoinTechnicalCommitteeModel joinModel, Tender tender)
        {
            var DetailsUrl = _rootConfiguration?.MonafasatURLConfiguration?.MonafasatURL;

            NotificationArguments NotificationArgument = new NotificationArguments();

            NotificationArgument.BodyEmailArgs = new object[] { tender.TenderName, joinModel.CommitteeName, tender.ReferenceNumber, tender?.Agency?.NameArabic, tender?.Branch?.BranchName, tender?.LastEnqueriesDate, tender.LastOfferPresentationDate, tender.OffersOpeningDate, tender.OffersOpeningDate?.Hour, DetailsUrl + $"Tender/Details?STenderId={Util.Encrypt(tender.TenderId)}" };

            NotificationArgument.SubjectEmailArgs = new object[] { };
            NotificationArgument.PanelArgs        = new object[] { tender.ReferenceNumber };
            NotificationArgument.SMSArgs          = new object[] { tender.ReferenceNumber };

            MainNotificationTemplateModel mainNotificationTemplateModel = new MainNotificationTemplateModel(NotificationArgument,
                                                                                                            $"Enquiry/EnquiryDetails?enquiryIdString={Util.Encrypt(joinModel.EnquiryId)}",
                                                                                                            NotificationEntityType.Tender, tender.TenderId.ToString(), 0, joinModel.JoinedCommitteeId);
            await _notificationAppService.SendNotificationForCommitteeUsers(NotificationOperations.TechnicalCommitteeSecretary.InquiriesAboutTender.changetendergatid, joinModel.JoinedCommitteeId, mainNotificationTemplateModel);
        }
Example #4
0
        public async Task SendInvitationsToJoinCommittee_Success()
        {
            var _committeeId = "32";

            _claims = new Claim[1] {
                new Claim(IdentityConfigs.Claims.CommitteeId, _committeeId)
            };
            _enquiryController = _enquiryController.WithIdentity(_claims);

            var _joinTechnicalCommitteeModel = new JoinTechnicalCommitteeModel()
            {
                EnquiryId         = 5,
                JoinedCommitteeId = 1
            };

            var result = await _enquiryController.SendInvitationsToJoinCommittee(_joinTechnicalCommitteeModel);

            Assert.NotNull(result);
            Assert.Equal(_joinTechnicalCommitteeModel.EnquiryId, result.EnquiryId);
        }
Example #5
0
        public async Task <ActionResult> SendInvitationsToJoinCommittee(JoinTechnicalCommitteeModel joinTechnicalCommitteeModel)
        {
            JoinTechnicalCommitteeModel result = new JoinTechnicalCommitteeModel();

            try
            {
                result = await _ApiClient.PostAsync <JoinTechnicalCommitteeModel>("Enquiry/SendInvitationsToJoinCommittee", null, joinTechnicalCommitteeModel);

                return(Json(result));
            }
            catch (AuthorizationException ex)
            {
                throw ex;
            }
            catch (BusinessRuleException ex)
            {
                return(JsonErrorMessage(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString(), ex);
                return(JsonErrorMessage(Resources.TenderResources.ErrorMessages.UnexpectedError));
            }
        }
Example #6
0
        public async Task <JoinTechnicalCommitteeModel> SendInvitationsToJoinCommittee(JoinTechnicalCommitteeModel joinModel)
        {
            if (joinModel.SelectedUserCommitteeId == joinModel.JoinedCommitteeId)
            {
                throw new BusinessRuleException("لا يمكن للجهة ان تدعوا نفسها للرد على الاستفسار");
            }

            await _enquiryDomain.CheckCanAddCommittee(joinModel.JoinedCommitteeId);

            await HasJoinCommitteeForEnquiry(joinModel.EnquiryId, joinModel.JoinedCommitteeId);

            var enquiry = await _enquiryQueries.FindEnquiryByEnquiryId(joinModel.EnquiryId);

            var tender = enquiry.Tender;

            await SendInvitationsToJoinCommitteeNotification(joinModel, tender);

            tender.AddActionHistory(tender.TenderStatusId, TenderActions.AddFAQInvitation, "", _httpContextAccessor.HttpContext.User.UserId());

            enquiry.JoinTechnicalCommitee(joinModel.EnquiryId, joinModel.JoinedCommitteeId, joinModel.SelectedUserCommitteeId, joinModel.EnquiryComment);

            await _enquiryCommands.UpdateAsync(enquiry);

            return(joinModel);
        }
Example #7
0
        public async Task <JoinTechnicalCommitteeModel> SendInvitationsToJoinCommittee([FromBody] JoinTechnicalCommitteeModel joinTechnicalCommitteeModel)
        {
            joinTechnicalCommitteeModel.SelectedUserCommitteeId = User.SelectedCommittee();
            await _enquiryAppService.SendInvitationsToJoinCommittee(joinTechnicalCommitteeModel);

            return(joinTechnicalCommitteeModel);
        }