I am using MVC-Viewmodel and EF model first for my projekt
These are my Viewmodels i’m using for my index view:
public class IndexViewModel
{
public List<QuestionViewModel> Questionlist { get; set; }
}
&
public class QuestionViewModel
{
public string QuestionText { get; set; }
public List<string> CoreValues { get; set; }
public List<string> SubjectTypes { get; set; }
public int QID { get; set; }
}
}
This is my Controller action:
public ActionResult Index()
{
List<Question> ListQuestions = Arep.getallquestion();
var model = new IndexViewModel();
model.Questionlist = new List<QuestionViewModel>();
foreach (var item in ListQuestions)
{
var QuestionViewModel = new QuestionViewModel();
model.Questionlist.Add(QuestionViewModel);
QuestionViewModel.QuestionText = item.QuestionText;
QuestionViewModel.QID = item.QID;
QuestionViewModel.CoreValues = new List<string>();
foreach (var Corevalue in item.CoreValue)
{
QuestionViewModel.CoreValues.Add(Corevalue.Cname);
}
QuestionViewModel.SubjectTypes = new List<string>();
foreach (var SubjectType in item.SubjectType)
{
QuestionViewModel.SubjectTypes.Add(SubjectType.Sname);
}
}
return View(model);
}
What my view UI does is displays lists with Questions.QuestionText that are related to a CoreValue.Cname and SubjectType.Sname. Question can have many CoreValues and SubjectType.
I would like to know how this code would look with use of Automapper, I would appreciate it alot!
Thanks in Advance!
Best regards!
Untested, but :
First, You have the CreateMap part (usually somehwere in global.asax.cs)
Then in your controller,
By the way, the code of your controller (without automapper) could be much more concise with a simple linq query !