private static string GetJianYi(GongIndex index) { switch (index) { case GongIndex.兄弟宫: return("亲情无价,能成为兄弟姊妹需要无限的缘分。所以,当兄弟姊妹遇到困难时,如果您是有能力,请伸出援手吧。"); case GongIndex.夫妻宫: return("夫妻生活是门学问,需要夫妻双方努力去维系,和谐的夫妻生活关键是知进退,多关心谅解对方,迎合伴侣的感情态度可以有效加强婚姻美满度。婚姻感情需要需要清楚自身的爱情态度,找出自己在感情方面的不足之处,选择真正适合自己的对象,可以查看自身的婚姻感情分析。想要知道伴侣的感情态度就需要结合伴侣的命理信息来分析"); case GongIndex.子女宫: return("“养儿一百岁,长忧九十九。”关注自己子女成长是每个父母的责任,但您的教育方式是否真适合自己子女呢?建议可以从子女性格方面下手,针对他们的性格进行教育,这样可以事半功倍。"); case GongIndex.财帛宫: return("财富的好坏虽然命中有定数,但缺乏行动努力一切都变得不现实。但命中财运不好怎么办?就需要看流年的运程,运势不好的年份需要走得慢一点,稳中求胜;运势好的年运可以加快步伐,挑战各种机遇。至于无法留下贮蓄怎么办?自己没法留可以交给其它人帮忙保管,像爸妈、婚姻伴侣都可以,又或者把生活必须外的钱在银行设个定期存款,减低流动性。"); case GongIndex.疾厄宫: return("需要关注自身健康情况,注意保养容易患病的部分,每年的身体检查肯定是必不可少的。预防胜于治疗,注意好自己的作息时间和饮食习惯,有时间再做适量的运动,保持健康其实很容易。"); case GongIndex.仆役宫: return("生活中无法避免认识朋友、同事、上司,想要和他们和谐相处应该针对他们的性格下手,了解他们的性格特点,投其所好,这有助于人际交往发展。"); case GongIndex.事业宫: return("事业成就高低和努力是密不可分,但并不意味着您努力了就可以有收获,关键是努力的方向需要正确的。所以您需要选择适合自己的事业和方向发展,这可以令您更容易发挥自身能力,获得成功。"); case GongIndex.父母宫: return("“养儿一百岁,长忧九十九。”同样的道理,没有父母是不关系自己的子女的,对于父母您需要给予更多的关爱。年老容易滋生孤独感觉,陪父母聚餐聊天是个不错的做法,当然离乡发展的朋友可以电话关心一下,给爸妈报个平安。您也可以帮父母建档测算一下,看看每年有哪些方面是需要特别注意的,避免引发严重的问题。"); default: return(string.Empty); } }
private BasicGong SanFangSiZheng(PaiPan pan, GongIndex index) { //三方四正 var model = new BasicGong(); model.SelfGong = pan.Gongs.First(g => g.Name == index.ToString()); int dui = (model.SelfGong.Zhi + 6) % 12; if (dui == 0) { dui = 12; } else if (dui < 0) { dui += 12; } int hui1 = (model.SelfGong.Zhi + 4) % 12; if (hui1 == 0) { hui1 = 12; } else if (hui1 < 0) { hui1 += 12; } int hui2 = (model.SelfGong.Zhi - 4) % 12; if (hui2 == 0) { hui2 = 12; } else if (hui2 < 0) { hui2 += 12; } model.DuiZhaoGong = pan.Gongs[dui - 1]; model.HuiGongs.Add(pan.Gongs[hui1 - 1]); model.HuiGongs.Add(pan.Gongs[hui2 - 1]); return(model); }
private static ziwei_data_s31 GetData(GongIndex index, DAL dal) { switch (index) { case GongIndex.兄弟宫: return(dal.s31); case GongIndex.夫妻宫: return(dal.s32); case GongIndex.子女宫: return(dal.s33); case GongIndex.财帛宫: return(dal.s34); case GongIndex.疾厄宫: return(dal.s35); case GongIndex.迁移宫: return(dal.s36); case GongIndex.仆役宫: return(dal.s37); case GongIndex.事业宫: return(dal.s38); case GongIndex.田宅宫: return(dal.s39); case GongIndex.福德宫: return(dal.s40); case GongIndex.父母宫: return(dal.s41); default: return(null); } }
public T GetResult <T>(PaiPan pan, GongIndex gong_idx, int index_of_s2) where T : BasicGong, new() { T model = new T(); #region 宫位信息初始化 //三方四正 model.SelfGong = pan.Gongs.First(g => g.Name == gong_idx.ToString()); int dui = (model.SelfGong.Zhi + 6) % 12; if (dui == 0) { dui = 12; } else if (dui < 0) { dui += 12; } int hui1 = (model.SelfGong.Zhi + 4) % 12; if (hui1 == 0) { hui1 = 12; } else if (hui1 < 0) { hui1 += 12; } int hui2 = (model.SelfGong.Zhi - 4) % 12; if (hui2 == 0) { hui2 = 12; } else if (hui2 < 0) { hui2 += 12; } model.DuiZhaoGong = pan.Gongs[dui - 1]; model.HuiGongs.Add(pan.Gongs[hui1 - 1]); model.HuiGongs.Add(pan.Gongs[hui2 - 1]); //主星 var zhuxing = model.SelfGong.Stars.Where(s => dal.Dic_ZhuXing.ContainsKey(s.Name)).ToList(); if (zhuxing.Count == 0) { model.isJieXing = true; zhuxing = model.DuiZhaoGong.Stars.Where(s => dal.Dic_ZhuXing.ContainsKey(s.Name)).ToList(); //借星 } foreach (var item in zhuxing) { model.ZhuXing.Add(new Xing(item, dal.Dic_ZhuXing[item.Name].id, Position.坐宫)); } //吉星 foreach (var item in model.SelfGong.Stars.Where(s => dal.Dic_JiXing.ContainsKey(s.Name)).ToList()) { model.JiXing.Add(new Xing(item, dal.Dic_JiXing[item.Name].id, Position.坐宫)); } foreach (var item in model.DuiZhaoGong.Stars.Where(s => dal.Dic_JiXing.ContainsKey(s.Name)).ToList()) { model.JiXing.Add(new Xing(item, dal.Dic_JiXing[item.Name].id, Position.对照)); } foreach (var gong in model.HuiGongs) { foreach (var item in gong.Stars.Where(s => dal.Dic_JiXing.ContainsKey(s.Name)).ToList()) { model.JiXing.Add(new Xing(item, dal.Dic_JiXing[item.Name].id, Position.加会)); } } //凶星 foreach (var item in model.SelfGong.Stars.Where(s => dal.Dic_XiongXing.ContainsKey(s.Name)).ToList()) { model.XiongXing.Add(new Xing(item, dal.Dic_XiongXing[item.Name].id, Position.坐宫)); } foreach (var item in model.DuiZhaoGong.Stars.Where(s => dal.Dic_XiongXing.ContainsKey(s.Name)).ToList()) { model.XiongXing.Add(new Xing(item, dal.Dic_XiongXing[item.Name].id, Position.对照)); } foreach (var gong in model.HuiGongs) { foreach (var item in gong.Stars.Where(s => dal.Dic_XiongXing.ContainsKey(s.Name)).ToList()) { model.XiongXing.Add(new Xing(item, dal.Dic_XiongXing[item.Name].id, Position.加会)); } } #endregion //宫位 model.GongWei = string.Format("【{0}在{1}】", gong_idx.ToString(), model.SelfGong.ZhiString) + dal.s11[model.SelfGong.Zhi - 1].items[gong_idx.GetHashCode()]; //主星四化 foreach (var item in model.ZhuXing.Where(x => !string.IsNullOrEmpty(x.Star.Hua))) { switch (item.Star.Hua) { case "禄": item.HuaContent = dal.s4.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; case "权": item.HuaContent = dal.s5.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; case "科": item.HuaContent = dal.s6.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; case "忌": item.HuaContent = dal.s7.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; } } foreach (var item in model.JiXing.Where(x => !string.IsNullOrEmpty(x.Star.Hua))) { switch (item.Star.Hua) { case "禄": item.HuaContent = dal.s4.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; case "权": item.HuaContent = dal.s5.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; case "科": item.HuaContent = dal.s6.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; case "忌": item.HuaContent = dal.s7.Find(x => x.id == item.Id).items[gong_idx.GetHashCode()]; break; } } //四化(不只主星) foreach (var item in model.DuiZhaoGong.Stars.Where(x => !string.IsNullOrEmpty(x.Hua))) { model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.对照)); } foreach (var item in model.SelfGong.Stars.Where(x => !string.IsNullOrEmpty(x.Hua))) { model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.坐宫)); } foreach (var item in model.HuiGongs[0].Stars.Where(x => !string.IsNullOrEmpty(x.Hua))) { model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.加会)); } foreach (var item in model.HuiGongs[1].Stars.Where(x => !string.IsNullOrEmpty(x.Hua))) { model.Hua.Add(new Hua(item.Name, (HuaType)Enum.Parse(typeof(HuaType), item.Hua, false), Position.加会)); } //福德则直接返回 if (gong_idx == GongIndex.福德宫) { return(model); } //主星 foreach (var xing in model.ZhuXing) { xing.Content = dal.s2[xing.Id].items[index_of_s2]; } //吉星 foreach (var xing in model.JiXing) { xing.Content = dal.s2[xing.Id].items[index_of_s2]; } //凶星 foreach (var xing in model.XiongXing) { xing.Content = dal.s2[xing.Id].items[index_of_s2]; } GetJiXiong <T>(model); model.DaShi = DaShisWords.GetDaShi(model, dal); return(model); }
public IList <LiuNianInfo> GetLiuNianInfo(string[] stars, GongIndex index) { var list = new List <LiuNianInfo>(); if (stars == null || stars.Length == 0) { return(list); } int id = 0; switch (index) { case GongIndex.命宫: id = 0; break; case GongIndex.夫妻宫: id = 1; break; case GongIndex.事业宫: id = 2; break; case GongIndex.财帛宫: id = 3; break; case GongIndex.迁移宫: id = 4; break; case GongIndex.田宅宫: id = 5; break; case GongIndex.疾厄宫: id = 6; break; case GongIndex.仆役宫: id = 7; break; case GongIndex.父母宫: id = 8; break; case GongIndex.子女宫: id = 9; break; default: return(list); } var container = dal.s43.Find(d => d.id == id); string xingid = null; if (stars.Length == 1) { xingid = dal.Dic_ZhuXing[stars[0]].id.ToString(); } else if (stars.Length == 2) { xingid = string.Format("{0}#{1}", dal.Dic_ZhuXing[stars[0]].id, dal.Dic_ZhuXing[stars[1]].id); } else { return(list); } var raw = container.starDatas.Where(d => d.id == xingid); foreach (var item in raw) { var info = new LiuNianInfo() { id = item.id, name = item.name, title = item.title, text = item.text }; list.Add(info); } return(list); }
public int GetScore(BasicGong gong, GongIndex index) { float score = 0; #region 主星 if (gong.ZhuXing.Count == 1) { var xing = gong.ZhuXing[0]; var xingScore = zhuXingScore[xing.Star.Name]; var liandu = xing.Star.LiangDu.HasValue ? (int)xing.Star.LiangDu : 1; if (gong.isJieXing) { liandu -= 2; if (liandu < -3) { liandu = -3; } } score += xingScore[(int)index] * LiangDuWieght[liandu]; } else { var xing1 = gong.ZhuXing[0]; var xing2 = gong.ZhuXing[1]; var xingScore = zhuXingScore.ContainsKey(xing1.Star.Name + xing2.Star.Name) ? zhuXingScore[xing1.Star.Name + xing2.Star.Name] : zhuXingScore[xing2.Star.Name + xing1.Star.Name]; var liandu1 = xing1.Star.LiangDu.HasValue ? (int)xing1.Star.LiangDu : 1; if (gong.isJieXing) { liandu1 -= 2; if (liandu1 < -3) { liandu1 = -3; } } var liandu2 = xing2.Star.LiangDu.HasValue ? (int)xing2.Star.LiangDu : 1; if (gong.isJieXing) { liandu2 -= 2; if (liandu2 < -3) { liandu2 = -3; } } score += xingScore[(int)index] * (LiangDuWieght[liandu1] + LiangDuWieght[liandu2]) / 2; } #endregion #region 星 var zhuJixing = new List <Xing>(); var otherJixing = new List <Xing>(); foreach (var xing in gong.JiXing) { if (gong.SelfGong.Stars.Exists(s => s.Name == xing.Star.Name)) { zhuJixing.Add(xing); } else { otherJixing.Add(xing); } } if (zhuJixing.Exists(x => x.Star.Name == "文昌") && zhuJixing.Exists(x => x.Star.Name == "文曲")) { zhuJixing.RemoveAll(x => x.Star.Name == "文昌" || x.Star.Name == "文曲"); score += jiXingScore["文昌文曲"][0]; } if (zhuJixing.Exists(x => x.Star.Name == "左辅") && zhuJixing.Exists(x => x.Star.Name == "右弼")) { zhuJixing.RemoveAll(x => x.Star.Name == "左辅" || x.Star.Name == "右弼"); score += jiXingScore["左辅右弼"][0]; } if (zhuJixing.Exists(x => x.Star.Name == "天魁") && zhuJixing.Exists(x => x.Star.Name == "天钺")) { zhuJixing.RemoveAll(x => x.Star.Name == "天魁" || x.Star.Name == "天钺"); score += jiXingScore["天魁天钺"][0]; } if (otherJixing.Exists(x => x.Star.Name == "文昌") && otherJixing.Exists(x => x.Star.Name == "文曲")) { otherJixing.RemoveAll(x => x.Star.Name == "文昌" || x.Star.Name == "文曲"); score += jiXingScore["文昌文曲"][1]; } if (otherJixing.Exists(x => x.Star.Name == "左辅") && otherJixing.Exists(x => x.Star.Name == "右弼")) { otherJixing.RemoveAll(x => x.Star.Name == "左辅" || x.Star.Name == "右弼"); score += jiXingScore["左辅右弼"][1]; } if (otherJixing.Exists(x => x.Star.Name == "天魁") && otherJixing.Exists(x => x.Star.Name == "天钺")) { otherJixing.RemoveAll(x => x.Star.Name == "天魁" || x.Star.Name == "天钺"); score += jiXingScore["天魁天钺"][1]; } foreach (var xing in zhuJixing) { score += jiXingScore[xing.Star.Name][0]; } foreach (var xing in otherJixing) { score += jiXingScore[xing.Star.Name][1]; } #endregion #region 凶星 var zhuXiongxing = new List <Xing>(); var otherXiongxing = new List <Xing>(); foreach (var xing in gong.XiongXing) { if (gong.SelfGong.Stars.Exists(s => s.Name == xing.Star.Name)) { zhuXiongxing.Add(xing); } else { otherXiongxing.Add(xing); } } if (zhuXiongxing.Exists(x => x.Star.Name == "火星") && zhuXiongxing.Exists(x => x.Star.Name == "铃星")) { zhuXiongxing.RemoveAll(x => x.Star.Name == "火星" || x.Star.Name == "铃星"); score += xiongXingScore["火星铃星"][0]; } if (zhuXiongxing.Exists(x => x.Star.Name == "擎羊") && zhuXiongxing.Exists(x => x.Star.Name == "陀罗")) { zhuXiongxing.RemoveAll(x => x.Star.Name == "擎羊" || x.Star.Name == "陀罗"); score += xiongXingScore["擎羊陀罗"][0]; } if (zhuXiongxing.Exists(x => x.Star.Name == "地空") && zhuXiongxing.Exists(x => x.Star.Name == "地劫")) { zhuXiongxing.RemoveAll(x => x.Star.Name == "地空" || x.Star.Name == "地劫"); score += xiongXingScore["地空地劫"][0]; } if (otherXiongxing.Exists(x => x.Star.Name == "火星") && otherXiongxing.Exists(x => x.Star.Name == "铃星")) { otherXiongxing.RemoveAll(x => x.Star.Name == "火星" || x.Star.Name == "铃星"); score += xiongXingScore["火星铃星"][1]; } if (otherXiongxing.Exists(x => x.Star.Name == "擎羊") && otherXiongxing.Exists(x => x.Star.Name == "陀罗")) { otherXiongxing.RemoveAll(x => x.Star.Name == "擎羊" || x.Star.Name == "陀罗"); score += xiongXingScore["擎羊陀罗"][1]; } if (otherXiongxing.Exists(x => x.Star.Name == "地空") && otherXiongxing.Exists(x => x.Star.Name == "地劫")) { otherXiongxing.RemoveAll(x => x.Star.Name == "地空" || x.Star.Name == "地劫"); score += xiongXingScore["地空地劫"][1]; } foreach (var xing in zhuXiongxing) { score += xiongXingScore[xing.Star.Name][0]; } foreach (var xing in otherXiongxing) { score += xiongXingScore[xing.Star.Name][1]; } #endregion #region 特殊情况 if (gong.XiongXing.Exists(x => x.Star.Name == "火星")) { if (gong.ZhuXing.Exists(x => x.Star.Name == "七杀")) { score += 40; } if (gong.ZhuXing.Exists(x => x.Star.Name == "贪狼")) { score += 80; } if (gong.JiXing.Exists(x => x.Star.Name == "武曲")) { score += 60; } } if (gong.XiongXing.Exists(x => x.Star.Name == "擎羊") && index == GongIndex.疾厄宫) { score += 80; } #endregion if (score < 40) { score = 40 + score % 4; } else if (score >= 200) { score = 100; } else { score = (score - 40) * 60 / 160 + 40; } return((int)score); }