public async Task <IActionResult> UploadFiles(Guid galleryId, int FamilyImageId, List <IFormFile> files) { try { var cancellationToken = GetCancellationToken(); var gallery = await _readModel.Load(galleryId, cancellationToken); if (gallery == null) { return(BadRequest("Ïnvalid Gallery Id")); } foreach (var formFile in files) { var checkextension = Path.GetExtension(formFile.FileName).ToLower(); if (!_AllowedExtensions.Contains(checkextension)) { return(BadRequest($"Invalid file format {checkextension} on file {formFile.FileName}")); } var img = new ImageReferenceModel() { MimeType = formFile.ContentType, FileName = formFile.FileName, Id = Guid.NewGuid(), GalleryReference = galleryId, PersonId = FamilyImageId }; if (formFile.Length > 0) { using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream); var rotatedImage = RotateImage(stream); using (var rotatedStream = new MemoryStream()) { rotatedImage.Save(rotatedStream, GetRawFormat(formFile.FileName)); await _fileService.SaveFile(img.Id, galleryId.ToString(), rotatedStream, formFile.FileName, formFile.ContentType, cancellationToken); rotatedStream.Position = 0; var resized = FileResizer.GetFileResized(ReadFully(rotatedStream), 150); await _fileService.SaveFile(img.Id, $"{galleryId}/thumbnail", resized, formFile.FileName, formFile.ContentType, cancellationToken); await _imageReferenceWriteModel.Save(img.MapToEntity(), cancellationToken); } } } } return(await Task.FromResult(RedirectToAction("EditGalleryImages", new { id = gallery.ID }).WithSuccess("Image/s saved"))); } catch (Exception ex) { _logger.LogError(ex, "Failed to upload the image/s"); return(RedirectToAction("EditGalleryImages", new { id = galleryId }).WithError("Sorry - there has been an error saving the files. The error has been logged")); } }
public async Task <IActionResult> EditImage(Guid galleryId, Guid imageId) { var cancellationToken = GetCancellationToken(); var imgReference = await _imageReferenceReadRepository.Load(galleryId, imageId, cancellationToken); return(View(ImageReferenceModel.Map(imgReference))); }
public async Task <IActionResult> EditImage(ImageReferenceModel imageReferenceModel) { var cancellationToken = GetCancellationToken(); var imgReference = await _imageReferenceReadRepository.Load(imageReferenceModel.GalleryReference, imageReferenceModel.Id, cancellationToken); var imgRefToSave = new ImageReference { DefaultGalleryImage = imageReferenceModel.DefaultGalleryImage, Description = imageReferenceModel.Description, FileName = string.IsNullOrEmpty(imgReference.FileName) ? imgReference.Title : imgReference.FileName, //GalleryId = imageReferenceModel.GalleryReference, ID = imgReference.ID, ImageID = imgReference.ImageID, ImageLocation = imgReference.ImageLocation, MimeType = imgReference.MimeType, PersonId = imageReferenceModel.PersonId, Title = imageReferenceModel.Title }; await _imageReferenceWriteModel.Save(imgRefToSave, cancellationToken); return(RedirectToAction("Detail", new { id = imgRefToSave.ID })); }
/// <summary> /// 更新信息 /// </summary> public int UpdateInfo(SqlTransaction trans, ImageReferenceModel imaModel, long SN) { string key = "Cache_ImageReference_Model_" + SN; CacheHelper.RemoveCache(key); return(imaDAL.UpdateInfo(trans, imaModel, SN)); }
public static ArticleModel MapToDataModel(Domain.ArticleAggregate.Article domainModel, ArticleModel target = null) { if (target == null) { target = new ArticleModel(); } target.Id = domainModel.Id; target.Title = domainModel.Title; target.Content = domainModel.Content; target.PublishTime = domainModel.PublishTime; target.Thumbnail = ImageReferenceModel.FromDomainModel(domainModel.Thumbnail); target.IsPublished = domainModel.IsPublished; target.ArticleTags.Clear(); foreach (int tagId in domainModel.TagIds) { target.ArticleTags.Add(new ArticleTagModel { Article = target, ArticleId = target.Id, TagId = tagId }); } return(target); }
/// <summary> /// 从缓存读取信息 /// </summary> public ImageReferenceModel GetCacheInfo(SqlTransaction trans, long SN) { string key = "Cache_ImageReference_Model_" + SN; object value = CacheHelper.GetCache(key); if (value != null) { return((ImageReferenceModel)value); } else { ImageReferenceModel imaModel = imaDAL.GetInfo(trans, SN); CacheHelper.AddCache(key, imaModel, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(20), CacheItemPriority.Normal, null); return(imaModel); } }
public async Task <IActionResult> EventImage(FamilyEventImage imageWriteModel) { var cancellationToken = GetCancellationToken(); var gallery = await _galleryReadRepository.FindAllByFamilyEvent(imageWriteModel.FamilyEventId, GetCancellationToken()); if (!(gallery.Any() || gallery.Any(t => t.DefaultFamilyEventGallery))) { // is there an imagegallery for this event? var eventGallery = new Repo.Core.Model.Gallery() { ID = imageWriteModel.FamilyEventGalleryId, DateCreated = DateTime.Now, FamilyEvent = imageWriteModel.FamilyEventId, DefaultFamilyEventGallery = true, Name = string.Empty, Owner = _contextService.LoggedInPerson.Id }; await _galleryWriteRepository.Save(eventGallery, cancellationToken); imageWriteModel.FamilyEventGalleryId = eventGallery.ID; } else { imageWriteModel.FamilyEventGalleryId = gallery.First(g => g.DefaultFamilyEventGallery).ID; var imageReferences = await _imageReferenceReadRepository.LoadByGallery(imageWriteModel.FamilyEventGalleryId, cancellationToken); var currentDefaultImage = imageReferences.FirstOrDefault(t => t.DefaultGalleryImage); if (currentDefaultImage != null) { currentDefaultImage.DefaultGalleryImage = false; await _imageReferenceWriteModel.Save(currentDefaultImage, cancellationToken); } } var allowedExtensions = new[] { ".png", ".gif", ".jpg" }; var checkextension = Path.GetExtension(imageWriteModel.DefaultImage.FileName).ToLower(); if (!allowedExtensions.Contains(checkextension)) { return(BadRequest($"Invalid file format {checkextension} on file {imageWriteModel.DefaultImage.FileName}")); } var img = new ImageReferenceModel() { MimeType = imageWriteModel.DefaultImage.ContentType, Title = imageWriteModel.DefaultImage.FileName, Id = Guid.NewGuid(), GalleryReference = imageWriteModel.FamilyEventGalleryId, DefaultGalleryImage = true }; if (imageWriteModel.DefaultImage.Length > 0) { using (var stream = new MemoryStream()) { await imageWriteModel.DefaultImage.CopyToAsync(stream); stream.Position = 0; var resized = FileResizer.GetFileResized(ReadFully(stream), 150); await _fileService.SaveFile(img.Id, $"{imageWriteModel.FamilyEventGalleryId}/thumbnail", resized, imageWriteModel.DefaultImage.FileName, imageWriteModel.DefaultImage.ContentType, cancellationToken); await _imageReferenceWriteModel.Save(img.MapToEntity(), cancellationToken); } } return(Json(new { path = img.Id + "/thumbnail/" + img.Title, id = img.Id })); }
/// <summary> /// 插入信息 /// </summary> public int InsertInfo(SqlTransaction trans, ImageReferenceModel imaModel) { return(imaDAL.InsertInfo(trans, imaModel)); }
public static ImageReference ToBusinessModel(this ImageReferenceModel model) { return(new(model.Id, model.Info.ToBusinessModel(), model.QualityScore)); }