Ejemplo n.º 1
0
        public async Task <IActionResult> SubmitChanges([FromQuery] int cityPlanId, [FromQuery] int id)
        {
            var pageRouteVersion = _pageRouteVersionRepository.GetPageRouteVersionByPageType(PageTypeConsts.CityPlan);
            var user             = await _userManager.GetUserAsync(HttpContext.User);

            var cityPlanVersion = _cityPlanVersionRepository.GetDetail(id);

            if (cityPlanVersion != null)
            {
                cityPlanVersion.VersionStatusEnum = VersionStatusEnum.Submitted;
                _cityPlanVersionRepository.Update(cityPlanVersion);
            }
            var cityPlanYearVersion = _cityPlanYearVersionRepository.GetDraftByCityId(cityPlanVersion.Id);

            foreach (var record in cityPlanYearVersion)
            {
                record.VersionStatusEnum = VersionStatusEnum.Submitted;
                _cityPlanYearVersionRepository.Update(record);
            }

            var ifApprovalExist = _approvalNotificationsRepository.GetByPageNameAndRelatedId(PagesNamesConst.CityPlan, id);

            if (ifApprovalExist == null || ifApprovalExist.VersionStatusEnum == VersionStatusEnum.Approved || ifApprovalExist.VersionStatusEnum == VersionStatusEnum.Ignored)
            {
                ApprovalNotification approval = new ApprovalNotification()
                {
                    ChangeAction      = ChangeActionEnum.Update,
                    VersionStatusEnum = VersionStatusEnum.Submitted,
                    ChangesDateTime   = DateTime.Now,
                    ChangeType        = ChangeType.PageContent,
                    PageLink          = $"/{nameof(CityPlanController)[0..^10]}?cityPlanVerId={id}",
        public bool ApplySubmitRequest(int id, string userId, string pageLink)
        {
            try
            {
                var ifApprovalExist     = _approvalNotificationsRepository.GetByPageNameAndRelatedId("Photo Archive", id);
                var photoArchiveVersion = _db.PhotoArchiveVersions.Find(id);
                var pageVer             = _db.PageRouteVersions.Find(photoArchiveVersion.PageRouteVersionId);
                photoArchiveVersion.VersionStatusEnum = VersionStatusEnum.Submitted;
                _db.PhotoArchiveVersions.Update(photoArchiveVersion);
                if (ifApprovalExist == null || ifApprovalExist.VersionStatusEnum == VersionStatusEnum.Approved || ifApprovalExist.VersionStatusEnum == VersionStatusEnum.Ignored)
                {
                    _db.ApprovalNotifications.Add(new ApprovalNotification
                    {
                        ChangeAction      = photoArchiveVersion.ChangeActionEnum.Value,
                        ChangesDateTime   = DateTime.Now,
                        ChangeType        = ChangeType.PageContent,
                        ContentManagerId  = userId,
                        PageLink          = $"{pageLink}/{id}?pageRouteId={pageVer.PageRouteId}",
                        PageName          = "Photo Archive",
                        PageType          = PageType.Static,
                        RelatedVersionId  = id,
                        VersionStatusEnum = VersionStatusEnum.Submitted,
                    });
                }

                var draftPhotoarchive = _db.PhotoArchiveVersions.Where(d => d.PageRouteVersionId == photoArchiveVersion.PageRouteVersionId && d.Id != id &
                                                                       d.VersionStatusEnum == VersionStatusEnum.Draft).Any();
                if (!draftPhotoarchive)
                {
                    pageVer.ContentVersionStatusEnum = VersionStatusEnum.Submitted;
                    _db.PageRouteVersions.Update(pageVer);
                }
                _db.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }