public async Task <FileResult> Report(int Id) { try { this._logger.Information($"Start {nameof(Report)} Id = {Id}"); ISession session = _services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session; SessionLogIn ses = session.GetJson <SessionLogIn>("ses"); Employee employee = await _plinovodiDutyDataRead.GetEmployee(ses.EmployeeId); Duty duty = await _plinovodiDutyDataRead.GetDuty(Id); IEnumerable <Intervention> interventionList = await _plinovodiDutyDataRead.GetInterventions(Id); var stream = PlinovodiDezurstvaUtils.GenerateReport(employee, duty, interventionList); Response.Headers.Append("content-disposition", "inline; filename=file.pdf"); this._logger.Information($"End {nameof(Report)}"); return(File(stream.ToArray(), "application/pdf", $"{employee.Name}{employee.Surname}{duty.From.ToString("d.M.yy")}.pdf")); } catch (Exception ex) { this._logger.Error($"Error {nameof(Report)} {ex.Message} {ex.StackTrace}"); throw ex; } }
public async Task <RedirectToActionResult> LogIn(int employeeId, int dutyId) { try { this._logger.Information($"Start {nameof(LogIn)} employeeId = {employeeId} dutyId = {dutyId}"); Duty duty = await _plinovodiDutyDataRead.GetDuty(dutyId); ISession session = _services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session; SessionLogIn ses = new SessionLogIn(); ses.EmployeeId = employeeId; ses.DutyId = dutyId; DateTime day = duty.From; ses.DaysOfDuty.Add(day); for (int i = 0; i < 7; i++) { day = day.AddDays(1); ses.DaysOfDuty.Add(day); } session.SetJson("ses", ses); this._logger.Information($"End {nameof(LogIn)}"); return(RedirectToAction("Index", "Duty")); } catch (Exception ex) { this._logger.Error($"Error {nameof(LogIn)} {ex.Message} {ex.StackTrace}"); throw ex; } }