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();
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 7
0
        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);
        }