Exemplo n.º 1
0
        protected ProjectsControllerBase(ProjectsInfo projectsInfo, IAssetProvider assetProvider,
                                         List <IProjectModel> models, IProjectViewManipulator manipulator)
        {
            _viewManipulator = manipulator;
            AssetProvider    = assetProvider;
            _projectModels   = models;
            _projectsInfo    = projectsInfo;

            InitializeProjectViews();
        }
        public ProjectControllerFactory(IAssetProvider assetProvider,
                                        IProjectModelsContainer container, IProjectViewManipulator manipulator)
        {
            var comfortModels = new List <IProjectModel>();
            var economyModels = new List <IProjectModel>();
            var premiumModels = new List <IProjectModel>();

            foreach (var projectModel in container.ProjectModels)
            {
                switch (projectModel.Grade)
                {
                case PremiumGrade:
                    premiumModels.Add(projectModel);
                    break;

                case EconomyGrade:
                    economyModels.Add(projectModel);
                    break;

                case ComfortGrade:
                    comfortModels.Add(projectModel);
                    break;

                default:
                    throw new ArgumentException($"There is no grade {projectModel.Grade}");
                }
            }

            var comfortController = new ComfortProjectsController(container.ProjectsInfo, assetProvider, comfortModels, manipulator);
            var economyController = new PremiumProjectsController(container.ProjectsInfo, assetProvider, premiumModels, manipulator);
            var premiumController = new EconomyProjectsController(container.ProjectsInfo, assetProvider, economyModels, manipulator);

            var projects = new List <ProjectsControllerBase> {
                comfortController, economyController, premiumController
            };

            ProjectsManager = new ProjectsManager(projects);
        }
Exemplo n.º 3
0
 public PremiumProjectsController(ProjectsInfo projectsInfo, IAssetProvider assetProvider, List <IProjectModel> models,
                                  IProjectViewManipulator manipulator) : base(projectsInfo, assetProvider, models, manipulator)
 {
 }