public static PageMinistry MapToPageMinistry(this PageMinistryEditViewModel sectionCardCreateViewModel)
        {
            PageMinistry pageSectionVersion = new PageMinistry();

            pageSectionVersion.EnName       = sectionCardCreateViewModel.EnName;
            pageSectionVersion.ArName       = sectionCardCreateViewModel.ArName;
            pageSectionVersion.EnContent    = sectionCardCreateViewModel.EnContent;
            pageSectionVersion.ArContent    = sectionCardCreateViewModel.ArContent;
            pageSectionVersion.ImageUrl     = sectionCardCreateViewModel.ImageUrl;
            pageSectionVersion.EnImageUrl   = sectionCardCreateViewModel.EnImageUrl;
            pageSectionVersion.IsActive     = sectionCardCreateViewModel.IsActive;
            pageSectionVersion.IsDeleted    = sectionCardCreateViewModel.IsDeleted;
            pageSectionVersion.IsDobulQuote = sectionCardCreateViewModel.IsDobulQuote;
            pageSectionVersion.Order        = sectionCardCreateViewModel.Order;
            pageSectionVersion.IsSection    = sectionCardCreateViewModel.IsSection;
            pageSectionVersion.PageRouteId  = sectionCardCreateViewModel.PageRouteId;

            pageSectionVersion.SeoTitleEN       = sectionCardCreateViewModel.SeoTitleEN;
            pageSectionVersion.SeoTitleAR       = sectionCardCreateViewModel.SeoTitleAR;
            pageSectionVersion.SeoDescriptionEN = sectionCardCreateViewModel.SeoDescriptionEN;
            pageSectionVersion.SeoDescriptionAR = sectionCardCreateViewModel.SeoDescriptionAR;
            pageSectionVersion.SeoOgTitleEN     = sectionCardCreateViewModel.SeoOgTitleEN;
            pageSectionVersion.SeoOgTitleAR     = sectionCardCreateViewModel.SeoOgTitleAR;
            pageSectionVersion.SeoTwitterCardEN = sectionCardCreateViewModel.SeoTwitterCardEN;
            pageSectionVersion.SeoTwitterCardAR = sectionCardCreateViewModel.SeoTwitterCardAR;

            if (sectionCardCreateViewModel.Id > 0)
            {
                pageSectionVersion.Id = sectionCardCreateViewModel.Id;
            }
            return(pageSectionVersion);
        }
        public static PageMinistryEditViewModel MapToSctionCardViewModel(this PageMinistryVersion sectionCardCreateViewModel)
        {
            PageMinistryEditViewModel viewModel = new PageMinistryEditViewModel()
            {
                Id                = sectionCardCreateViewModel.Id,
                EnName            = sectionCardCreateViewModel.EnName,
                ArName            = sectionCardCreateViewModel.ArName,
                EnContent         = sectionCardCreateViewModel.EnContent,
                ArContent         = sectionCardCreateViewModel.ArContent,
                IsActive          = sectionCardCreateViewModel.IsActive,
                IsDeleted         = sectionCardCreateViewModel.IsDeleted,
                IsDobulQuote      = sectionCardCreateViewModel.IsDobulQuote,
                ImageUrl          = sectionCardCreateViewModel.ImageUrl,
                EnImageUrl        = sectionCardCreateViewModel.EnImageUrl,
                Order             = sectionCardCreateViewModel.Order,
                IsSection         = sectionCardCreateViewModel.IsSection,
                SeoTitleEN        = sectionCardCreateViewModel.SeoTitleEN,
                SeoTitleAR        = sectionCardCreateViewModel.SeoTitleAR,
                SeoDescriptionEN  = sectionCardCreateViewModel.SeoDescriptionEN,
                SeoDescriptionAR  = sectionCardCreateViewModel.SeoDescriptionAR,
                SeoOgTitleEN      = sectionCardCreateViewModel.SeoOgTitleEN,
                SeoOgTitleAR      = sectionCardCreateViewModel.SeoOgTitleAR,
                SeoTwitterCardEN  = sectionCardCreateViewModel.SeoTwitterCardEN,
                SeoTwitterCardAR  = sectionCardCreateViewModel.SeoTwitterCardAR,
                PageRouteId       = sectionCardCreateViewModel.PageRouteId ?? 0,
                VersionStatusEnum = sectionCardCreateViewModel.VersionStatusEnum,
                ChangeActionEnum  = sectionCardCreateViewModel.ChangeActionEnum,
                PageMinistryId    = sectionCardCreateViewModel.PageMinistryId
            };

            return(viewModel);
        }
        public static PageMinistryVersion MapToPageMinistryVersion(this PageMinistryEditViewModel sectionCardCreateViewModel)
        {
            PageMinistryVersion pageSectionVersion = new PageMinistryVersion()
            {
                EnName           = sectionCardCreateViewModel.EnName,
                ArName           = sectionCardCreateViewModel.ArName,
                EnContent        = sectionCardCreateViewModel.EnContent,
                ArContent        = sectionCardCreateViewModel.ArContent,
                ImageUrl         = sectionCardCreateViewModel.ImageUrl,
                EnImageUrl       = sectionCardCreateViewModel.EnImageUrl,
                IsActive         = sectionCardCreateViewModel.IsActive,
                IsDeleted        = sectionCardCreateViewModel.IsDeleted,
                IsDobulQuote     = sectionCardCreateViewModel.IsDobulQuote,
                Order            = sectionCardCreateViewModel.Order,
                IsSection        = sectionCardCreateViewModel.IsSection,
                PageRouteId      = sectionCardCreateViewModel.PageRouteId,
                ApprovalDate     = sectionCardCreateViewModel.ApprovalDate,
                ApprovedById     = sectionCardCreateViewModel.ApprovedById,
                ChangeActionEnum = sectionCardCreateViewModel.ChangeActionEnum,
                CreatedById      = sectionCardCreateViewModel.CreatedById,
                CreationDate     = sectionCardCreateViewModel.CreationDate,
                Id                = sectionCardCreateViewModel.Id,
                IsHeading         = sectionCardCreateViewModel.IsHeading,
                PageMinistryId    = sectionCardCreateViewModel.PageMinistryId,
                VersionStatusEnum = sectionCardCreateViewModel.VersionStatusEnum,

                SeoTitleEN       = sectionCardCreateViewModel.SeoTitleEN,
                SeoTitleAR       = sectionCardCreateViewModel.SeoTitleAR,
                SeoDescriptionEN = sectionCardCreateViewModel.SeoDescriptionEN,
                SeoDescriptionAR = sectionCardCreateViewModel.SeoDescriptionAR,
                SeoOgTitleEN     = sectionCardCreateViewModel.SeoOgTitleEN,
                SeoOgTitleAR     = sectionCardCreateViewModel.SeoOgTitleAR,
                SeoTwitterCardEN = sectionCardCreateViewModel.SeoTwitterCardEN,
                SeoTwitterCardAR = sectionCardCreateViewModel.SeoTwitterCardAR,
            };



            if (sectionCardCreateViewModel.Id > 0)
            {
                pageSectionVersion.Id = sectionCardCreateViewModel.Id;
            }
            return(pageSectionVersion);
        }
        public async Task <IActionResult> Edit(PageMinistryEditViewModel viewModel)
        {
            var pageRouteVer = _pageRouteVersionRepository.GetByPageRoute((int)viewModel.PageRouteId);

            if (ModelState.IsValid)
            {
                var pageMinistryVersion      = _pageMinistryVersionsRepository.GetByPageMinistryId(viewModel.Id);
                var pageMinistryVersionModel = viewModel.MapToPageMinistryVersion();
                var user = await _userManager.GetUserAsync(HttpContext.User);

                if (viewModel.Id == (int)PageMinistryEnum.MinistrySocialId)
                {
                    pageMinistryVersionModel.EnContent = "Twitter;" + viewModel.Twitter + "," + "Instagram;" + viewModel.Instagram + "," +
                                                         "Globe;" + viewModel.Globe;
                }
                else
                {
                    pageMinistryVersionModel.EnContent = viewModel.EnContent;
                }
                if (pageMinistryVersion == null || pageMinistryVersionModel.VersionStatusEnum == VersionStatusEnum.Approved || pageMinistryVersionModel.VersionStatusEnum == VersionStatusEnum.Ignored)
                {
                    pageMinistryVersionModel.CreatedById       = user.Id;
                    pageMinistryVersionModel.CreationDate      = DateTime.Now;
                    pageMinistryVersionModel.VersionStatusEnum = VersionStatusEnum.Draft;
                    pageRouteVer.ContentVersionStatusEnum      = VersionStatusEnum.Draft;
                    pageMinistryVersionModel.ChangeActionEnum  = ChangeActionEnum.Update;
                    pageMinistryVersionModel.Id             = 0;
                    pageMinistryVersionModel.PageMinistryId = viewModel.Id;
                    pageMinistryVersionModel.NavItemId      = viewModel.PageRouteId;
                    pageMinistryVersionModel.StatusId       = (int)RequestStatus.Approved;
                    if (viewModel.ImageFile != null)
                    {
                        pageMinistryVersionModel.ImageUrl = _fileService.UploadImageUrlNew(viewModel.ImageFile);
                    }
                    if (viewModel.EnImageFile != null)
                    {
                        pageMinistryVersionModel.EnImageUrl = _fileService.UploadImageUrlNew(viewModel.EnImageFile);
                    }
                    _pageMinistryVersionsRepository.Add(pageMinistryVersionModel);
                    _pageRouteVersionRepository.Update(pageRouteVer);
                    _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Update, "Static Page > Page Ministry > Edit", viewModel.EnName);
                    return(RedirectToAction(nameof(Index), new { id = pageRouteVer.Id, pageRouteId = viewModel.PageRouteId }));
                }


                pageMinistryVersionModel.CreationDate      = DateTime.Now;
                pageMinistryVersionModel.NavItemId         = viewModel.PageRouteId;
                pageMinistryVersionModel.StatusId          = (int)RequestStatus.Approved;
                pageMinistryVersionModel.Id                = pageMinistryVersion.Id;
                pageMinistryVersionModel.VersionStatusEnum = VersionStatusEnum.Draft;
                pageRouteVer.ContentVersionStatusEnum      = VersionStatusEnum.Draft;
                pageMinistryVersionModel.ApprovalDate      = pageMinistryVersion.ApprovalDate;
                pageMinistryVersionModel.ApprovedById      = pageMinistryVersion.ApprovedById;
                pageMinistryVersionModel.CreatedById       = pageMinistryVersion.CreatedById;
                pageMinistryVersionModel.CreationDate      = pageMinistryVersion.CreationDate;
                pageMinistryVersionModel.ChangeActionEnum  = ChangeActionEnum.Update;
                if (viewModel.ImageFile != null)
                {
                    pageMinistryVersionModel.ImageUrl = _fileService.UploadImageUrlNew(viewModel.ImageFile);
                }
                if (viewModel.EnImageFile != null)
                {
                    pageMinistryVersionModel.EnImageUrl = _fileService.UploadImageUrlNew(viewModel.EnImageFile);
                }
                var newSectionCardVersion = _pageMinistryVersionsRepository.Update(pageMinistryVersionModel);
                _pageRouteVersionRepository.Update(pageRouteVer);
                if (newSectionCardVersion != null)
                {
                    _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Update, "Static Page > Page Ministry > Edit", viewModel.EnName);
                    return(RedirectToAction(nameof(Index), new { id = pageRouteVer.Id, pageRouteId = pageMinistryVersion.PageRouteId }));
                }
                else
                {
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Warning, "Static Page > Page Ministry > Edit", viewModel.EnName);
                    _toastNotification.AddErrorToastMessage(ToasrMessages.warning);
                }
            }

            return(View(viewModel));
        }
        public IActionResult Edit(int id, [FromQuery] int pageRouteId)
        {
            PageMinistryEditViewModel viewModel = GetDetails(id, pageRouteId);

            return(View(viewModel));
        }