Пример #1
0
        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);
        }
Пример #2
0
        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();
        }