public ProgressResult AddScore(Volunteer vol, Project pro, CreditRecord.CreditScore score) { if (vol != null && pro != null && score.PncScore <= 5.0 && score.SrvScore <= 5.0 && score.CmmScore <= 5.0) { if (vol.CreditRecords.FirstOrDefault(o => o.Project.Id == pro.Id) != null) { return(EditScore(vol, pro, score)); } else { CreditRecord cr = new CreditRecord { UID = Guid.NewGuid(), Project = pro, Participant = vol, Score = score }; database.CreditRecords.Add(cr); //pro.CreditRecords.Add(cr); //vol.CreditRecords.Add(cr); vol.AddCredit(score); Save(); return(ProgressResult.Success()); } } else { return(ProgressResult.Error("评分失败,项目或志愿者不存在.")); } }
public ProgressResult EditScore(Volunteer volunteer, Project project, CreditRecord.CreditScore score) { CreditRecord crecord = database.CreditRecords.SingleOrDefault(r => r.Participant.UID == volunteer.UID && r.Project.Id == project.Id); if (crecord == null) { return(ProgressResult.Error("不存在对应的征信记录.")); } else { try { volunteer.DeleteCredit(crecord.Score); volunteer.AddCredit(score); crecord.Score = score; Save(); return(ProgressResult.Success()); } catch (Exception) { throw; } } }