public JoinTechnicalCommitteeModel GetJoinTechnicalCommitteeModel() { JoinTechnicalCommitteeModel model = new JoinTechnicalCommitteeModel { EnquiryId = 1, JoinedCommitteeId = 1, SelectedUserCommitteeId = 2, EnquiryComment = "Comment" }; return(model); }
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 })); } }
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); }
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); }
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)); } }
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); }
public async Task <JoinTechnicalCommitteeModel> SendInvitationsToJoinCommittee([FromBody] JoinTechnicalCommitteeModel joinTechnicalCommitteeModel) { joinTechnicalCommitteeModel.SelectedUserCommitteeId = User.SelectedCommittee(); await _enquiryAppService.SendInvitationsToJoinCommittee(joinTechnicalCommitteeModel); return(joinTechnicalCommitteeModel); }