Пример #1
0
 public CalcServiceCentral(InsOptions options)
 {
     //Options = options;
     Region     = options.Region;
     CalcValues = new CalcValuesCentral(options);
     CalcTrees  = new CalcTreesCentral(this);
     CalcFront  = new CalcFrontCentral(this);
     CalcPlace  = new CalcPlaceCentral(this);
 }
Пример #2
0
        public CalcValuesCentral(InsOptions options)
        {
            Fi    = options.Region.Latitude.ToRadians();
            FiTan = Math.Tan(Fi);
            FiCos = Math.Cos(Fi);
            double cShadowNormal;
            var    yShadowNormal = YShadowLineByHeight(1, out cShadowNormal);

            ratioYtoC = yShadowNormal / cShadowNormal;

            SunCalcAngleStart        = options.SunCalcAngleStart.ToRadians();
            SunCalcAngleStartOnPlane = AngleSunOnPlane(SunCalcAngleStart);
            SunCalcAngleEnd          = options.SunCalcAngleEnd.ToRadians();
            SunCalcAngleEndOnPlane   = AngleSunOnPlane(SunCalcAngleEnd);
        }
Пример #3
0
        private void FillProperties(InsOptions opt)
        {
            SelectedRegionName = InsOptions.Region.RegionName;
            SelectedRegion     = opt.Region;

            // Выбор текущего проекта, если он есть
            if (opt.Project != null && Projects != null && Projects.Any())
            {
                var findProject = Projects.Find(p => p.Id == opt.Project.Id);
                if (findProject != null)
                {
                    SelectedProject = findProject;
                }
            }
        }
Пример #4
0
        public static ICalcService Create(InsOptions options)
        {
            ICalcService insService = null;

            if (options.Region.RegionPart == RegionEnum.Central)
            {
                insService = new CalcServiceCentral(options);
            }
            else
            {
                // TODO: Реализовать северный и южный регион
                throw new NotImplementedException("Расчет выбранного региона пока не реализован.");
            }
            return(insService);
        }
Пример #5
0
        public InsOptionsViewModel(InsOptions options)
        {
            InsOptions  = options.Clone();
            RegionNames = new ObservableCollection <string>(dictRegions.Keys);
            // Загрузка проектов из базы
            Projects = DbService.GetProjects();

            // Установка свойств настроек
            FillProperties(InsOptions);

            OK    = new RelayCommand(OnOkExecute);
            Reset = new RelayCommand(OnResetExecute);

            //UserSettings = InsService.UserSettings.Copy();
            EnableCheckDublicates = InsOptions.EnableCheckDublicates;
        }
Пример #6
0
        public bool IsIdenticalOptions(InsOptions options)
        {
            var res = Region.Latitude == options.Region.Latitude;

            return(res);
        }
Пример #7
0
        private void OnResetExecute()
        {
            var defaultOpt = InsOptions.Default();

            FillProperties(InsOptions);
        }
Пример #8
0
        public static ICalcService GetCalcService(InsOptions options)
        {
            var insCalc = CalcServiceFactory.Create(options);

            return(insCalc);
        }