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();
        }