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" }); }
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); }