// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } try { using (WebDBManager webm = new WebDBManager(Comm.SERVER_URL)) { bool result = await webm.Update(Project, "Project", Project.Id); if (!result) { return(StatusCode(400, Project)); } } } catch (Exception ex) { Console.WriteLine(ex); return(StatusCode(400, ex)); } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } try { using (WebDBManager webm = new WebDBManager(Comm.SERVER_URL)) { Project = await webm.ReadProjectAsync(id.Value); } } catch (Exception ex) { Console.WriteLine(ex); return(NotFound()); } if (Project == null) { return(NotFound()); } return(Page()); }
public async Task OnGetAsync(string sortOrder) { NameSort = string.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; DateSort = sortOrder == "Date" ? "date_desc" : "Date"; IEnumerable <PeriodReport> periods; using (WebDBManager webm = new WebDBManager(Comm.SERVER_URL)) { try { periods = await webm.ReadAllPeriodReportAsync(); // 初始化分類 HashSet <string> projectNames = new HashSet <string>(); var projects = await webm.ReadAllProjectsAsync(); foreach (var p in projects) { projectNames.Add(p.ProjectName); } // 這些沒用 projectNames.Remove(string.Empty); projectNames.Remove("WorlCard 8.6.2"); Genres = new SelectList(projectNames.ToList().OrderBy(x => x)); } catch (Exception ex) { Console.Write(ex); periods = new List <PeriodReport>(); } } // 分類 if (!string.IsNullOrEmpty(SelectedProject)) { periods = periods.Where(x => x.ProjectName == SelectedProject); } switch (sortOrder) { case "Date": Periods = periods.OrderBy(s => s.Date).ToList(); break; case "date_desc": Periods = periods.OrderByDescending(s => s.Date).ToList(); break; case "name_desc": Periods = periods.OrderByDescending(s => s.ProjectName).ToList(); break; default: // 預設是ProjectName排序 Periods = periods.ToList(); break; } }
public async Task OnGetAsync() { // calculate date DayOfWeek dayOfWeek = System.Globalization.CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(DateTime.Today); int shiftedDay = (int)dayOfWeek; DateTime startDay = DateTime.Today.AddDays(-shiftedDay); DateTime endDay = startDay.AddDays(7); IEnumerable <PeriodReport> alist; using (WebDBManager wdManager = new WebDBManager(Comm.SERVER_URL)) { alist = await wdManager.ReadPeriodReportAsync(startDay, endDay); } WeeklyReport = new List <AccumulatedReport>(); string pattern = @"^修正 *(M|m)antis *上的問題(:|:)"; Regex regex = new Regex(pattern); foreach (PeriodReport drm in alist) { AccumulatedReport ar = WeeklyReport.FirstOrDefault(x => x.ProjectId == drm.ProjectID); if (ar == null) { ar = new AccumulatedReport() { ProjectName = drm.ProjectName, ProjectId = drm.ProjectID, ProjectVersion = drm.Version }; WeeklyReport.Add(ar); } // check if line contains mantis number var match = regex.Match(drm.Message); if (match.Success) { // add mantis number to project string mantisLine = drm.Message.Substring(match.Length, drm.Message.Length - match.Length); string[] mantisItems = mantisLine.Split('、'); foreach (string item in mantisItems) { ar.MantisList.Add(item); } } else { // add message line to corresponding project ar.ProjectContent.Add(drm.Message); } } // sort and merge if (mergeSameProject) { WeeklyReport = MergeSameReports(WeeklyReport); } WeeklyReport.Sort(); }
// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { // The Page method creates a PageResult object that renders the Create.cshtml page. return(Page()); } using (WebDBManager webm = new WebDBManager(Comm.SERVER_URL)) { int projectId = await webm.TryAddProjectAsync(NewProject); NewDailyReport.ProjectId = projectId; NewDailyReport = await webm.AddNew <DailyReport>(NewDailyReport, nameof(DailyReport)); } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnGetAsync(int?pid, int?rid) { if (pid == null || rid == null) { return(NotFound()); } using (WebDBManager webm = new WebDBManager(Comm.SERVER_URL)) { Project project; DailyReport dailyReport; try { project = await webm.ReadProjectAsync(pid.Value); dailyReport = await webm.ReadDailyReportAsync(rid.Value); } catch (Exception ex) { Console.WriteLine(ex); return(NotFound()); } if (project == null || dailyReport == null) { return(NotFound()); } Period = new PeriodReport(); Period.ProjectName = project.ProjectName; Period.ProjectID = project.Id; Period.Version = project.Version; Period.ReoprtID = dailyReport.Id; Period.Date = dailyReport.Date; Period.Message = dailyReport.Message; } return(Page()); }