public HttpResponseMessage FetchTimeLog(HttpRequestMessage request) { try { if (request.Content.Headers.ContentType.MediaType != "application/json") { return(new HttpResponseMessage(HttpStatusCode.UnsupportedMediaType)); } var jsonData = request.Content.ReadAsStringAsync().Result; var data = JObject.Parse(jsonData); var fromDate = DateTime.Parse((string)data["from"]); var toDate = DateTime.Parse((string)data["to"]); var empNr = Thread.CurrentPrincipal.Identity.Name; var result = timeLogModule.FetchLog(empNr, projectModule.ProjectList(empNr), fromDate, toDate); if (result.Rows.Count == 0) { return(new HttpResponseMessage(HttpStatusCode.NoContent)); } return(new HttpResponseMessage(HttpStatusCode.Accepted) { Content = new JsonContent(ApiHelper.DataTableToJson(result)) }); } catch (Exception e) { return(new HttpResponseMessage(HttpStatusCode.BadRequest)); } }
/// <summary> /// The create data source. /// </summary> /// <param name="date"> /// The date. /// </param> /// <returns> /// The <see cref="DataTable"/>. /// </returns> private DataTable CreateDataSource() { var date = (DateTime)(this.Session["Date"] ?? DateTime.Today); var startOfWeek = date.AddDays(-1 * (int)date.DayOfWeek); var projectList = projectModule.ProjectList(this.Session["EmpNr"] as string); var dt = timeLogModule.FetchLog(this.Session["EmpNr"] as string, projectList, startOfWeek, startOfWeek.AddDays(7)); this.Session["GridTable"] = dt; return(dt); }
/// <summary> /// The create data source. /// </summary> /// <param name="date"> /// The date. /// </param> /// <returns> /// The <see cref="DataTable"/>. /// </returns> private DataTable CreateDataSource() { var date = (DateTime)(this.Session["Date"] ?? DateTime.Today); var startOfWeek = date.AddDays(-1 * (int)date.DayOfWeek); var projectList = projectModule.ProjectList(this.Session["EmpNr"] as string); var dt = timeLogModule.FetchLog(this.Session["EmpNr"] as string, projectList, startOfWeek, startOfWeek.AddDays(7)); var grid = new DataTable(); grid.Columns.Add("WorkDay"); grid.PrimaryKey = new[] { grid.Columns["WorkDay"] }; grid.Columns.AddRange(projectList.Select(x => new DataColumn($"{x}")).ToArray()); for (var i = startOfWeek; i < startOfWeek.AddDays(7); i = i.AddDays(1)) { grid.Rows.Add(i.ToShortDateString()); } grid.BeginLoadData(); foreach (DataRow dtrow in dt.Rows) { var itemArray = new string[dtrow.ItemArray.Length]; itemArray[0] = DateTime.Parse(dtrow.ItemArray[0].ToString()).ToShortDateString(); for (var i = 1; i < dtrow.ItemArray.Length; i++) { itemArray[i] = dtrow.ItemArray[i].ToString(); } grid.LoadDataRow(itemArray.Select(x => (object)x).ToArray(), LoadOption.OverwriteChanges); } grid.EndLoadData(); this.Session["GridTable"] = grid; return(grid); }