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(); }
//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)); }
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))); }
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)); }
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"))); }
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())); } } }