Ejemplo n.º 1
0
        public async void GetPlannedInspectionShouldReturnPlannedInspection(int plannedInspectionId, int employeeId,
                                                                            int festivalId)
        {
            PlannedInspection expected =
                _dbMock.Object.PlannedInspections.FirstOrDefault(p => p.Id == plannedInspectionId);

            Assert.Equal(expected, await _inspectionService.GetPlannedInspection(
                             _modelMocks.Festivals.First(f => f.Id == festivalId),
                             _modelMocks.Employees.First(e => e.Id == employeeId),
                             _modelMocks.PlannedInspections.First(p => p.Id == plannedInspectionId).StartTime));
        }
        public async Task <ActionResult> Draw()
        {
            var questionId          = int.Parse(Request.Form["QuestionId"]);
            var plannedInspectionId = int.Parse(Request.Form["plannedInspectionId"]);
            var plannedInspection   = await _inspectionService.GetPlannedInspection(plannedInspectionId);

            var fileAnswer = plannedInspection.Answers
                             .OfType <FileAnswer>()
                             .FirstOrDefault(e => e.Question.Id == questionId);

            if (fileAnswer == null)
            {
                return(RedirectToAction("Details", "inspection", new { id = plannedInspection.Id }));
            }

            fileAnswer.Question = await _questionnaireService.GetQuestion(questionId);

            var uploadPath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\Uploads");

            if (!Directory.Exists(uploadPath))
            {
                Directory.CreateDirectory(uploadPath);
            }

            var filePath = Path.Combine(uploadPath, $"{Guid.NewGuid()}.png");

            var formFile = Request.Form.Files[0];

            if (formFile.Length > 0)
            {
                await using var imageFile = new FileStream(filePath, FileMode.Create);
                await formFile.CopyToAsync(imageFile);
            }

            var answer = await _questionnaireService.GetAnswer <FileAnswer>(fileAnswer.Id);

            if (fileAnswer.Id != 0 && answer != null)
            {
                answer.UploadedFilePath = filePath.Replace(Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\"), "");
            }
            else
            {
                await _questionnaireService.CreateAnswer(fileAnswer);
            }


            await _questionnaireService.SaveChangesAsync();

            return(RedirectToAction("Details", "inspection", new { id = fileAnswer.PlannedInspection.Id }));
        }