protected override DriverResult Display(CasePostPart part, string displayType, dynamic shapeHelper)
        {
            if (displayType.StartsWith("Detail"))
            {
                var cAseTitle = _contentManager.GetItemMetadata(part.CasePart).DisplayText;
                _feedManager.Register(part.CasePart, cAseTitle);
            }
            CasePostAttribPart attribute = part.Get <CasePostAttribPart>();

            attribute.CourtList = _commonService.GetCourtList();
            foreach (SelectListItem si in attribute.GenreList)
            {
                if (attribute.CaseHeldIn == si.Value)
                {
                    attribute.CaseHeldIn = si.Text;
                }
            }
            foreach (SelectListItem si in attribute.CourtList)
            {
                if (attribute.CaseHeldCourt == si.Value)
                {
                    attribute.CaseHeldCourt = si.Text;
                }
            }
            return(null);
        }
        public void GetCurrentState(CasePostPart postpart)
        {
            CasePostAttribPart attri = postpart.Get <CasePostAttribPart>();

            attri.CurrentPostState = _casePostStates.Table.Where(rec => rec.CasePostPart_id == postpart.Id)
                                     .OrderByDescending(rec => rec.CasePostStateUtc)
                                     .FirstOrDefault();
        }
Beispiel #3
0
        //todo: the content shape template has extra bits that the core contents module does not (remove draft functionality)
        //todo: - move this extra functionality there or somewhere else that's appropriate?
        public ActionResult Edit(int cAseId, int postId)
        {
            var cAse = _cAseService.Get(cAseId, VersionOptions.Latest);

            if (cAse == null)
            {
                return(HttpNotFound());
            }

            var post = _cAsePostService.Get(postId, VersionOptions.Latest);

            if (post == null)
            {
                return(HttpNotFound());
            }
            CasePostAttribPart attri      = post.Get <CasePostAttribPart>();
            Boolean            isAcquired = attri.CaseAcquiredBy == 0 ? false : true;

            bool isMe = false;
            //Check isit accuired by me

            int userId = _workContextAccessor.GetContext().CurrentUser.Id;

            isMe = userId == attri.CaseAcquiredBy;

            bool icanEdit = isAcquired && isMe;

            if (!icanEdit)
            {
                if (!Services.Authorizer.Authorize(Permissions.EditCasePost, post, T("Couldn't edit cAse post")))
                {
                    return(new HttpUnauthorizedResult());
                }
            }

            var model = Services.ContentManager.BuildEditor(post);

            return(View(model));
        }
Beispiel #4
0
        private ActionResult CreatePOST(int cAseId, bool publish = false)
        {
            var cAse = _cAseService.Get(cAseId, VersionOptions.Latest).As <CasePart>();

            if (cAse == null)
            {
                return(HttpNotFound());
            }

            var cAsePost = Services.ContentManager.New <CasePostPart>("CasePost");

            cAsePost.CasePart = cAse;

            if (!Services.Authorizer.Authorize(Permissions.EditCasePost, cAsePost, T("Couldn't create cAse post")))
            {
                return(new HttpUnauthorizedResult());
            }

            Services.ContentManager.Create(cAsePost, VersionOptions.Draft);
            var model = Services.ContentManager.UpdateEditor(cAsePost, this);

            CasePostAttribPart attri = cAsePost.Get <CasePostAttribPart>();
            int id = attri.Id;

            attri.CasePostNumber = cAsePost.ContentItem.Id;
            attri.CaseNumber     = _cAsePostService.GetNextCaseNumber(attri.CaseYear);

            if (cAsePost.Text.Contains("PFR"))
            {
                string[] caseHeader = CommonExtentions.ExtractCaseHeader(cAsePost.Text).ToArray();
                if (caseHeader.Length >= 4)
                {
                    string[] clients = CommonExtentions.GetClients(caseHeader[0].ToString());
                    if (clients.Length >= 2)
                    {
                        attri.CaseClient1 = clients[0].ToString();
                        attri.CaseClient2 = clients[1].ToString();
                    }
                    attri.CaseHeldCourt       = caseHeader[1].ToString();
                    attri.CaseDecisionTakenBy = caseHeader[2].ToString();
                    attri.CaseReference       = caseHeader[3].ToString();
                }
            }


            model = Services.ContentManager.UpdateEditor(cAsePost, this);

            if (!ModelState.IsValid)
            {
                Services.TransactionManager.Cancel();
                return(View(model));
            }

            if (publish)
            {
                if (!Services.Authorizer.Authorize(Permissions.PublishCasePost, cAsePost.ContentItem, T("Couldn't publish cAse post")))
                {
                    return(new HttpUnauthorizedResult());
                }

                Services.ContentManager.Publish(cAsePost.ContentItem);
            }


            Services.Notifier.Information(T("Your {0} has been created.", cAsePost.TypeDefinition.DisplayName));
            return(Redirect(Url.CasePostEdit(cAsePost)));
        }
