Пример #1
0
        ImageGetDto IImageBusinessLogic.Create(ImageCreateDto imageCreateDto)
        {
            string imageType = string.Empty;

            byte[] imageBytes = Array.Empty <byte>();
            Base64Extractor.Extract(imageCreateDto.Image, ref imageType, ref imageBytes);

            string imageUrl = $"{imageCreateDto.Prefix}/{Guid.NewGuid().ToString()}";

            fileRepository.Create(imageUrl, imageBytes);

            ImageInfo imageInfo = new ImageInfo()
            {
                FilePath  = imageUrl,
                ImageType = imageType
            };

            imageInfoRepository.Create(imageInfo);

            return(new ImageGetDto()
            {
                Id = imageInfo.Id,
                Url = $"api/v1/images/{imageInfo.Id}/image"
            });
        }
Пример #2
0
        public void Base64Extractor_Returns_ElasticBase64()
        {
            var extractor = new Base64Extractor();
            var actual    = extractor.GetValue(dataElements, "10");

            actual.Value.StartsWith("/9j/4AAQSkZJRgABA");
            actual.MimeType.Should().Be("image/jpeg");
        }
        private object GetValue(List <DataElement> detailData, FieldConfiguration fieldConfiguration)
        {
            object retVal = null;

            try
            {
                switch (fieldConfiguration.Type)
                {
                case ElasticFieldTypes.TypeString:
                    var textExtractor = new TextExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, textExtractor);
                    break;

                case ElasticFieldTypes.TypeTimePeriod:
                    var timePeriodExtractor = new TimePeriodExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, timePeriodExtractor);
                    break;

                case ElasticFieldTypes.TypeDateWithYear:
                    var dateWithYearExtractor = new DateWithYearExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, dateWithYearExtractor);
                    break;

                case ElasticFieldTypes.TypeBase64:
                    var elasticBase64Extractor = new Base64Extractor();
                    retVal = GetValue(detailData, fieldConfiguration, elasticBase64Extractor);
                    break;

                case ElasticFieldTypes.TypeInt + "?":
                case ElasticFieldTypes.TypeInt:
                    var intExtractor = new IntExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, intExtractor);
                    break;

                case ElasticFieldTypes.TypeBool + "?":
                case ElasticFieldTypes.TypeBool:
                    var boolExtractor = new BoolExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, boolExtractor);
                    break;

                case ElasticFieldTypes.TypeFloat + "?":
                case ElasticFieldTypes.TypeFloat:
                    var floatExtractor = new FloatExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, floatExtractor);
                    break;

                case ElasticFieldTypes.TypeHyperlink:
                    var hyperlinkExtractor = new HyperlinkExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, hyperlinkExtractor);
                    break;

                case ElasticFieldTypes.TypeEntityLink:
                    var entityLinkExtractor = new EntityLinkExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, entityLinkExtractor);
                    break;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                throw;
            }

            return(retVal);
        }