Beispiel #1
0
        public async Task GetAnnouncementSuppliersTemplateCancelModel_Returns_Data()
        {
            var _expectedResult = new AnnouncementSuppliersTemplateCancelModel()
            {
                AnnouncementId   = 1,
                AnnouncementName = "اول قائمة عامة اعلانات قوائم الموردين من مدخل البيانات بدون مدة سريان",
                CreatedBy        = "مدخل وسكرتير نظام المنافسات والمشتريات | 5555555555",
            };

            var result = await _announcementController.GetAnnouncementSupplierTemplateByIdForCancelation(1);

            Assert.NotNull(result);
            Assert.IsType <AnnouncementSuppliersTemplateCancelModel>(result);
            Assert.Equal(_expectedResult.AnnouncementId, result.AnnouncementId);
            Assert.Equal(_expectedResult.AnnouncementName, result.AnnouncementName);
        }
        private async Task SendNotificationAfterApproveAnnouncementCancel(AnnouncementSuppliersTemplateCancelModel cancelModel)
        {
            var JoinedSuppliers = await _announcementQueries.GetJoinedAnnouncementSuppliers(cancelModel.AnnouncementId);

            var AcceptedSuppliers = await _announcementQueries.GetAcceptedAnnouncementSuppliers(cancelModel.AnnouncementId);

            MainNotificationTemplateModel mainNotificationTemplateModelForSupplier;
            NotificationArguments         NotificationArguments = new NotificationArguments();

            NotificationArguments.BodyEmailArgs      = new object[] { cancelModel.ReferenceNumber };
            NotificationArguments.SubjectEmailArgs   = new object[] { };
            NotificationArguments.PanelArgs          = new object[] { cancelModel.ReferenceNumber };
            NotificationArguments.SMSArgs            = new object[] { cancelModel.ReferenceNumber };
            mainNotificationTemplateModelForSupplier = new MainNotificationTemplateModel(NotificationArguments, $"AnnouncementSuppliersTemplate/CancelAnnouncementSuppliersTemplate?announcementIdString={Util.Encrypt(cancelModel.AnnouncementId)}", NotificationEntityType.Announcement, cancelModel.AnnouncementId.ToString(), 0);
            await _notificationAppService.SendNotificationForSuppliers(NotificationOperations.CancelAnnouncementTemplate.OperationsToBeApproved.sendApprovedCancelAnnouncementTemplate, AcceptedSuppliers, mainNotificationTemplateModelForSupplier);

            await _notificationAppService.SendNotificationForSuppliers(NotificationOperations.CancelAnnouncementTemplate.OperationsToBeApproved.AcceptJoinedSupplierAnnouncementTemplate, JoinedSuppliers, mainNotificationTemplateModelForSupplier);
        }
        public async Task <AnnouncementSuppliersTemplateCancelModel> CancelAnnouncement(AnnouncementSuppliersTemplateCancelModel cancelModel)
        {
            Check.ArgumentNotNull(nameof(cancelModel.AnnouncementIdString), cancelModel.AnnouncementIdString);
            await _announcementDomainService.CheckVerificationCode(cancelModel.AnnouncementId, cancelModel.VerificationCode, (int)Enums.VerificationType.Announcement);

            var announcement = await _announcementQueries.GetAnnouncementWithNoIncludsById(cancelModel.AnnouncementId);

            announcement.UpdateAnnouncementStatus(Enums.AnnouncementSupplierTemplateStatus.Canceled, cancelModel.CancelationReason, _httpContextAccessor.HttpContext.User.UserId(), true);
            cancelModel.ReferenceNumber = announcement.ReferenceNumber;
            await SendNotificationAfterApproveAnnouncementCancel(cancelModel);

            await _announcementCommands.UpdateAnnouncementSupplierTemplate(announcement);

            await _announcementCommands.SaveChangesAsync();

            return(new AnnouncementSuppliersTemplateCancelModel()
            {
                AnnouncementId = announcement.AnnouncementId,
                AnnouncementIdString = Util.Encrypt(announcement.AnnouncementId),
            });
        }
        public async Task <AnnouncementSuppliersTemplateCancelModel> ApproveAnnouncementCancelRequestAsync([FromBody] AnnouncementSuppliersTemplateCancelModel cancelModel)
        {
            cancelModel.AnnouncementId = Util.Decrypt(cancelModel.AnnouncementIdString);
            var result = await _announcementSupplierTemplateAppService.CancelAnnouncement(cancelModel);

            return(result);
        }