Beispiel #5
0
        public ActionResult EditEditor(int cAseId, int postId)
        {
            var cAse = _cAseService.Get(cAseId, VersionOptions.Latest);

            if (cAse == null)
            {
                return(HttpNotFound());
            }

            var post = _cAsePostService.Get(postId, VersionOptions.Latest);

            if (post == null)
            {
                return(HttpNotFound());
            }

            IUser   user    = _workContextAccessor.GetContext().CurrentUser;
            dynamic dynUser = user.ContentItem;


            int    unameId = user.Get <UserPart>().Id;
            string role    = string.Empty;;

            if (dynUser.UserRolesPart != null)
            {
                IEnumerable <string> usernames = dynUser.UserRolesPart.Roles;
                foreach (var unameloop in usernames)
                {
                    role = unameloop;
                    break;
                }
            }

            CasePostAttribRecord attri     = post.Get <CasePostAttribPart>().Record;
            CasePostAttribPart   attripart = post.Get <CasePostAttribPart>();

            attri.CaseAcquiredBy       = 0;
            attri.CaseAcquiredRole     = string.Empty;
            attripart.CaseAcquiredBy   = 0;
            attripart.CaseAcquiredRole = string.Empty;

            bool isMe = false;
            //Check isit accuired by me

            int userId = _workContextAccessor.GetContext().CurrentUser.Id;

            isMe = userId == attri.CaseAcquiredBy;

            if (!Services.Authorizer.Authorize(Permissions.EditCasePost, post, T("Couldn't edit cAse post")))
            {
                return(new HttpUnauthorizedResult());
            }

            CasePostStateRecord rec = new CasePostStateRecord();

            rec.CasePostPart_id     = attri.CasePostNumber;
            rec.CasePostState       = role;
            rec.CasePostStateUserId = unameId;
            rec.CasePostStateUtc    = DateTime.UtcNow;
            rec.ContentItemRecord   = (ContentItemRecord)post.Get <CasePostPart>().ContentItem.Record;
            rec.CaseAcquiredStatus  = (int)CasePostStateRecord.CaseAcquiredStateEnum.EDITORReleased;

            _cAsePostService.Acquier(rec);

            return(Edit(cAseId, postId));
        }
Beispiel #6
0
        public ActionResult Acquier(int cAseId, int postId, string returnUrl)
        {
            var cAse = _cAseService.Get(cAseId, VersionOptions.Latest);

            if (cAse == null)
            {
                return(HttpNotFound());
            }

            var post = _cAsePostService.Get(postId, VersionOptions.Latest);

            if (post == null)
            {
                return(HttpNotFound());
            }

            if (!Services.Authorizer.Authorize(Permissions.AcquireUnpublisehdCase, post, T("Couldn't Acquier Case post")))
            {
                return(new HttpUnauthorizedResult());
            }


            IUser   user    = _workContextAccessor.GetContext().CurrentUser;
            dynamic dynUser = user.ContentItem;


            int    unameId = user.Get <UserPart>().Id;
            string role    = string.Empty;;

            if (dynUser.UserRolesPart != null)
            {
                IEnumerable <string> usernames = dynUser.UserRolesPart.Roles;
                foreach (var unameloop in usernames)
                {
                    role = unameloop;
                    break;
                }
            }
            CasePostAttribRecord attri     = post.Get <CasePostAttribPart>().Record;
            CasePostAttribPart   attripart = post.Get <CasePostAttribPart>();

            attri.CaseAcquiredBy       = unameId;
            attri.CaseAcquiredRole     = role;
            attripart.CaseAcquiredBy   = unameId;
            attripart.CaseAcquiredRole = role;


            CasePostStateRecord rec = new CasePostStateRecord();

            rec.CasePostPart_id     = attri.CasePostNumber;
            rec.CasePostState       = role;
            rec.CasePostStateUserId = unameId;
            rec.CasePostStateUtc    = DateTime.UtcNow;
            rec.ContentItemRecord   = (ContentItemRecord)post.Get <CasePostPart>().ContentItem.Record;

            if (role.Equals("Law Interns"))
            {
                rec.CaseAcquiredStatus = (int)CasePostStateRecord.CaseAcquiredStateEnum.INTERNAcquired;
            }
            if (role.Equals("Editor"))
            {
                rec.CaseAcquiredStatus = (int)CasePostStateRecord.CaseAcquiredStateEnum.EDITORAcquired;
            }
            if (role.Equals("Author"))
            {
                rec.CaseAcquiredStatus = (int)CasePostStateRecord.CaseAcquiredStateEnum.AUTHORAcquired;
            }

            _cAsePostService.Acquier(rec);
            // Validate form input
            var model = Services.ContentManager.UpdateEditor(post, this);

            if (!ModelState.IsValid)
            {
                Services.TransactionManager.Cancel();
                Services.Notifier.Information(T("Case post Failed  acquired."));
            }
            else
            {
                Services.Notifier.Information(T("Case post successfully acquired."));
            }


            return(this.RedirectLocal(returnUrl, () => RedirectToAction("List")));
        }
