/// <summary>凍結防止ソケットが必要な場合に存在していないとき警告</summary>
        public static void ValidateTouketsuBoushiSocket(List <TextObject> texts, List <Symbol> symbols)
        {
            string messageId = @"Need Touketsu Boushi. Please install same location of Boiler.";

            var validator = new Validator();

            validator.Validate = delegate()
            {
                if (Static.Drawing.Prefix != "HJA")
                {
                    return(null);
                }

                //水まわり設備=寒冷地仕様
                using (var service = new SocketPlanServiceNoTimeout())
                {
                    var siyoCode = service.GetSiyoCode(Static.ConstructionCode, Static.Drawing.PlanNo);

                    if (!service.IsKanreiArea(Static.ConstructionCode, siyoCode))
                    {
                        return(null);
                    }
                }

                var sockets = symbols.FindAll(p => p.Equipment.Name == Const.EquipmentName.防水E付_02);
                if (sockets.Count > 0)
                {
                    return(null);
                }

                return(new ErrorDialog(messageId, 0));
            };

            validator.Run(messageId);
        }
        /// <summary>凍結防止ソケットとボイラーの数が合わない場合警告</summary>
        public static void WarnTouketsuBoushiSocket(List <TextObject> texts, List <Symbol> symbols)
        {
            string messageId = @"REMINDER: INSTALL SAME NUMBER OF TOUEKTSU BOUSHI WITH BOILER.";

            var validator = new Validator();

            validator.Validate = delegate()
            {
                if (Static.Drawing.Prefix != "HJA")
                {
                    return(null);
                }

                //水まわり設備=寒冷地仕様
                using (var service = new SocketPlanServiceNoTimeout())
                {
                    var siyoCode = service.GetSiyoCode(Static.ConstructionCode, Static.Drawing.PlanNo);

                    if (!service.IsKanreiArea(Static.ConstructionCode, siyoCode))
                    {
                        return(null);
                    }
                }

                var sockets = symbols.FindAll(p => p.Equipment.Name == Const.EquipmentName.防水E付_02);
                if (sockets.Count == 0)
                {
                    return(new ErrorDialog(messageId, 0));
                }

                var boilers = texts.FindAll(p => p.Text.Contains(Const.Text.ガスボイラー) ||
                                            p.Text.Contains(Const.Text.電気温水器) ||
                                            p.Text.Contains(Const.Text.エコキュート));

                if (sockets.Count == boilers.Count)
                {
                    return(null);
                }

                return(new ErrorDialog(messageId, 0));
            };

            validator.Run(messageId);
        }
示例#3
0
        private void LoadSpecs(string planNo)
        {
            var specs = new HouseSpecs();

            List <Setting> settings;

            using (var service = new SocketPlanServiceNoTimeout())
            {
                var siyoCode = service.GetSiyoCode(Static.ConstructionCode, Utilities.ConvertPlanNo(planNo));
                settings         = new List <Setting>(service.GetSettings(Static.ConstructionCode, siyoCode));
                specs.Kanabakari = service.GetKanabakari(Static.ConstructionCode, siyoCode);
                if (specs.Kanabakari == Const.Kanabakari._240)
                {
                    specs.CeilingHeight_1F = Const.CeilingHeight._2400;
                    specs.CeilingHeight_2F = Const.CeilingHeight._2400;
                }
                else if (specs.Kanabakari == Const.Kanabakari._260)
                {
                    specs.CeilingHeight_1F = Const.CeilingHeight._2600;
                    specs.CeilingHeight_2F = Const.CeilingHeight._2400;
                }
                else if (specs.Kanabakari == Const.Kanabakari._265)
                {
                    specs.CeilingHeight_1F = Const.CeilingHeight._2650;
                    specs.CeilingHeight_2F = Const.CeilingHeight._2500;
                }
                else
                {
                    throw new ApplicationException(Messages.InvalidKanabakari(Static.HouseSpecs.Kanabakari));
                }


                specs.HouseTypeCode = service.GetHouseTypeCode(Static.ConstructionCode, Utilities.ConvertPlanNo(planNo));
                var gropuDetail = service.GetHouseTypeGroupDetail(Static.ConstructionTypeCode);
                if (gropuDetail != null)
                {
                    specs.HouseTypeGroupId = gropuDetail.HouseTypeGroupId;
                }
                else
                {
                    specs.HouseTypeGroupId = 0;
                }

                if (!Static.IsBeforeKakouIrai)
                { //加工依頼後だったら、太陽光関連の情報を取得する。
                    //加工依頼前は、特に使わないので、デフォ値で問題なし。
                    specs.ExistSolar            = service.ExistSolar(Static.ConstructionCode);
                    specs.PowerConditionerCount = service.GetPowerConditionerCount(Static.ConstructionCode);
                }
            }

            specs.ExtraLength = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 1).Value);
            specs.CeilingReceiverExtraLength = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 2).Value);
            specs.CeilingDepth1F             = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 3).Value);
            specs.CeilingDepth2F             = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 4).Value);
            specs.CeilingThickness1F         = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 5).Value);
            specs.CeilingThickness2F         = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 6).Value);
            specs.FloorThickness             = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 7).Value);
            specs.ConnectorMaleExtraLength   = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 8).Value);
            specs.ConnectorFemaleExtraLength = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 9).Value);
            specs.JBExtraLength                    = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 10).Value);
            specs.BreakerExtraLength               = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 11).Value);
            specs.TerminalExtraLength              = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 12).Value);
            specs.DownLightExtraLength             = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 13).Value);
            specs.SolarSocketExtraLength           = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 15).Value);
            specs.PowerConExtraLength              = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 16).Value);
            specs.ConnectorHaikanMaleExtraLength   = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 17).Value);
            specs.ConnectorHaikanFemaleExtraLength = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 18).Value);
            specs.HaikanTakeOutExtraLength         = Convert.ToDecimal(settings.Find(p => p.SettingKindId == 19).Value);

            Static.HouseSpecs = specs;
        }