public async Task <IActionResult> FamilyGallery(FamilyGalleryCreateModel newGallery) { var gallery = new Repo.Core.Model.Gallery() { ID = Guid.NewGuid(), DateCreated = DateTime.Now, Name = newGallery.Name, Summary = newGallery.Description, FamilyId = newGallery.FamilyId, FamilyEvent = newGallery.EventId.HasValue ? newGallery.EventId.Value : Guid.Empty, Owner = _contextService.LoggedInPerson.Id, GalleryDate = newGallery.GalleryDate }; await _writeModel.Save(gallery, new CancellationToken()); return(RedirectToAction("Index").WithSuccess("Gallery saved")); }
public async Task <IActionResult> EventGallery(EventGalleryCreateModel newGallery) { var gallery = new Repo.Core.Model.Gallery() { ID = Guid.NewGuid(), DateCreated = DateTime.Now, Name = newGallery.Name, Summary = newGallery.Description, FamilyEvent = newGallery.FamilyEventId, Owner = _contextService.LoggedInPerson.Id }; var cancellationToken = CancellationToken.None; await _writeModel.Save(gallery, cancellationToken); var events = (await _familyEventReadRepository.GetAllEvents(cancellationToken)).Select(Models.FamilyEvent.Map); return(View(new EventGalleryCreateModel(events)).WithSuccess("Gallery saved")); }
public static async Task <GalleryIndex> Map(Repo.Core.Model.Gallery sourceGallery, ClanAndPeopleService clanAndFamilyService, IFamilyEventReadRepository familyEventReadModel, CancellationToken cancellationToken) { var familyName = sourceGallery.FamilyId.HasValue ? $"{clanAndFamilyService.Clans.FirstOrDefault(c => c.Id == sourceGallery.FamilyId)?.FamilyName}, {clanAndFamilyService.Clans.FirstOrDefault(c => c.Id == sourceGallery.FamilyId)?.Family}" : string.Empty; return(await Task.FromResult(new GalleryIndex() { Title = sourceGallery.Name, FamilyEvent = FamilyEvent.Map(await familyEventReadModel.Load(sourceGallery.FamilyEvent, cancellationToken)), Owner = sourceGallery.Owner.ToString(), OwnerId = sourceGallery.Owner, Summary = sourceGallery.Summary, Id = sourceGallery.ID, DateCreated = sourceGallery.DateCreated, Family = familyName, DefaultFamilyEventGallery = sourceGallery.DefaultFamilyEventGallery, GalleryDate = sourceGallery.GalleryDate, Clan = clanAndFamilyService.Clans.FirstOrDefault(t => t.Id == sourceGallery.FamilyId) } )); }
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 })); }