public static List <WorkerReport> GetWorkerReport(DateTime dateFrom, DateTime dateTo) { MySqlCommand cmd = new MySqlCommand("GetWorkerReport", new MySqlConnection(connectionString)); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new MySqlParameter(("_dateFrom"), dateFrom)); cmd.Parameters.Add(new MySqlParameter(("_dateTo"), dateTo)); cmd.Connection.Open(); MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); List <WorkerReport> workerReports = new List <WorkerReport>(); while (rdr.Read()) { WorkerReport workerReport = new WorkerReport(); workerReport.workerName = rdr[0].ToString(); workerReport.workerSurname = rdr[1].ToString(); workerReport.date = DateTime.Parse(rdr[2].ToString()); workerReport.distance = double.Parse(rdr[3].ToString()); workerReports.Add(workerReport); } rdr.Close(); return(workerReports); }
public async Task <IActionResult> Edit(int id, [Bind("ID,Hours,Costs,Date,EmployeeID,ProjectID,TaskID")] WorkerReport workerReport) { if (id != workerReport.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(workerReport); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WorkerReportExists(workerReport.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["EmployeeID"] = new SelectList(_context.Employees, "ID", "FullName", workerReport.EmployeeID); ViewData["ProjectID"] = new SelectList(_context.Projects, "ID", "Name", workerReport.ProjectID); ViewData["TaskID"] = new SelectList(_context.Tasks, "ID", "Description", workerReport.TaskID); return(View(workerReport)); }
public async Task <IActionResult> Create([Bind("ID,Hours,Costs,Date,EmployeeID,ProjectID,TaskID")] WorkerReport workerReport) { if (ModelState.IsValid) { _context.Add(workerReport); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["EmployeeID"] = new SelectList(_context.Employees, "ID", "FullName", workerReport.EmployeeID); ViewData["ProjectID"] = new SelectList(_context.Projects, "ID", "Name", workerReport.ProjectID); ViewData["TaskID"] = new SelectList(_context.Tasks, "ID", "Description", workerReport.TaskID); return(View(workerReport)); }
private async Task RunAsync(CancellationToken cancellationToken) { AzureQueue queue = new AzureQueue(); DBHandler db = new linqDBHandler(); ExcelBuilder builder = new ExcelBuilder(); AzureBlob blob = new AzureBlob(); while (!cancellationToken.IsCancellationRequested) { var message = await queue.deleteMessageAsync(); string[] splitted = message.Split(','); DateTime weekDate = DateTime.Parse(splitted[1]); long userId; long.TryParse(splitted[0], out userId); List <Clock> clocks = db.getClocks(userId, weekDate); List <string> columns = new List <string>(); columns.Add("Company"); columns.Add("Start Time"); columns.Add("End Time"); List <List <string> > rows = new List <List <string> >(); foreach (Clock shift in clocks) { List <string> row = new List <string>(); row.Add(shift.Shift.Company.name); row.Add(shift.startTime.ToString()); row.Add(shift.endTime.ToString()); rows.Add(row); } Workbook workBook = builder.write(columns, rows); workBook.SaveAs("temp.xlsx"); string url = await blob.uploadFileAsync("temp.xlsx", userId + "_" + weekDate + ".xlsx"); File.Delete("temp.xlsx"); WorkerReport workerReport = new WorkerReport(); workerReport.workerId = userId; workerReport.url = url; workerReport.date = weekDate; db.addWorkerReport(workerReport); Trace.TraceInformation("new report : " + url); } }
public void GenerateWorkerReport() { employeeReports.Clear(); int toPassDaysOff = 0; int toPassDaysWorked = 0; foreach (Worker item in App.WorkerList) { if (App.Requests.Count > 0) { var workersRequestList = App.Requests.Where(u => u.EmployeeID == item.ID).ToList(); if (workersRequestList != null) { toPassDaysOff = workersRequestList.Where(u => u.Approved == true).Select(u => u.Approved).Count(); } } if (App.Labors.Count > 0) { var workersLaborList = App.Labors.Where(u => u.EmployeeID == item.ID).ToList(); if (workersLaborList != null) { toPassDaysWorked = workersLaborList.Where(u => u.TimeDateStart != null).Select(u => u.TimeDateStart.Value.Date).GroupBy(u => u.Date).Count(); } } WorkerReport workerReport = new WorkerReport() { WorkerLastName = item.WorkerLastName, DaysOff = toPassDaysOff, DaysWorked = toPassDaysWorked }; employeeReports.Add(workerReport); } }