private void AddNew(UserTrait userTrait, int sequence) { bool valid = (_prefServices.ValidatePreference(userTrait.StrainId, userTrait.TraitId, userTrait.MinValue, userTrait.MaxValue, userTrait.RangeMinValue, userTrait.RangeMaxValue, _currentUserId, PreferenceYear) == null); if (!valid) return; var p = new Preference { UserId = _currentUserId, Year = PreferenceYear, StrainId = userTrait.StrainId, TraitId = userTrait.TraitId, MinValue = userTrait.MinValue, MaxValue = userTrait.MaxValue, Comment = userTrait.Comment, Sequence = sequence }; _prefRepository.Add(p); }
private IEnumerable<UserTrait> LoadUserTraitList(ICollection<Preference> userPrefs) { var isbreeder = (System.Web.HttpContext.Current.User.IsInRole("Breeder")); var strains = _prefRepository.GetStrainList(); var traits = _prefServices.GetTraitList(isbreeder); var list = new Collection<UserTrait>(); foreach (var s in strains) { var strainid = s.StrainId; foreach (var t in traits) { var up = new UserTrait(); var p = userPrefs.Where(x => x.StrainId == strainid).SingleOrDefault(x => x.TraitId == t.TraitId); var r = t.Ranges.SingleOrDefault(x => x.StrainId == s.StrainId); var rangemin = (r != null) ? r.MinValue : ""; var rangemax = (r != null) ? r.MaxValue : ""; var rangestep = (r != null) ? r.Increment : ""; var minvalue = (p != null) ? p.MinValue : (t.InputTypeId == Constants.InputTypeIdRadio) ? "10" : (r != null) ? r.MinValue : ""; var maxvalue = (p != null) ? p.MaxValue : (t.InputTypeId == Constants.InputTypeIdRadio) ? "10" : (r != null) ? r.MaxValue : ""; var unit = (t.Unit != null) ? "(" + t.Unit.Description + ")" : ""; up.UserId = _currentUserId; up.TraitId = t.TraitId; up.Trait = t.Description + " " + unit; up.InputType = t.InputType.Description; up.Selected = (p != null); up.StrainId = s.StrainId; up.Strain = (p != null) ? p.Strain.Description : ""; up.MinValue = minvalue; up.MaxValue = maxvalue; up.RangeMinValue = rangemin; up.RangeMaxValue = rangemax; up.RangeIncrement = rangestep; up.Comment = (p != null) ? p.Comment : ""; up.Sequence = (p != null) ? p.Sequence : 999999; list.Add(up); } } return list.OrderBy(x => x.Sequence).ToList(); }