public static List <String> GetProjects(StudentFinalRates stud) { try { using (var connection = new SqlConnection(connectionString)) { connection.Open(); var command = connection.CreateCommand(); SqlDataAdapter d = new SqlDataAdapter("select ProjectName,ProjectPath from Projects a where a.@group > 1" + "and a.@field > 1 and a.ProjectName in (select ProjectName from ProjectLang b where b.@language)" + "and a.ProjectName in(select ProjectName from ProjectKind c where c.@Kind) LIMIT 3", connection); d.SelectCommand.CommandText = d.SelectCommand.CommandText.Replace("@group", stud.GroupSize[0]) .Replace("@language", stud.FavoriteLang[0]) .Replace("@Kind", stud.KindOfProject[0]).Replace("@field", stud.FieldOfProject[0]); DataTable t = new DataTable(); d.Fill(t); //לטפל במקרה ששאילתא לא מגיעה ל3 הצעות if (t.Rows.Count < 3) { d.SelectCommand.CommandText = "select ProjectName,ProjectPath from Projects a where a.@group > 1" + "and a.@field > 1 and a.ProjectName in (select ProjectName from ProjectLang b where b.@language)" + "and a.ProjectName in(select ProjectName from ProjectKind c where c.@Kind) LIMIT 3"; d.SelectCommand.CommandText = d.SelectCommand.CommandText.Replace("@group", stud.GroupSize[0]) .Replace("@language", stud.FavoriteLang[0]) .Replace("@Kind", stud.KindOfProject[0]).Replace("@field", stud.FieldOfProject[0]); } } return(null); } catch (Exception) { return(null); } }
public static StudentFinalRates GetFinalRates(string uname, Dictionary <string, int> dic, int kindAmount, int langAmount) { StudentFinalRates retval = new StudentFinalRates(); retval.UserName = uname; retval.FavoriteLang = getMax3(getSpecDic(dic, langAmount, dic.Count)); retval.KindOfProject = getMax3(getSpecDic(dic, kindAmount, langAmount)); retval.GroupSize = getGroup(dic); retval.FieldOfProject = getfield(dic); return(retval); }
public static StudentFinalRates GetFinalRates(string uname) { try { using (var connection = new SqlConnection(connectionString)) { connection.Open(); StudentFinalRates stud = new StudentFinalRates(); SqlDataAdapter d = new SqlDataAdapter("select * from StudentPref where UserName = @userName", connection); d.SelectCommand.CommandText = d.SelectCommand.CommandText.Replace("@userName", uname); DataTable t = new DataTable(); Dictionary <string, int> dic = new Dictionary <string, int>(); d.Fill(t); int splen = t.Columns.Count; d.SelectCommand.CommandText = "select * from StudentsPrefKind where UserName = @userName"; d.SelectCommand.CommandText = d.SelectCommand.CommandText.Replace("@userName", uname); d.Fill(t); int spklen = t.Columns.Count; d.SelectCommand.CommandText = "select * from StudentsPrefLanguage where UserName = @userName"; d.SelectCommand.CommandText = d.SelectCommand.CommandText.Replace("@userName", uname); d.Fill(t); int row = 0; string s = t.Rows[0][0].ToString(); for (int i = 1; i < t.Columns.Count; i++) { if (i == splen) { row = 1; } if (i == spklen) { row = 2; } dic.Add(t.Columns[i].ColumnName, (int)t.Rows[row][i]); } stud = FinalStudPref.GetFinalRates(t.Rows[0][0].ToString(), dic, splen - 1, spklen - 1); return(stud); } } catch (Exception) { return(null); } }
private static string getlongest(StudentFinalRates stud) { int groupCount = stud.GroupSize.Count; int kindCount = stud.KindOfProject.Count; int fieldCount = stud.FieldOfProject.Count; int langCount = stud.FavoriteLang.Count; if (groupCount > kindCount) { if (groupCount > fieldCount) { if (groupCount > langCount) { return("group"); } return("field"); } if (fieldCount > langCount) { return("field"); } return("lang"); } if (kindCount > fieldCount) { if (kindCount > langCount) { return("kind"); } return("lang"); } if (fieldCount > langCount) { return("field"); } return("lang"); }