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