public Timesheet.Employee GetEmployee(string employeeToken) { TimesheetDS.EmployeeDataTable dt = new TimesheetDS.EmployeeDataTable(); TimesheetDSTableAdapters.EmployeeTableAdapter adapter = new TimesheetDSTableAdapters.EmployeeTableAdapter(); Timesheet.Employee emp = new Timesheet.Employee(); Guid employeeGUID = Guid.Parse(employeeToken); adapter.Fill(dt, employeeGUID); emp.employeeToken = employeeGUID; emp.email = dt[0]["EmailAddress"].ToString(); emp.firstname = dt[0]["FirstName"].ToString(); emp.lastname = dt[0]["LastName"].ToString(); return(emp); }
private void BindGridAddTimesheet(List <DateTime> lsGuessedDates, float lunch = 0.5f) { totalHours = 0.0f; Timesheet.Timesheet ts = new Timesheet.Timesheet(); _dtNewTimesheet = new DataTable(); _dtNewTimesheet.TableName = "EmployeeTimesheets"; _dtNewTimesheet.Columns.Add(new DataColumn("Date", typeof(DateTime))); _dtNewTimesheet.Columns.Add(new DataColumn("Time Begin", typeof(DateTime))); // Time Start _dtNewTimesheet.Columns.Add(new DataColumn("Time End", typeof(DateTime))); _dtNewTimesheet.Columns.Add(new DataColumn("Lunch", typeof(double))); _dtNewTimesheet.Columns.Add(new DataColumn("Hours", typeof(double))); _dtNewTimesheet.Columns.Add(new DataColumn("Synopsis", typeof(string))); //Format new DataTable for conversion to TImesheet _dtNewTimesheet_Formatted = _dtNewTimesheet.Copy(); //new - fill _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("EmployeeToken", typeof(string))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("DateDescription", typeof(string))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("FirstName", typeof(string))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("LastName", typeof(string))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("DefaultEmailAddress", typeof(string))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("Month", typeof(int))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("Year", typeof(int))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("Quarter", typeof(int))); _dtNewTimesheet_Formatted.Columns.Add(new DataColumn("TotalHours", typeof(string))); _dtNewTimesheet_Formatted.Columns["Time Begin"].ColumnName = "StartHours"; _dtNewTimesheet_Formatted.Columns["Time End"].ColumnName = "EndHours"; // Get Guessed timesheet period dates, pre-fill datagridview rows; DateTime dtFromDate = lsGuessedDates[0]; DateTime dtToDate = lsGuessedDates[1]; DateTime dtFromTime = new DateTime(dtFromDate.Year, dtFromDate.Month, dtFromDate.Day, 8, 30, 00, 00); DateTime dtToTime = new DateTime(dtFromDate.Year, dtFromDate.Month, dtFromDate.Day, 17, 00, 00, 00); int inc = 0; for (DateTime date = dtFromDate.Date; date <= dtToDate; date = date.AddDays(1)) { DataRow row = _dtNewTimesheet.NewRow(); DataRow rowFormatted = _dtNewTimesheet_Formatted.NewRow(); // Do one for this dt as well _dtNewTimesheet.Rows.Add(row); _dtNewTimesheet_Formatted.Rows.Add(rowFormatted); // Do one for this dt as well if (date.DayOfWeek.ToString() == "Saturday" || date.DayOfWeek.ToString() == "Sunday") { // Notta } else { // original dt _dtNewTimesheet.Rows[inc]["Date"] = date; _dtNewTimesheet.Rows[inc]["Time Begin"] = dtFromTime; _dtNewTimesheet.Rows[inc]["Time End"] = dtToTime; // copy _dtNewTimesheet_Formatted.Rows[inc]["Date"] = date; _dtNewTimesheet_Formatted.Rows[inc]["StartHours"] = dtFromTime; _dtNewTimesheet_Formatted.Rows[inc]["EndHours"] = dtToTime; TimeSpan duration = new TimeSpan(dtFromTime.Ticks - dtToTime.Ticks); float rowHours = duration.TotalFloatHours(); float rowTotalHours = rowHours - lunch; rowTotalHours.Truncate(2); _dtNewTimesheet.Rows[inc]["Lunch"] = lunch; _dtNewTimesheet.Rows[inc]["Hours"] = rowTotalHours; //Copy _dtNewTimesheet_Formatted.Rows[inc]["Lunch"] = lunch; _dtNewTimesheet_Formatted.Rows[inc]["Hours"] = rowTotalHours; totalHours += rowHours - lunch; int quarter = dtFromDate.Day >= 1 && dtFromDate.Day <= 15 ? 1 : 2; if (_tsList.Count == 0) { string serviceUrlGetEmployee; serviceUrlGetEmployee = _urlGetEmployee + Properties.Settings.Default.EmployeeToken.ToString(); var request = (HttpWebRequest)WebRequest.Create(serviceUrlGetEmployee); request.Method = "GET"; var response = (HttpWebResponse)request.GetResponse(); var dataContractSerializier = new DataContractSerializer(typeof(Timesheet.Employee)); using (var responseStream = response.GetResponseStream()) { emp = (Timesheet.Employee)dataContractSerializier.ReadObject(responseStream); } response.Close(); _dtNewTimesheet_Formatted.Rows[inc]["TotalHours"] = totalHours; _dtNewTimesheet_Formatted.Rows[inc]["FirstName"] = emp.firstname.ToString(); _dtNewTimesheet_Formatted.Rows[inc]["LastName"] = emp.lastname.ToString(); _dtNewTimesheet_Formatted.Rows[inc]["EmployeeToken"] = emp.employeeToken; _dtNewTimesheet_Formatted.Rows[inc]["DefaultEmailAddress"] = emp.email.ToString(); _dtNewTimesheet_Formatted.Rows[inc]["Month"] = dtFromDate.Month; _dtNewTimesheet_Formatted.Rows[inc]["Year"] = dtFromDate.Year; _dtNewTimesheet_Formatted.Rows[inc]["Quarter"] = quarter; } //Copy only if (_tsList.Count > 0) { _dtNewTimesheet_Formatted.Rows[inc]["TotalHours"] = totalHours; _dtNewTimesheet_Formatted.Rows[inc]["DateDescription"] = "Coming in v2"; _dtNewTimesheet_Formatted.Rows[inc]["FirstName"] = _tsList[0].employee.firstname.ToString(); _dtNewTimesheet_Formatted.Rows[inc]["LastName"] = _tsList[0].employee.lastname.ToString(); _dtNewTimesheet_Formatted.Rows[inc]["EmployeeToken"] = _tsList[0].employee.employeeToken.ToString(); _dtNewTimesheet_Formatted.Rows[inc]["DefaultEmailAddress"] = _tsList[0].employee.email.ToString(); _dtNewTimesheet_Formatted.Rows[inc]["Month"] = dtFromDate.Month; _dtNewTimesheet_Formatted.Rows[inc]["Year"] = dtFromDate.Year; _dtNewTimesheet_Formatted.Rows[inc]["Quarter"] = quarter; } } inc++; } // SET U.I. GRID TO ORIGINAL DATA TABLE AND BIND _gridAddTimesheet.DataSource = _dtNewTimesheet; _gridAddTimesheet.Columns.Add(new DataGridViewCheckBoxColumn() { Name = "_delCol", HeaderText = "None", DisplayIndex = 0 }); //Time only in time fields _gridAddTimesheet.Columns["Time Begin"].DefaultCellStyle.Format = "hh:mm:ss tt"; _gridAddTimesheet.Columns["Time End"].DefaultCellStyle.Format = "hh:mm:ss tt"; _gridAddTimesheet.Columns["Lunch"].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; _lbl_AddTimesheet_TotalHoursValue.Text = totalHours.ToString(); _lbl_AddTimesheet_EmailValue.Text = _tsList.Count == 0 ? emp.email.ToString() : _tsList[0].employee.email.ToString(); /// FIX THIS _lbl_AddTimesheet_TimestampValue.Text = DateTime.Now.ToString(); }