public async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log)
        {
            try
            {
                var claims = req.GetClaimsPrincipal();

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

                var entity = new Facility
                {
                    PartitionKey = $"{DateTime.Now.Year}{DateTime.Now.Month}",
                    RowKey       = Guid.NewGuid().ToString(),
                    Timestamp    = _dateTimeService.TableEntityTimeStamp,
                    Name         = facility.Name,
                    Address      = facility.Address,
                    CreatedBy    = claims.ClientId(),
                    CreatedAt    = _dateTimeService.CurrentUtcDateTime
                };

                if (facility.Image != null)
                {
                    var resizedImage = await _imageProcessor.CompressAsync(facility.Image.Content, 50);

                    facility.Image.Content = resizedImage;
                    var imageUri = await _blobService.UploadImageAsync(facility.Image);

                    entity.PreviewUrl = imageUri.AbsoluteUri;
                }

                var result = await _facilityRepository.CreateAsync(entity);

                return(new OkObjectResult(result));
            }
            catch (Exception e)
            {
                return(new ExceptionResult(e, true));
            }
        }