Beispiel #7
0
        public ActionResult EditPOST(int cAseId, int postId, string returnUrl, Action <ContentItem> conditionallyPublish)
        {
            var cAse = _cAseService.Get(cAseId, VersionOptions.Latest);

            if (cAse == null)
            {
                return(HttpNotFound());
            }

            // Get draft (create a new version if needed)
            var cAsePost = _cAsePostService.Get(postId, VersionOptions.DraftRequired);

            if (cAsePost == null)
            {
                return(HttpNotFound());
            }
            var casat = cAsePost.Get <CasePostAttribPart>();
            CasePostAttribPart attri      = casat.Get <CasePostAttribPart>();
            Boolean            isAcquired = attri.CaseAcquiredBy == 0 ? false : true;

            bool isMe = false;
            //Check isit accuired by me

            int userId = _workContextAccessor.GetContext().CurrentUser.Id;

            isMe = userId == attri.CaseAcquiredBy;

            bool icanEdit = isAcquired && isMe;

            if (!icanEdit)
            {
                if (!Services.Authorizer.Authorize(Permissions.EditCasePost, cAsePost, T("Couldn't edit cAse post")))
                {
                    return(new HttpUnauthorizedResult());
                }
            }

            if (cAsePost.Text.Contains("PFR"))
            {
                string[] caseHeader = CommonExtentions.ExtractCaseHeader(cAsePost.Text).ToArray();
                if (caseHeader.Length > 3)
                {
                    string[] clients = CommonExtentions.GetClients(caseHeader[0].ToString());
                    if (clients.Length > 2)
                    {
                        attri.CaseClient1 = clients[0].ToString();
                        attri.CaseClient2 = clients[1].ToString();
                    }
                    attri.CaseHeldCourt       = caseHeader[1].ToString();
                    attri.CaseDecisionTakenBy = caseHeader[2].ToString();
                    attri.CaseReference       = caseHeader[3].ToString();
                }
            }

            // Validate form input
            var model = Services.ContentManager.UpdateEditor(cAsePost, this);

            if (!ModelState.IsValid)
            {
                Services.TransactionManager.Cancel();
                return(View(model));
            }

            conditionallyPublish(cAsePost.ContentItem);

            Services.Notifier.Information(T("Your {0} has been saved.", cAsePost.TypeDefinition.DisplayName));

            return(this.RedirectLocal(returnUrl, Url.CasePostEdit(cAsePost)));
        }
        protected override DriverResult Editor(CasePostPart part, dynamic shapeHelper)
        {
            IUser   user    = _workContextAccessor.GetContext().CurrentUser;
            dynamic dynUser = user.ContentItem;

            string role = string.Empty;;

            if (dynUser.UserRolesPart != null)
            {
                IEnumerable <string> usernames = dynUser.UserRolesPart.Roles;
                foreach (var unameloop in usernames)
                {
                    role = unameloop;
                    break;
                }
            }
            CasePostAttribPart attribute = part.Get <CasePostAttribPart>();

            attribute.CourtList = _commonService.GetCourtList();

            foreach (SelectListItem si in attribute.GenreList)
            {
                if (attribute.CaseHeldIn == si.Value)
                {
                    si.Selected = true;
                }
            }
            foreach (SelectListItem si in attribute.CourtList)
            {
                if (attribute.CaseHeldCourt == si.Value)
                {
                    si.Selected = true;
                }
            }



            var results = new List <DriverResult>();

            if (role.Equals("Law Interns"))
            {
                results = new List <DriverResult> {
                    ContentShape("Case_UpdateAbstract", saveButton => saveButton)
                }
            }
            ;
            if (role.Equals("Editor"))
            {
                results = new List <DriverResult> {
                    ContentShape("Case_UpdateAbstract", saveButton => saveButton)
                }
            }
            ;
            if (role.Equals("Author"))
            {
                results = new List <DriverResult> {
                    ContentShape("Case_UpdateAuthor", saveButton => saveButton)
                }
            }
            ;
            //Case.UpdateAuthor
            return(Combined(results.ToArray()));
        }
    }
}