예제 #1
0
        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));
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }