public async Task <AnnouncementTemplateMainDetailsModel> AnnouncementFinalApprove(AnnouncementFinalApprovalModel approvalModel) { var announcementId = Util.Decrypt(approvalModel.AnnouncementTemplateIdString); if (approvalModel.VerificationCode == null) { throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.ExpiredActivationCode); } var verified = await _announcementDomainService.CheckVerificationCode(announcementId, approvalModel.VerificationCode, (int)Enums.VerificationType.Announcement); var model = new AnnouncementTemplateMainDetailsModel(); if (verified) { var announcementTemplate = await _announcementQueries.GetAnnouncementWithJoinRequestsById(announcementId); List <KeyValuePair <string, int> > ModifiedCrs = new List <KeyValuePair <string, int> >(); if (approvalModel.SuppliersIdsString.Count > 0) { List <int> suppliersIds = approvalModel.SuppliersIdsString.Select(r => Util.Decrypt(r)).ToList(); foreach (var request in announcementTemplate.AnnouncementJoinRequests.Where(r => suppliersIds.Contains(r.Id))) { ChangeRequestsStatus(request, ModifiedCrs); } } await _announcementCommands.UpdateAnnouncementSupplierTemplateAsync(announcementTemplate); MainNotificationTemplateModel mainNotificationTemplateModelForSupplier; NotificationArguments NotificationArguments = new NotificationArguments(); NotificationArguments.BodyEmailArgs = new object[] { announcementTemplate.ReferenceNumber }; NotificationArguments.SubjectEmailArgs = new object[] { }; NotificationArguments.PanelArgs = new object[] { announcementTemplate.ReferenceNumber }; NotificationArguments.SMSArgs = new object[] { announcementTemplate.ReferenceNumber }; mainNotificationTemplateModelForSupplier = new MainNotificationTemplateModel(NotificationArguments, $"AnnouncementSuppliersTemplate/AnnouncementSuppliersTemplateDetailsForSuppliers?announcmentIdString={approvalModel.AnnouncementTemplateIdString}", NotificationEntityType.Tender, announcementId.ToString(), 0); await _notificationAppService.SendNotificationForSuppliers(NotificationOperations.Supplier.OperationsOnTheTender.AcceptAnnouncementJoinRequest, ModifiedCrs.Where(cr => cr.Value == (int)Enums.AnnouncementTemplateJoinRequestStatus.Accepted).Select(cr => cr.Key).ToList(), mainNotificationTemplateModelForSupplier); await _notificationAppService.SendNotificationForSuppliers(NotificationOperations.Supplier.OperationsOnTheTender.RejectAnnouncementJoinRequest, ModifiedCrs.Where(cr => cr.Value == (int)Enums.AnnouncementTemplateJoinRequestStatus.Rejected).Select(cr => cr.Key).ToList(), mainNotificationTemplateModelForSupplier); } return(model); }
public async Task FinalApproveAnnouncemntSupplierTemplate([FromBody] AnnouncementFinalApprovalModel approvalModel) { await _announcementSupplierTemplateAppService.AnnouncementFinalApprove(approvalModel); }