private Image Create(int serviceSupplierId, Models.Requests.AccommodationImage image) => new Image { ReferenceId = image.AccommodationId, ImageType = ImageTypes.AccommodationImage, OriginalImageDetails = new OriginalImageDetails { OriginalName = image.UploadedFile.FileName, OriginalContentType = image.UploadedFile.ContentType }, ServiceSupplierId = serviceSupplierId, Created = _dateTimeProvider.UtcNow(), Description = JsonDocumentUtilities.CreateJDocument(new MultiLanguage <string> { Ar = string.Empty, En = string.Empty, Ru = string.Empty }) };
public Task <Result <Guid> > Add(Models.Requests.AccommodationImage image) { return(_managerContext.GetServiceSupplier() .Check(serviceSupplier => _serviceSupplierContext.EnsureAccommodationBelongsToServiceSupplier(serviceSupplier, image.AccommodationId)) .Bind(serviceSupplier => Validate(image, serviceSupplier)) .Tap(serviceSupplier => ResortImages(serviceSupplier.Id, image.AccommodationId, ImageTypes.AccommodationImage)) .Map(serviceSupplier => Create(serviceSupplier.Id, image)) .Ensure(dbImage => ValidateImageType(image.UploadedFile).Value, "Invalid image file type") .Bind(dbImage => ConvertAndUpload(dbImage, image.UploadedFile)) .Bind(AddSlimImageToAccommodation)); Result <ServiceSupplier> Validate(Models.Requests.AccommodationImage image, ServiceSupplier serviceSupplier) { var validationResult = ValidationHelper.Validate(image, new AccommodationImageValidator()); return(validationResult.IsFailure ? Result.Failure <ServiceSupplier>(validationResult.Error) : Result.Success(serviceSupplier)); } }
public async Task <Result <Guid> > Add(Models.Requests.AccommodationImage image) { throw new NotImplementedException(); }