Well put your logic into a method:
private string GetVColorForCurrentUser()
{
string[] roles = Roles.GetRolesForUser();
string color = roles[0];
string vcolor = color.Substring(0, 4);
switch (vcolor)
{
case "Rewa":
return "white";
case "Ukau":
return "black";
case "Whau":
return "green";
case "Angi":
return "Blue";
}
return vcolor;
}
and then call this method:
public ActionResult _MembersView()
{
var pagenew = db
.Members
.Where(u => u.color == GetVColorForCurrentUser())
.OrderBy(u => u.Tcd);
return PartialView(pagenew);
}
Or directly write it as a filter method:
private bool CurrentUserHasSameVColor(Member member)
{
string[] roles = Roles.GetRolesForUser();
string color = roles[0];
string vcolor = color.Substring(0, 4);
switch (vcolor)
{
case "Rewa":
vcolor = "white";
break;
case "Ukau":
vcolor = "black";
break;
case "Whau":
vcolor = "green";
break;
case "Angi":
vcolor = "Blue";
break;
}
return member.color == vcolor;
}
and then:
public ActionResult _MembersView()
{
var pagenew = db
.Members
.Where(CurrentUserHasSameVColor)
.OrderBy(u => u.Tcd);
return PartialView(pagenew);
}