internal void Initialize(ISummaryProvider provider) { _provider = provider; txtNumber.Text = provider.ADNumber; dtpDate.Text = provider.ADDate; CheckSaveable(); }
public ActionResult GetClass(int classId, int subjectId, string summaryProviderTypeName) { var summaryProviderType = typeof(Program).Assembly.GetTypes().FirstOrDefault(t => t.Name == summaryProviderTypeName); ISummaryProvider summaryProvider = null; if (summaryProviderType != null) { summaryProvider = ActivatorUtilities.CreateInstance(serviceProvider, summaryProviderType) as ISummaryProvider; } var currentUser = loginService.GetCurrentLoggedInUser(HttpContext); var group = database.Groups .Include(g => g.Users) .Include(g => g.FormMaster) .GetById(classId); var users = group.Users .OrderBy(u => u.FullName) .AsEnumerable() .Select(u => new { Id = u.Id, FullName = u.FullName, LoginName = u.LoginName, PlatformId = u.PlatformId, Summary = summaryProvider?.GetSummary(u, database.Subjects.GetById(subjectId)) }); // Update history var historyEntries = database.TeacherClassHistory .Include(h => h.Teacher) .Include(h => h.Class) .Where(h => h.Teacher.Id == currentUser.Id && h.Class.Id == classId) .ToList(); database.TeacherClassHistory.RemoveRange(historyEntries); database.TeacherClassHistory.Add(new TeacherClassHistory { Class = database.Groups.GetById(classId), Teacher = currentUser }); database.SaveChanges(); return(Ok(new { Users = users, IsFormMaster = group.FormMaster?.Id == currentUser.Id, FirstAvailableSubjectId = currentUser.TaughtSubjects.FirstOrDefault()?.Id ?? -1 })); }
public static ISummaryProvider GetSummaryProvider() { Lock.EnterReadLock(); try { { if (_provider == null) { return new MockSummaryProvider(); if (Configuration.IsMock) _provider = new MockSummaryProvider(); else _provider = new SummaryProvider(); } } } finally { Lock.ExitReadLock(); } return _provider; }
private void lstList_SelectedIndexChanged(object sender, EventArgs e) { if (lstList.SelectedItems.Count > 0) { btnDelete.Enabled = true; btnAD.Enabled = true; ListViewItem item = lstList.SelectedItems[0]; string id = item.Tag.ToString(); DSResponse dsrsp = QueryStudent.GetUpdateRecordBatch(id); listView.SuspendLayout(); if (dsrsp.HasContent) { DSXmlHelper helper = dsrsp.GetContent(); provider = new SummaryProvider(helper); lblADCounter.Text = "【" + provider.Title + "】 各科人數統計"; lblADInfo.Text = "【" + provider.Title + "】 核准文號"; buttonX1.Visible = true; buttonX2.Visible = true; XmlNode contentNode = helper.GetElement("UpdateRecordBatch/Content"); if (contentNode == null) { return; } source = (XmlElement)contentNode.FirstChild; //處理看板資訊 StringBuilder builder = new StringBuilder(""); foreach (Department dept in provider.GetDepartments()) { builder = builder.Append("◎").Append(dept.Name).Append(" ") .Append("男生 <font color='blue'>").Append(dept.Male).Append("</font> 人 ") .Append("女生 <font color='blue'>").Append(dept.Female).Append("</font> 人 ") .Append("(合計 <font color='blue'>").Append(dept.Total).Append("</font> 人)"); if (dept.Unknow > 0) { builder = builder.Append("<font color='red'>").Append(dept.Unknow) .Append("</font>人未填性別"); } builder = builder.Append("<br/>"); } lblListContent.Text = builder.ToString(); lblADName1.Text = provider.Title; lblADName2.Text = provider.Title; lblADName3.Text = provider.Title; // 處理核准日期與文號 string adString = ""; if (!string.IsNullOrEmpty(provider.ADNumber)) { adString += "核准文號 <font color='red'>" + provider.ADNumber + "</font> "; adString += "核准日期 <font color='red'>" + provider.ADDate + "</font>"; } else { adString = "<font color='red'>未登錄</font>"; } lblAD.Text = adString; //處理ListView呈現資料 listView.Clear(); foreach (IEntryFormat format in provider.GetEntities()) { // 若無群組則先加上群組 if (listView.Groups[format.Group] == null) { listView.Groups.Add(format.Group, format.Group); } // 若沒有欄名則先加上欄名 if (listView.Columns.Count == 0) { foreach (string column in format.DisplayColumns.Keys) { listView.Columns.Add(column, format.DisplayColumns[column].Width); } } // 欄位都有了則依據欄位填入其屬性值 ListViewItem rowItem = null; for (int i = 0; i < listView.Columns.Count; i++) { string columnName = listView.Columns[i].Text; string value = format.DisplayColumns[columnName].Value; if (i == 0) { rowItem = new ListViewItem(value); } else { rowItem.SubItems.Add(value); } } rowItem.Tag = format; rowItem.Group = listView.Groups[format.Group]; listView.Items.Add(rowItem); } } listView.ResumeLayout(); } else { btnDelete.Enabled = false; btnAD.Enabled = false; } this.itemPanel1.RecalcLayout(); //this.itemPanel1.Refresh(); }
public WeatherForecastController(ILogger <WeatherForecastController> logger, ISummaryProvider summaryProvider) { _logger = logger; this.summaryProvider = summaryProvider; }