예제 #1
0
        public async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function,
                                                           "put",
                                                           Route = "facilities/{facilityId}/audits/{auditId}")]
                                              HttpRequest req,
                                              ILogger log, string facilityId, string auditId)
        {
            try
            {
                var facility = _facilityRepository.FindById(facilityId);
                if (facility == null)
                {
                    return(new NotFoundResult());
                }

                var audit = _auditRepository.FindById(auditId);
                if (audit == null)
                {
                    return(new NotFoundResult());
                }

                var claims = req.GetClaimsPrincipal();

                var requestBody = await new StreamReader(req.Body).ReadToEndAsync();
                var auditDto    = JsonConvert.DeserializeObject <AuditDto>(requestBody);

                await ProcessPhotosAsync(auditDto.Groups);

                var groups = auditDto.Groups.Select(x => x.CreateEntity()).ToList();

                audit.StartTimeUtc  = auditDto.StartTimeUtc;
                audit.FinishTimeUtc = auditDto.FinishTimeUtc;
                audit.GroupsJson    = JsonConvert.SerializeObject(groups);
                audit.ModifiedBy    = claims.ClientId();
                audit.ModifiedAt    = _dateTimeService.CurrentUtcDateTime;

                var result = await _auditRepository.UpdateAsync(audit);

                return(new OkObjectResult(result));
            }
            catch (Exception e)
            {
                return(new ExceptionResult(e, true));
            }
        }
예제 #2
0
        public async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "audits/{id}")]
                                              HttpRequest req, ILogger log, string id)
        {
            var audit = _auditRepository.FindById(id);

            if (audit == null)
            {
                return(new NotFoundResult());
            }

            var auditViewDto = new AuditDto
            {
                Id            = audit.RowKey,
                FacilityId    = audit.FacilityId,
                StartTimeUtc  = audit.StartTimeUtc,
                FinishTimeUtc = audit.FinishTimeUtc,
                Groups        = JsonConvert.DeserializeObject <IList <AuditItemGroupDto> >(audit.GroupsJson)
            };

            return(new OkObjectResult(auditViewDto));
        }