public JiaMiTu InitialJiaMiTuPoint(JiaMiTu curMiTu, JiaMiTu father, JiaMiTu mother) { float totalPoint = 0; var curMiTuType = curMiTu.GetType(); var fatherMiTuType = curMiTu.GetType(); var motherMiTuType = curMiTu.GetType(); foreach (var field in specialFields) { var fatherValue = (float)fatherMiTuType.GetField(field).GetValue(father); var motherValue = (float)motherMiTuType.GetField(field).GetValue(mother); var summary = fatherValue + motherValue; curMiTuType.GetField(field).SetValue(curMiTu, summary); totalPoint += summary; } //curMiTu.BODY_COLOR = father.BODY_COLOR + mother.BODY_COLOR; //curMiTu.EYE = father.EYE + mother.EYE; //curMiTu.EYE_COLOR = father.EYE_COLOR + mother.EYE_COLOR; //curMiTu.FIGURE = father.FIGURE + mother.FIGURE; //curMiTu.MOUTH = father.MOUTH + mother.MOUTH; //curMiTu.PATTERN = father.PATTERN + mother.PATTERN; //curMiTu.PATTERN_COLOR = father.PATTERN_COLOR + mother.PATTERN_COLOR; ////汇总得分 //totalPoint = curMiTu.BODY_COLOR + curMiTu.EYE + curMiTu.EYE_COLOR + curMiTu.FIGURE + curMiTu.MOUTH + curMiTu.PATTERN + curMiTu.PATTERN_COLOR; curMiTu.TotalPoint = totalPoint; curMiTu.FatherRareDegree = father.RareDegree; curMiTu.MotherRareDegree = mother.RareDegree; return(curMiTu); }
public JiaMiTu InitialJiaMiTu(BsonDocument doc) { var miTuObj = new JiaMiTu() { //BODY_COLOR = doc["BODY_COLOR.rare"].ToString()=="true"?1:0, //EYE = doc["EYE.rare"].ToString() == "true" ? 1 : 0, //EYE_COLOR = doc["EYE_COLOR.rare"].ToString() == "true" ? 1 : 0, //FIGURE = doc["FIGURE.rare"].ToString() == "true" ? 1 : 0, //MOUTH = doc["MOUTH.rare"].ToString() == "true" ? 1 : 0, //PATTERN = doc["PATTERN.rare"].ToString() == "true" ? 1 : 0, //PATTERN_COLOR = doc["PATTERN_COLOR.rare"].ToString() == "true" ? 1 : 0, }; var type = miTuObj.GetType(); try { //赋值遍历 foreach (var elem in doc.Elements) { if (specialFields.Contains(elem.Name)) { var curValue = doc[elem.Name] as BsonDocument; if (curValue.Text("rare") == "true") { var getProperty = type.GetField(elem.Name); if (getProperty != null) { getProperty.SetValue(miTuObj, 1); } } } } miTuObj.RareDegree = (int)Enum.Parse(typeof(RareDegree), doc.Text("rareDegreeKey")); } catch (Exception ex) { } return(miTuObj); }