public void CreateAnnouncementSupplierTemplate(CreateAnnouncementSupplierTemplateModel model, List <AnnouncementSuppliersTemplateAttachment> attachments, int userId) { AnnouncementName = model.AnnouncementSupplierTemplateName; AnnouncementTemplateSuppliersListTypeId = model.AnnouncementTemplateSuppliersListTypeId; TenderTypesId = model.TenderTypesId; IntroAboutAnnouncementTemplate = model.IntroAboutAnnouncementTemplate; Descriptions = model.Descriptions; Details = model.Details; IsEffectiveList = model.IsEffectiveList; EffectiveListDate = model.EffectiveListDate; ActivityDescription = model.ActivityDescription; InsidKsa = model.InsideKsa; StatusId = (int)Enums.AnnouncementSupplierTemplateStatus.UnderCreation; BranchId = model.BranchId; RequirementConditionsToJoinList = model.RequirementConditionsToJoinList; IsRequiredAttachmentToJoinList = model.IsRequiredAttachmentToJoinList; RequiredAttachment = model.RequiredAttachment; AgencyCode = model.AgencyCode; AgencyAddress = model.AgencyAddress; AgencyFax = model.AgencyFax; AgencyPhone = model.AgencyPhone; AgencyEmail = model.AgencyEmail; CreatedById = userId; UpdateAnnouncementSupplierTemplateRelations(model.AreasIds, model.ActivityIds, model.ConstructionWorkIds, model.MaintenanceRunnigWorkIds, model.InsideKsa, model.Details, model.ActivityDescription, model.CountriesIds); UpdateSuppliersTemplateAttachments(attachments, userId, false); EntityCreated(); }
private async Task UpdateAnnouncemnetTemplateData(CreateAnnouncementSupplierTemplateModel announcementModel, int createdById, List <AnnouncementSuppliersTemplateAttachment> attachments, int insertionType) { if (!announcementModel.IsRequiredAttachmentToJoinList) { announcementModel.RequiredAttachment = ""; } if (!announcementModel.IsEffectiveList) { announcementModel.EffectiveListDate = null; } AnnouncementSupplierTemplate announcementSupplierTemplate = await _announcementQueries.GetAnnouncementByIdForCreationStep(Util.Decrypt(announcementModel.AnnouncementIdString)); announcementSupplierTemplate.UpdateAnnouncementSupplierTemplateData(announcementModel, attachments, createdById); if (insertionType == (int)Enums.AnnouncementSupplierTemplateInsertionType.FromCreation) { announcementSupplierTemplate.SetApprovalStatus(Enums.AnnouncementSupplierTemplateStatus.ReadyForApproval); } else { announcementSupplierTemplate.SetApprovalStatus(Enums.AnnouncementSupplierTemplateStatus.UnderCreation); } await _announcementCommands.UpdateAnnouncementSupplierTemplate(announcementSupplierTemplate); await _announcementCommands.SaveChangesAsync(); }
public async Task GetAnnouncementByIdForEdit_Returns_Data() { var _announcementIdString = Util.Encrypt(13); var _expectedResult = new CreateAnnouncementSupplierTemplateModel() { ActivityDescription = "NN", AgencyCode = "022001000000", AnnouncementId = 13, AnnouncementIdString = "4D*@@**CkYL*@@**L*@@**yHtLTllLUmsg==", AnnouncementSupplierTemplateName = "اعلان اول", CreatedBy = "مدخل وسكرتير نظام المنافسات والمشتريات | 5555555555", BranchId = 4, InsideKsa = true, TenderTypeId = 2 }; var result = await _announcementController.GetAnnouncementSupplierTemplateByIdForEdit(_announcementIdString); Assert.NotNull(result); Assert.IsType <CreateAnnouncementSupplierTemplateModel>(result); Assert.Equal(_expectedResult.ActivityDescription, result.ActivityDescription); Assert.Equal(_expectedResult.AgencyCode, result.AgencyCode); Assert.Equal(_expectedResult.AnnouncementId, result.AnnouncementId); Assert.Equal(_expectedResult.AnnouncementIdString, result.AnnouncementIdString); Assert.Equal(_expectedResult.BranchId, result.BranchId); Assert.True(result.InsideKsa); }
private void IsValidToCreate(CreateAnnouncementSupplierTemplateModel announcement) { if (string.IsNullOrEmpty(announcement.AnnouncementSupplierTemplateName) || string.IsNullOrEmpty(announcement.IntroAboutAnnouncementTemplate) || string.IsNullOrEmpty(announcement.Descriptions)) { throw new BusinessRuleException(Resources.AnnouncementResources.ErrorMessages.EnterRequiredData); } if (announcement.TenderTypesId == null || !announcement.TenderTypesId.Any()) { throw new BusinessRuleException(Resources.AnnouncementResources.ErrorMessages.EnterTenderTypes); } if (announcement.InsideKsa) { if (announcement.AreasIds == null || !announcement.AreasIds.Any()) { throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.EnterTenderAreas); } } else { if (announcement.CountriesIds == null || !announcement.CountriesIds.Any()) { throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.EnterTenderCountries); } } if (announcement.ActivityIds == null || !announcement.ActivityIds.Any()) { throw new BusinessRuleException(Resources.AnnouncementResources.ErrorMessages.ActivityIdRequired); } if (announcement.IsEffectiveList && announcement.EffectiveListDate == null) { throw new BusinessRuleException(Resources.AnnouncementResources.ErrorMessages.EffectiveListDateRequired); } if (announcement.IsEffectiveList && announcement.EffectiveListDate.Value.Date < DateTime.Now.Date) { throw new BusinessRuleException(Resources.SharedResources.ErrorMessages.DateLessThanToday); } if (announcement.IsRequiredAttachmentToJoinList && announcement.RequiredAttachment == null) { throw new BusinessRuleException(Resources.AnnouncementResources.ErrorMessages.AnnouncementRequiredAttachment); } if (string.IsNullOrEmpty(announcement.AgencyAddress) || string.IsNullOrEmpty(announcement.AgencyFax) || string.IsNullOrEmpty(announcement.AgencyPhone) || string.IsNullOrEmpty(announcement.AgencyEmail)) { throw new BusinessRuleException(Resources.AnnouncementResources.ErrorMessages.AgencyRequired); } }
private Core.Entities.AnnouncementSupplierTemplate CreateAnnouncement() { var announcement = new Core.Entities.AnnouncementSupplierTemplate(); var model = new CreateAnnouncementSupplierTemplateModel { AnnouncementSupplierTemplateName = Name, TenderTypesId = TenderTypId, IntroAboutAnnouncementTemplate = IntroAboutAnnouncementTemplate, Descriptions = Descriptions, Details = Details, ActivityDescription = ActivityDescription, InsideKsa = IsInsideKsa, BranchId = BranchId, AgencyCode = AgencyCode, AgencyAddress = AgencyAddress, AgencyFax = AgencyFax, AgencyPhone = AgencyPhone, AgencyEmail = AgencyEmail, IsRequiredAttachmentToJoinList = false, AreasIds = _areasIds, ActivityIds = _activitiesIds, ConstructionWorkIds = _constructionsWorkIds, MaintenanceRunnigWorkIds = _maintenanceWorkIds, CountriesIds = _countriesIds }; var name = "name"; var fileNetReferenceId = "123"; var attachmentType = 1; var atta = new AnnouncementSuppliersTemplateAttachment(name, fileNetReferenceId, attachmentType); announcement.CreateAnnouncementSupplierTemplate( model, new List <AnnouncementSuppliersTemplateAttachment> { atta }, Cr); return(announcement); }
public async Task <CreateAnnouncementSupplierTemplateModel> SaveDraft(CreateAnnouncementSupplierTemplateModel announcementModel) { int createdById = _httpContextAccessor.HttpContext.User.UserId(); announcementModel.AgencyCode = _httpContextAccessor.HttpContext.User.UserAgency(); Check.ArgumentNotNull(nameof(announcementModel), announcementModel); List <AnnouncementSuppliersTemplateAttachment> attachments = new List <AnnouncementSuppliersTemplateAttachment>(); if (announcementModel.Attachments != null) { foreach (var item in announcementModel.Attachments) { attachments.Add(new AnnouncementSuppliersTemplateAttachment(item.Name, item.FileNetReferenceId, item.AttachmentTypeId)); } } if (!string.IsNullOrEmpty(announcementModel.AnnouncementIdString)) { await UpdateAnnouncemnetTemplateData(announcementModel, createdById, attachments, (int)Enums.AnnouncementSupplierTemplateInsertionType.FromSaveDraft); return(announcementModel); } else { AnnouncementSupplierTemplate announcementSupplierTemplate = new AnnouncementSupplierTemplate(); announcementSupplierTemplate.CreateAnnouncementSupplierTemplate(announcementModel, attachments, createdById); announcementSupplierTemplate.SetReferenceNumber(await _announcementCommands.UpdateReferenceNumber()); announcementSupplierTemplate.SetApprovalStatus(Enums.AnnouncementSupplierTemplateStatus.UnderCreation); await _announcementCommands.CreateAnnouncementSupplierTemplate(announcementSupplierTemplate); await _announcementCommands.SaveChangesAsync(); announcementModel.AnnouncementId = announcementSupplierTemplate.AnnouncementId; announcementModel.AnnouncementIdString = Util.Encrypt(announcementSupplierTemplate.AnnouncementId); return(announcementModel); } }
public void Should_UpdateAnnouncementSupplierTemplateData() { var announcement = CreateAnnouncement(); var model = new CreateAnnouncementSupplierTemplateModel { AnnouncementSupplierTemplateName = Name, TenderTypesId = TenderTypId, IntroAboutAnnouncementTemplate = IntroAboutAnnouncementTemplate, Descriptions = Descriptions, Details = Details, ActivityDescription = ActivityDescription, InsideKsa = IsInsideKsa, BranchId = BranchId, AgencyCode = AgencyCode, AgencyAddress = AgencyAddress, AgencyFax = AgencyFax, AgencyPhone = AgencyPhone, AgencyEmail = AgencyEmail, IsRequiredAttachmentToJoinList = false, AreasIds = _areasIds, ActivityIds = _activitiesIds, ConstructionWorkIds = _constructionsWorkIds, MaintenanceRunnigWorkIds = _maintenanceWorkIds, CountriesIds = _countriesIds }; var name = "name"; var fileNetReferenceId = "123"; var attachmentType = 1; var updateAtta = new AnnouncementSuppliersTemplateAttachment("NewName", fileNetReferenceId, attachmentType); announcement = announcement.UpdateAnnouncementSupplierTemplateData( model, new List <AnnouncementSuppliersTemplateAttachment> { updateAtta }, Cr); announcement.ShouldNotBeNull(); announcement.AnnouncementName.ShouldBe(Name); announcement.TenderTypesId.ShouldBe(TenderTypId); announcement.IntroAboutAnnouncementTemplate.ShouldBe(IntroAboutAnnouncementTemplate); announcement.Descriptions.ShouldBe(Descriptions); announcement.Details.ShouldBe(Details); announcement.ActivityDescription.ShouldBe(ActivityDescription); announcement.InsidKsa.ShouldBe(IsInsideKsa); announcement.BranchId.ShouldBe(BranchId); announcement.AgencyCode.ShouldBe(AgencyCode); announcement.AgencyAddress.ShouldBe(AgencyAddress); announcement.AgencyFax.ShouldBe(AgencyFax); announcement.AgencyPhone.ShouldBe(AgencyPhone); announcement.AgencyEmail.ShouldBe(AgencyEmail); announcement.IsEffectiveList.ShouldBe(true); announcement.RequirementConditionsToJoinList.ShouldBeNull(); announcement.IsRequiredAttachmentToJoinList.ShouldBe(false); announcement.RequiredAttachment.ShouldBeNull(); announcement.AnnouncementActivities.Count.ShouldBe(6); announcement.AnnouncementActivities[0].ActivityId.ShouldBe(1); announcement.AnnouncementActivities[1].ActivityId.ShouldBe(2); announcement.AnnouncementActivities[2].ActivityId.ShouldBe(3); announcement.AnnouncementConstructionWorks.Count.ShouldBe(6); announcement.AnnouncementConstructionWorks[0].ConstructionWorkId.ShouldBe(1); announcement.AnnouncementConstructionWorks[1].ConstructionWorkId.ShouldBe(2); announcement.AnnouncementConstructionWorks[2].ConstructionWorkId.ShouldBe(3); announcement.AnnouncementMaintenanceRunnigWorks.Count.ShouldBe(6); announcement.AnnouncementMaintenanceRunnigWorks[0].MaintenanceRunningWorkId.ShouldBe(1); announcement.AnnouncementMaintenanceRunnigWorks[1].MaintenanceRunningWorkId.ShouldBe(2); announcement.AnnouncementMaintenanceRunnigWorks[2].MaintenanceRunningWorkId.ShouldBe(3); announcement.AnnouncementAreas.Count.ShouldBe(3); announcement.AnnouncementAreas[0].AreaId.ShouldBe(1); announcement.AnnouncementAreas[1].AreaId.ShouldBe(2); announcement.AnnouncementAreas[2].AreaId.ShouldBe(3); announcement.AnnouncementCountries.Count.ShouldBe(6); announcement.AnnouncementCountries[0].CountryId.ShouldBe(1); announcement.AnnouncementCountries[1].CountryId.ShouldBe(2); announcement.AnnouncementCountries[2].CountryId.ShouldBe(3); announcement.Attachments.Count.ShouldBeGreaterThanOrEqualTo(2); announcement.Attachments[0].Name.ShouldBe(name); announcement.Attachments[1].Name.ShouldBe("NewName"); announcement.StatusId.ShouldBe((int)Enums.AnnouncementStatus.UnderCreation); announcement.CreatedAt.ShouldBeLessThanOrEqualTo(DateTime.Now); announcement.IsActive.ShouldBe(true); announcement.CreatedById.ShouldBe(Cr); }
public async Task <CreateAnnouncementSupplierTemplateModel> CreateNewAnnouncementSupplierTemplate([FromBody] CreateAnnouncementSupplierTemplateModel announcementModel) { var result = await _announcementSupplierTemplateAppService.CreateNewAnnouncementSupplierTemplate(announcementModel); return(result); }