private void IsReplyApproved(EnquiryReply enquiryReply) { if (enquiryReply.EnquiryReplyStatusId == (int)Enums.EnquiryReplyStatus.Approved) { throw new BusinessRuleException(MOF.Etimad.Monafasat.Resources.EnquiryResources.ErrorMessages.EnquiryReplyIsApproved); } }
public async Task <EnquiryReply> GetEnquiryReplyByReplyId(int enquiryReplyId) { EnquiryReply enquiryReply = await _context.EnquiryReplies .Where(x => x.EnquiryReplyId == enquiryReplyId).FirstOrDefaultAsync(); return(enquiryReply); }
public async Task <EnquiryReply> AddEnquiryReply(EnquiryReplyModel enquiryReplyModel) { EnquiryReply enquiryReply = new EnquiryReply(enquiryReplyModel.EnquiryReplyMessage, enquiryReplyModel.EnquiryId, (int)Enums.EnquiryReplyStatus.Pending, enquiryReplyModel.CommitteeId, false); await _enquiryDomain.UserCanAddReplyToEnquiry(enquiryReplyModel.EnquiryId, _httpContextAccessor.HttpContext.User.UserId()); return(await _enquiryCommands.CreateReplyAsync(enquiryReply)); }
public async Task <EnquiryReply> UpdateReplyAsync(EnquiryReply enquiryReply) { Check.ArgumentNotNull(nameof(enquiryReply), enquiryReply); _context.EnquiryReplies.Update(enquiryReply); await _context.SaveChangesAsync(); return(enquiryReply); }
public async Task <EnquiryReply> GetEnquiryReplyWithTender(int enquiryReplyId) { EnquiryReply enquiryReply = await _context.EnquiryReplies .Include(x => x.Enquiry) .ThenInclude(x => x.Tender) .Where(x => x.EnquiryReplyId == enquiryReplyId).FirstOrDefaultAsync(); return(enquiryReply); }
public void Should_ApproveEnquiryReply() { var enquiryReply = new EnquiryReply(EnquiryReplyMessage, EnquiryId, EnquiryReplyStatusId, CommitteeId, IsComment); enquiryReply.ApproveEnquiryReply(); enquiryReply.ShouldNotBeNull(); enquiryReply.EnquiryReplyStatusId.ShouldBe((int)Enums.EnquiryReplyStatus.Approved); }
public async Task <EnquiryReply> GetEnquiryReplyWithCommunicationRequest(int enquiryReplyId) { EnquiryReply enquiryReply = await _context.EnquiryReplies .Include(x => x.Enquiry) .ThenInclude(x => x.AgencyCommunicationRequest) .Where(x => x.EnquiryReplyId == enquiryReplyId).FirstOrDefaultAsync(); return(enquiryReply); }
public async Task <EnquiryReply> CreateReplyAsync(EnquiryReply enquiryReply) { await _context.EnquiryReplies.AddAsync(enquiryReply); await _context.SaveChangesAsync(); return(enquiryReply); }
public void Should_Delete_EnquiryReply() { var enquiryReply = new EnquiryReply(EnquiryReplyMessage, EnquiryId, EnquiryReplyStatusId, CommitteeId, IsComment); enquiryReply.Delete(); enquiryReply.ShouldNotBeNull(); enquiryReply.State.ShouldBe(ObjectState.Deleted); }
public async Task <EnquiryReply> EditEnquiryReply(EnquiryReplyModel enquiryReplyModel) { EnquiryReply enquiryReply = await _enquiryQueries.GetEnquiryReplyByReplyId(enquiryReplyModel.EnquiryReplyId); await _enquiryDomain.UserCanAddReplyToEnquiry(enquiryReply.EnquiryId, _httpContextAccessor.HttpContext.User.UserId()); enquiryReply.Update(enquiryReplyModel.EnquiryReplyId, enquiryReplyModel.EnquiryReplyStatusId, enquiryReplyModel.EnquiryReplyMessage, enquiryReplyModel.CommitteeId, enquiryReplyModel.IsComment); return(await _enquiryCommands.UpdateReplyAsync(enquiryReply)); }
public void Should_DeActive_EnquiryReply() { var enquiryReply = new EnquiryReply(EnquiryReplyMessage, EnquiryId, EnquiryReplyStatusId, CommitteeId, IsComment); enquiryReply.DeActive(); enquiryReply.ShouldNotBeNull(); enquiryReply.IsActive.ShouldNotBeNull(); enquiryReply.IsActive.Value.ShouldBeFalse(); }
public void Should_Construct_EnquiryReply() { var enquiryReply = new EnquiryReply(EnquiryReplyMessage, EnquiryId, EnquiryReplyStatusId, CommitteeId, IsComment); enquiryReply.ShouldNotBeNull(); enquiryReply.EnquiryId.ShouldBe(EnquiryId); enquiryReply.CommitteeId.ShouldBe(CommitteeId); enquiryReply.EnquiryReplyMessage.ShouldBe(EnquiryReplyMessage); enquiryReply.EnquiryReplyStatusId.ShouldBe(EnquiryReplyStatusId); enquiryReply.EnquiryId.ShouldBe(EnquiryId); }
public async Task <EnquiryReply> ApproveEnquiryReply(int enquiryReplyId) { EnquiryReply enquiryReply = await _enquiryQueries.GetEnquiryReplyWithTender(enquiryReplyId); IsReplyApproved(enquiryReply); enquiryReply.ApproveEnquiryReply(); await SendNotificationAfterApproveReply(enquiryReply); return(await _enquiryCommands.UpdateReplyAsync(enquiryReply)); }
private async Task SendNotificationAfterApproveReply(EnquiryReply enquiryReply) { var tender = enquiryReply.Enquiry.Tender; List <string> crs = (tender.TenderTypeId == (int)Enums.TenderType.PreQualification || tender.TenderTypeId == (int)Enums.TenderType.PostQualification) ? await _iDMAppService.QualificationToSendInvitation(tender.TenderId) : await _iDMAppService.GetAllSupplierOnTender(tender.TenderId); NotificationArguments NotificationArgument = new NotificationArguments(); if (tender.TenderTypeId == (int)Enums.TenderType.PreQualification || tender.TenderTypeId == (int)Enums.TenderType.PostQualification) { NotificationArgument.BodyEmailArgs = new object[] { "", tender.TenderName, tender.ReferenceNumber, tender?.LastEnqueriesDate, tender?.LastOfferPresentationDate }; } else { NotificationArgument.BodyEmailArgs = new object[] { "", tender.TenderName, tender.ReferenceNumber, tender.Purpose, tender?.LastEnqueriesDate, tender?.LastOfferPresentationDate, tender.OffersOpeningDate, tender?.OffersOpeningDate?.Hour }; } NotificationArgument.SubjectEmailArgs = new object[] { }; NotificationArgument.PanelArgs = new object[] { tender.ReferenceNumber }; NotificationArgument.SMSArgs = new object[] { tender.ReferenceNumber }; MainNotificationTemplateModel mainNotificationTemplateModel = new MainNotificationTemplateModel(NotificationArgument, $"Enquiry/SupplierEnquiriesOnTender?id={Util.Encrypt(tender.TenderId)}", NotificationEntityType.Tender, tender.TenderId.ToString(), 0, tender.TechnicalOrganizationId); if (tender.TenderTypeId == (int)Enums.TenderType.PreQualification || tender.TenderTypeId == (int)Enums.TenderType.PostQualification) { await _notificationAppService.SendNotificationForSuppliers(NotificationOperations.Supplier.InquiriesAboutTender.publishfaqanswerforQualification, crs, mainNotificationTemplateModel); await _notificationAppService.SendNotificationForCommitteeUsers(NotificationOperations.TechnicalCommitteeSecretary.InquiriesAboutTender.PublishfaqanswerforQualification, tender.TechnicalOrganizationId, mainNotificationTemplateModel); } else { await _notificationAppService.SendNotificationForSuppliers(NotificationOperations.Supplier.InquiriesAboutTender.publishfaqanswer, crs, mainNotificationTemplateModel); await _notificationAppService.SendNotificationForCommitteeUsers(NotificationOperations.TechnicalCommitteeSecretary.InquiriesAboutTender.publishfaqanswerbackend, tender.TechnicalOrganizationId, mainNotificationTemplateModel); } enquiryReply.Enquiry.Tender.AddActionHistory(tender.TenderStatusId, TenderActions.ApproveFAQ, "", _httpContextAccessor.HttpContext.User.UserId()); var comunicationRequest = await _enquiryQueries.GetEnquiryReplyWithCommunicationRequest(enquiryReply.EnquiryReplyId); AgencyCommunicationRequest agencyCommunicationRequest = await _enquiryDomain.GetEnquiryCommunicationRequestByRequestId(comunicationRequest.Enquiry.AgencyCommunicationRequest.AgencyRequestId); if (agencyCommunicationRequest.StatusId == (int)Enums.AgencyCommunicationRequestStatus.PendingEnquiryForReply && enquiryReply.EnquiryReplyStatusId == (int)Enums.EnquiryReplyStatus.Approved) { agencyCommunicationRequest.UpdateAgencyCommunicationRequestStatus((int)Enums.AgencyCommunicationRequestStatus.ReplyOnEnquiry); await _enquiryDomain.UpdateCommunicationRequest(agencyCommunicationRequest); } }
public void Should_Update_EnquiryReply() { var enquiryReplyId = 1; var enquiryReplyMessage = "EnquiryReplyMessage updated"; var enquiryReplyStatusId = 2; var committeeId = 2; var isComment = false; var enquiryReply = new EnquiryReply(EnquiryReplyMessage, EnquiryId, EnquiryReplyStatusId, CommitteeId, IsComment); var updated = enquiryReply.Update(enquiryReplyId, enquiryReplyStatusId, enquiryReplyMessage, committeeId, isComment); updated.ShouldNotBeNull(); updated.EnquiryReplyId.ShouldBe(enquiryReplyId); updated.IsComment.ShouldBe(isComment); updated.CommitteeId.ShouldBe(committeeId); updated.EnquiryReplyMessage.ShouldBe(enquiryReplyMessage); updated.EnquiryReplyStatusId.ShouldBe(enquiryReplyStatusId); }
private string GetTechnicalCommitteeMember(EnquiryReply src, ResolutionContext context) { var TechnicalCommitteeMemberName = ""; if (bool.Parse(context.Options.Items["statusFlag"].ToString()) == true) { return(""); } if (!context.Options.Items.Keys.Contains("userIdFlag")) { return(""); } var userId = int.Parse(context.Options.Items["userIdFlag"].ToString()); if (src.Committee != null && src.Committee.CommitteeUsers.Any(c => c.UserProfileId == userId && c.UserRole.Name == RoleNames.TechnicalCommitteeUser)) { TechnicalCommitteeMemberName = src.Committee.CommitteeUsers.Where(c => c.UserProfileId == userId && c.UserRole.Name == RoleNames.TechnicalCommitteeUser).FirstOrDefault().ToString(); } return(TechnicalCommitteeMemberName); }
public void Should_Empty_Construct_EnquiryReply() { EnquiryReply enquiryReply = new EnquiryReply(); enquiryReply.ShouldNotBeNull(); }
public async Task AddEnquiryComment(EnquiryReplyModel enquiryReplyModel) { EnquiryReply enquiryReply = new EnquiryReply(enquiryReplyModel.EnquiryReplyMessage, enquiryReplyModel.EnquiryId, (int)Enums.EnquiryReplyStatus.Pending, enquiryReplyModel.CommitteeId, true); await _enquiryCommands.CreateReplyAsync(enquiryReply); }