I have a dropdown list on my for populated with a list of US States populated from a lookup table and binded to a dropdown list. When my users create a new "Offer" the selected ID's of the States are stored in a Join table holding the OfferID and the corresponding StateID. I have this part working correctly, however, when I want to edit the offer and Select the various States that are stored as my "TargetStates" selected when creating the offer, I am having trouble comparing my TargetStates against the list of States used to populate all the States in the Dropdownlist.
I am using JQuery's mulitselect dropdown list in my form. I have 2 lists. One from my ViewModel EditOfferViewModel, and the other from my Offer Model with a list of States. How can I compare these two lists and select the populated DDL when the StateID in my ViewModel matches the SelectListItemID in the StateList?
Any help would be greatly Appreciated!!
Here is my Offer Model:
public partial class Offer : BaseModel
{
public Offer()
{
this.OfferTargetInviteStatus = new HashSet<OfferTargetInviteStatu>();
this.OfferTargetStates = new HashSet<OfferTargetState>();
}
[DataMember]
public long ID { get; set; }
[DataMember]
public string ProgramIdentifier { get; set; }
[DataMember]
public string PackageIdentifier { get; set; }
[DataMember]
public long LocationID { get; set; }
[DataMember]
public string DisplayName { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public decimal Price { get; set; }
[DataMember]
public string TargetGender { get; set; }
[DataMember]
public System.DateTime TargetAgeStartDate { get; set; }
[DataMember]
public System.DateTime TargetAgeEndDate { get; set; }
[DataMember]
public int ApplicantTypeID { get; set; }
[DataMember]
public bool IsActive { get; set; }
[DataMember]
public string CreatedBy { get; set; }
[DataMember]
public System.DateTime CreatedDate { get; set; }
[DataMember]
public Nullable<System.DateTime> LastModifiedDate { get; set; }
[DataMember]
public Nullable<System.DateTime> ArchiveDate { get; set; }
[DataMember]
public Nullable<System.DateTime> ExpiryDate { get; set; }
[DataMember]
public Nullable<long> OfferPhotoID { get; set; }
[DataMember]
public int OfferNotificationTypeID { get; set; }
[DataMember]
public string OfferBulletPoints { get; set; }
[DataMember]
public virtual ApplicantType ApplicantType { get; set; }
[DataMember]
public virtual Location Location { get; set; }
[DataMember]
public virtual NotificationType NotificationType { get; set; }
[DataMember]
public virtual OfferPhotograph OfferPhotograph { get; set; }
[DataMember]
public virtual ICollection<OfferTargetInviteStatu> OfferTargetInviteStatus { get; set; }
[DataMember]
public virtual ICollection<OfferTargetState> OfferTargetStates { get; set; }
public SelectList StateList { get; set; }
public SelectList StatusList { get; set; }
And here is my OfferTargetStates model:
public partial class OfferTargetState
{
[DataMember]
public long ID { get; set; }
[DataMember]
public long StateID { get; set; }
[DataMember]
public long OfferID { get; set; }
[DataMember]
public virtual State State { get; set; }
[DataMember]
public virtual Offer Offer { get; set; }
}
My EditOfferViewModel:
public class EditOfferViewModel
{
[DataMember]
public long Id { get; set; }
[DataMember]
public string SelectedProgramIdentifier { get; set; }
[DataMember]
public string SelectedPackageIdentifier { get; set; }
[DataMember]
public string DisplayName { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public decimal Price { get; set; }
[DataMember]
public string SelectedTargetGender { get; set; }
[DataMember]
public System.DateTime TargetAgeStartDate { get; set; }
[DataMember]
public System.DateTime TargetAgeEndDate { get; set; }
[DataMember]
public int ApplicantTypeID { get; set; }
[DataMember]
public string OfferBulletPoints { get; set; }
[DataMember]
public Nullable<System.DateTime> LastModifiedDate { get; set; }
[DataMember]
public Nullable<System.DateTime> ArchiveDate { get; set; }
[DataMember]
public Nullable<long> OfferPhotoID { get; set; }
[DataMember]
public virtual OfferPhotograph OfferPhotograph { get; set; }
[DataMember]
public virtual ICollection<OfferTargetState> SelectedOfferTargetStates { get; set; }
[DataMember]
public virtual ICollection<OfferTargetInviteStatu> SelectedOfferTargetInviteStatus { get; set; }
[DataMember]
public virtual ICollection<Location> Locations { get; set; }
[DataMember]
public virtual ICollection<State> States { get; set; }
[DataMember]
public SelectList StateList { get; set; }
[DataMember]
public SelectList StatusList { get; set; }
[DataMember]
public SelectList PackageList { get; set; }
[DataMember]
public List<SelectListItem> OfferProgramList { get; set; }
[DataMember]
public List<SelectListItem> OfferPackageList { get; set; }
}
An example of my States Table used to popluate my checkbox DDL:
and an example of my TargetStates Join table:
In short, I create a StateList of All States, and I need to compare my SelectedOfferTarget States against that list and select the ID's that match.
UI Example:
Code to populate State List DDL:

Thanks


