public override List <string> brokenRules(WhoWeAreInputModel inputModel)
        {
            var incommingPage = inputModel.page;
            var uploadedFiles = inputModel.uploadedFiles.AllKeys;

            var headImagesFileValidator     = new ValidFilesInCollectionValidator(referencePage.HeadImages, uploadedFiles, false);
            var historySectionFileValidator = new ValidFilesInCollectionValidator(referencePage.HistoryImages, uploadedFiles, false);
            var valuesSectionFileValidator  = new ValidFilesInCollectionValidator(referencePage.ValuesSection, uploadedFiles, false);

            List <string> brokenRules = headImagesFileValidator.brokenRules(incommingPage.HeadImages);

            brokenRules.AddRange(historySectionFileValidator.brokenRules(incommingPage.HistoryImages));
            brokenRules.AddRange(valuesSectionFileValidator.brokenRules(incommingPage.ValuesSection));


            /*var validatorsCollection = new List<InputModelValidator<WhoWeArePage, WhoWeArePage>>() {
             *   new ValidFilesInCollectionValidator(incommingPage.HeadImages, referencePage.HeadImages,false),
             *   new ValidFilesInCollectionValidator(incommingPage.ValuesSection, referencePage.ValuesSection,false),
             *   new ValidFilesInCollectionValidator(incommingPage.HistoryImages, referencePage.HistoryImages,false)};
             *
             * var fileValidators = new CompositeInputModelValidator<WhoWeArePage, WhoWeArePage>(validatorsCollection);*/


            var singleRowItemSpecification          = new ValidSingleRowItemSpecification();
            var singleRowItemWIthImageSpecification = new ValidSingleRowItemWithImageSpecification(inputModel.uploadedFiles.AllKeys, true);
            var titledItemSpecification             = new ValidTitledSectionSpecification(inputModel.uploadedFiles.AllKeys, true);



            var simpleRowsCompositeSpecification = new CompositeObjectSpecification <WhoWeAreSimpleRowItem>(new List <WhoWeAreSimpleRowItem>()
            {
                incommingPage.WhoWeAreSection,
                incommingPage.VisionSection,
                incommingPage.MisionSection
            });

            brokenRules.AddRange(simpleRowsCompositeSpecification.brokenRules(singleRowItemSpecification));
            brokenRules.AddRange(singleRowItemWIthImageSpecification.brokenRules(incommingPage.AdSection));

            incommingPage.HeadImages.ForEach(h => brokenRules.AddRange(titledItemSpecification.brokenRules(h)));
            incommingPage.ValuesSection.ForEach(h => brokenRules.AddRange(titledItemSpecification.brokenRules(h)));
            incommingPage.HistoryImages.ForEach(h => brokenRules.AddRange(titledItemSpecification.brokenRules(h)));

            return(brokenRules);
        }
        public override List <string> brokenRules(DoctorsOfficeInputModel inputModel)
        {
            List <string> result        = new List <string>();
            var           incommingPage = inputModel.page;
            var           uploadedFiles = inputModel.uploadedFiles.AllKeys;

            var headImagesFileValidator      = new ValidFilesInCollectionValidator(referencePage.HeadImages, uploadedFiles, false);
            var servicesSectionFileValidator = new ValidFilesInCollectionValidator(referencePage.HeadImages, uploadedFiles, false);

            result.AddRange(headImagesFileValidator.brokenRules(incommingPage.HeadImages));
            result.AddRange(headImagesFileValidator.brokenRules(incommingPage.ServicesSection));

            var servicesSectionContentValidator = new CompositeObjectSpecification <DoctorsOfficePageSection>(referencePage.ServicesSection);

            result.AddRange(servicesSectionContentValidator.brokenRules(new DoctorsOfficeServiceSectionValidator()));

            return(result);
        }