Exemplo n.º 1
0
        public static PhotoArchiveEditViewModel MapToSctionCardViewModel(this PhotoArchive pgMinisty)
        {
            PhotoArchiveEditViewModel viewModel = new PhotoArchiveEditViewModel()
            {
                Id = pgMinisty.Id,
                EnPhotoArchiveName = pgMinisty.EnPhotoArchiveName,
                ArPhotoArchiveName = pgMinisty.ArPhotoArchiveName,
                EnPhotoArchiveDesc = pgMinisty.EnPhotoArchiveDesc,
                ArPhotoArchiveDesc = pgMinisty.ArPhotoArchiveDesc,
                IsActive           = pgMinisty.IsActive,
                Order            = pgMinisty.Order,
                IsDeleted        = pgMinisty.IsDeleted,
                ImageUrl         = pgMinisty.ImageUrl,
                SeoTitleEN       = pgMinisty.SeoTitleEN,
                SeoTitleAR       = pgMinisty.SeoTitleAR,
                SeoDescriptionEN = pgMinisty.SeoDescriptionEN,
                SeoDescriptionAR = pgMinisty.SeoDescriptionAR,
                SeoOgTitleEN     = pgMinisty.SeoOgTitleEN,
                SeoOgTitleAR     = pgMinisty.SeoOgTitleAR,
                SeoTwitterCardEN = pgMinisty.SeoTwitterCardEN,
                SeoTwitterCardAR = pgMinisty.SeoTwitterCardAR,

                EnPhotoArchiveType = pgMinisty.EnPhotoArchiveType,
                ArPhotoArchiveType = pgMinisty.ArPhotoArchiveType
            };

            return(viewModel);
        }
        private void AddPhotosAlbum(PhotoArchive photoArchive, List <PhotosAlbumVersion> photosAlbumVersion = null)
        {
            if (photosAlbumVersion == null)
            {
                var photoArchiveVersions = _db.PhotoArchiveVersions.Where(x => x.PhotoArchiveId == photoArchive.Id && !x.IsDeleted && x.IsActive && x.VersionStatusEnum != VersionStatusEnum.Ignored).Select(x => x.Id).ToList();

                var photosAlbumsVersion = _db.PhotosAlbumVersions.Where(x => photoArchiveVersions.Contains(x.PhotoArchiveVersionId)).ToList();

                var notMapedToAlbum = photosAlbumsVersion.Where(x => x.PhotosAlbumId == null);

                var mappedToAlpum = photosAlbumsVersion.Where(x => x.PhotosAlbumId != null).GroupBy(x => x.PhotosAlbumId).Select(g => g.OrderByDescending(c => c.Id).FirstOrDefault()).ToList();

                mappedToAlpum.AddRange(notMapedToAlbum);

                foreach (var item in mappedToAlpum)
                {
                    var newPhotoAlbum = new PhotosAlbum()
                    {
                        PhotoArchiveId    = photoArchive.Id,
                        Order             = item.Order,
                        ImageName         = item.ImageName,
                        ImagePath         = item.ImagePath,
                        SeoTwitterCardEN  = item.SeoTwitterCardEN,
                        SeoTwitterCardAR  = item.SeoTwitterCardAR,
                        SeoTitleEN        = item.SeoTitleEN,
                        SeoTitleAR        = item.SeoTitleAR,
                        SeoOgTitleEN      = item.SeoOgTitleEN,
                        SeoOgTitleAR      = item.SeoOgTitleAR,
                        SeoDescriptionEN  = item.SeoDescriptionEN,
                        SeoDescriptionAR  = item.SeoDescriptionAR,
                        IsActive          = item.IsActive,
                        ArPhotosAlbumDesc = item.ArPhotosAlbumDesc,
                        ArPhotosAlbumName = item.ArPhotosAlbumName,
                        CreationDate      = item.CreationDate,
                        CreatedById       = item.CreatedById,
                        IsDeleted         = item.IsDeleted,
                        EnPhotosAlbumDesc = item.EnPhotosAlbumDesc,
                        EnPhotosAlbumName = item.EnPhotosAlbumName,
                    };
                    _db.PhotosAlbum.Add(newPhotoAlbum);
                    _db.SaveChanges();
                    item.PhotosAlbumId = newPhotoAlbum.Id;
                }
            }
            else
            {
                foreach (var item in photosAlbumVersion)
                {
                    var newPhotoAlbum = new PhotosAlbum()
                    {
                        PhotoArchiveId    = photoArchive.Id,
                        Order             = item.Order,
                        ImageName         = item.ImageName,
                        ImagePath         = item.ImagePath,
                        SeoTwitterCardEN  = item.SeoTwitterCardEN,
                        SeoTwitterCardAR  = item.SeoTwitterCardAR,
                        SeoTitleEN        = item.SeoTitleEN,
                        SeoTitleAR        = item.SeoTitleAR,
                        SeoOgTitleEN      = item.SeoOgTitleEN,
                        SeoOgTitleAR      = item.SeoOgTitleAR,
                        SeoDescriptionEN  = item.SeoDescriptionEN,
                        SeoDescriptionAR  = item.SeoDescriptionAR,
                        IsActive          = item.IsActive,
                        ArPhotosAlbumDesc = item.ArPhotosAlbumDesc,
                        ArPhotosAlbumName = item.ArPhotosAlbumName,
                        CreationDate      = item.CreationDate,
                        CreatedById       = item.CreatedById,
                        IsDeleted         = item.IsDeleted,
                        EnPhotosAlbumDesc = item.EnPhotosAlbumDesc,
                        EnPhotosAlbumName = item.EnPhotosAlbumName,
                    };
                    _db.PhotosAlbum.Add(newPhotoAlbum);
                    _db.SaveChanges();
                    item.PhotosAlbumId = newPhotoAlbum.Id;
                }
            }

            _db.SaveChanges();
        }
 private void DeletePhotosAlbum(PhotoArchive photoArchive)
 {
     photoArchive.PhotosAlbums.ToList().ForEach(x => x.IsDeleted = true);
     _db.SaveChanges();
 }
        public bool Approve(int id, int approvalId, string userId)
        {
            var photoarchiveVer = _db.PhotoArchiveVersions.Include(x => x.PhotosAlbumVersions).FirstOrDefault(d => d.Id == id);

            if (photoarchiveVer != null)
            {
                var          pageRouteId = _db.PageRouteVersions.Find(photoarchiveVer.PageRouteVersionId).PageRouteId;
                PhotoArchive photoArchive;
                var          photosAlbumsVersion = photoarchiveVer.PhotosAlbumVersions;

                if (photoarchiveVer.ChangeActionEnum == ChangeActionEnum.New)
                {
                    photoArchive = new PhotoArchive
                    {
                        ApprovalDate       = DateTime.Now,
                        ApprovedById       = userId,
                        CreatedById        = photoarchiveVer.CreatedById,
                        CreationDate       = photoarchiveVer.CreationDate,
                        IsActive           = photoarchiveVer.IsActive,
                        SeoTwitterCardEN   = photoarchiveVer.SeoTwitterCardEN,
                        SeoTwitterCardAR   = photoarchiveVer.SeoTwitterCardAR,
                        SeoTitleEN         = photoarchiveVer.SeoTitleEN,
                        SeoTitleAR         = photoarchiveVer.SeoTitleAR,
                        SeoOgTitleEN       = photoarchiveVer.SeoOgTitleEN,
                        SeoOgTitleAR       = photoarchiveVer.SeoOgTitleAR,
                        SeoDescriptionEN   = photoarchiveVer.SeoDescriptionEN,
                        SeoDescriptionAR   = photoarchiveVer.SeoDescriptionAR,
                        Order              = photoarchiveVer.Order,
                        ArPhotoArchiveDesc = photoarchiveVer.ArPhotoArchiveDesc,
                        ArPhotoArchiveName = photoarchiveVer.ArPhotoArchiveName,
                        ArPhotoArchiveType = photoarchiveVer.ArPhotoArchiveType,
                        EnPhotoArchiveDesc = photoarchiveVer.EnPhotoArchiveDesc,
                        EnPhotoArchiveName = photoarchiveVer.EnPhotoArchiveName,
                        EnPhotoArchiveType = photoarchiveVer.EnPhotoArchiveType,
                        ImageUrl           = photoarchiveVer.ImageUrl,
                        IsDeleted          = false,
                        PageRouteId        = pageRouteId,
                    };
                    _db.PhotoArchive.Add(photoArchive);
                    _db.SaveChanges();

                    photoArchive = _db.PhotoArchive.FirstOrDefault(x => x.Id == photoArchive.Id);

                    AddPhotosAlbum(photoArchive, photoarchiveVer.PhotosAlbumVersions.ToList());

                    if (photoArchive.IsActive)
                    {
                        _photoArchiveElasticSearchService.AddAsync(photoArchive);
                    }
                }
                else if (photoarchiveVer.ChangeActionEnum == ChangeActionEnum.Update)
                {
                    photoArchive = _db.PhotoArchive.FirstOrDefault(x => x.Id == photoarchiveVer.PhotoArchiveId);
                    photoArchive.ApprovalDate = DateTime.Now;
                    photoArchive.ApprovedById = userId;

                    photoArchive.ApprovalDate       = DateTime.Now;
                    photoArchive.ApprovedById       = photoArchive.ApprovedById;
                    photoArchive.CreatedById        = photoarchiveVer.CreatedById;
                    photoArchive.CreationDate       = photoarchiveVer.CreationDate;
                    photoArchive.IsActive           = photoarchiveVer.IsActive;
                    photoArchive.IsDeleted          = photoarchiveVer.IsDeleted;
                    photoArchive.SeoTwitterCardEN   = photoarchiveVer.SeoTwitterCardEN;
                    photoArchive.SeoTwitterCardAR   = photoarchiveVer.SeoTwitterCardAR;
                    photoArchive.SeoTitleEN         = photoarchiveVer.SeoTitleEN;
                    photoArchive.SeoTitleAR         = photoarchiveVer.SeoTitleAR;
                    photoArchive.SeoOgTitleEN       = photoarchiveVer.SeoOgTitleEN;
                    photoArchive.SeoOgTitleAR       = photoarchiveVer.SeoOgTitleAR;
                    photoArchive.SeoDescriptionEN   = photoarchiveVer.SeoDescriptionEN;
                    photoArchive.SeoDescriptionAR   = photoarchiveVer.SeoDescriptionAR;
                    photoArchive.Order              = photoarchiveVer.Order;
                    photoArchive.ArPhotoArchiveDesc = photoarchiveVer.ArPhotoArchiveDesc;
                    photoArchive.ArPhotoArchiveName = photoarchiveVer.ArPhotoArchiveName;
                    photoArchive.ArPhotoArchiveType = photoarchiveVer.ArPhotoArchiveType;
                    photoArchive.EnPhotoArchiveDesc = photoarchiveVer.EnPhotoArchiveDesc;
                    photoArchive.EnPhotoArchiveName = photoarchiveVer.EnPhotoArchiveName;
                    photoArchive.EnPhotoArchiveType = photoarchiveVer.EnPhotoArchiveType;


                    _db.PhotoArchive.Update(photoArchive);


                    _db.SaveChanges();

                    photoArchive = _db.PhotoArchive.Include(x => x.PhotosAlbums).FirstOrDefault(x => x.Id == photoArchive.Id);

                    DeletePhotosAlbum(photoArchive);

                    AddPhotosAlbum(photoArchive);

                    if (photoArchive.IsActive)
                    {
                        _photoArchiveElasticSearchService.DeleteAsync(photoArchive);
                        _photoArchiveElasticSearchService.AddAsync(photoArchive);
                    }
                    else
                    {
                        _photoArchiveElasticSearchService.DeleteAsync(photoArchive);
                    }
                }
                else
                {
                    photoArchive           = _db.PhotoArchive.Find(photoarchiveVer.PhotoArchiveId);
                    photoArchive.IsDeleted = true;
                    _db.PhotoArchive.Update(photoArchive);
                    DeletePhotosAlbum(photoArchive);

                    _photoArchiveElasticSearchService.DeleteAsync(photoArchive);
                }



                _db.SaveChanges();

                photoarchiveVer.VersionStatusEnum = VersionStatusEnum.Approved;
                photoarchiveVer.PhotoArchiveId    = photoArchive.Id;
                _db.PhotoArchiveVersions.Update(photoarchiveVer);

                var notification = _db.ApprovalNotifications.Find(approvalId);
                notification.VersionStatusEnum = VersionStatusEnum.Approved;
                _db.ApprovalNotifications.Update(notification);

                var submitedPhotoArchive = _db.PhotoArchiveVersions.Where(d => d.PageRouteVersionId == photoarchiveVer.PageRouteVersionId && d.Id != id &
                                                                          d.VersionStatusEnum == VersionStatusEnum.Submitted).Any();
                if (!submitedPhotoArchive)
                {
                    var pageVer = _db.PageRouteVersions.Find(photoarchiveVer.PageRouteVersionId);
                    pageVer.ContentVersionStatusEnum = VersionStatusEnum.Approved;
                    _db.PageRouteVersions.Update(pageVer);
                }
                _db.SaveChanges();

                try
                {
                    _globalElasticSearchService.DeleteAsync(pageRouteId ?? 0);
                    _globalElasticSearchService.AddAsync(_pageRouteRepository.GetPageData(pageRouteId ?? 0));
                }
                catch { }

                return(true);
            }
            return(false);
        }
 public async Task DeleteAsync(PhotoArchive photoArchive)
 {
     await _elasticClient.DeleteAsync <PhotoArchive>(photoArchive.Id, d => d.Index(index));
 }
 public async Task AddAsync(PhotoArchive photoArchive)
 {
     var result = await _elasticClient.IndexAsync(photoArchive, i => i
                                                  .Index(index).Id(photoArchive.Id).Refresh(Elasticsearch.Net.Refresh.True));
 }