public ActionResult Index(int?roleId) { IEnumerable <int> userIds = null; if (roleId.HasValue) { userIds = this.userRoleRepository.Table.Where(c => c.Role.Id == roleId).Select(c => c.UserId).ToList(); } else { userIds = this.userRepository.Table.Select(c => c.Id).ToList(); } VersionOptions versionOptions = new VersionOptions(); var users = this.services.ContentManager.GetMany <UserPart>(userIds, VersionOptions.Published, new QueryHints()); bool isAjaxRequest = Request.IsAjaxRequest(); if (isAjaxRequest) { AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { IsDone = true }; ajaxMessageModel.Html = this.RenderPartialViewToString("Users", users); return(this.Json(ajaxMessageModel, JsonRequestBehavior.AllowGet)); } else { // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation. return(this.View((object)users)); } }
protected ActionResult CreateActionResult(int contentItemId, string view, object ajaxData, Func <object> createFullModel) { if (Request.IsAjaxRequest()) { AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { Id = contentItemId, IsDone = ModelState.IsValid, Data = ajaxData }; foreach (var errorGroup in this.ModelState.Where(c => c.Value.Errors.Count > 0)) { foreach (var error in errorGroup.Value.Errors) { string errorMessage = error.Exception != null ? "An exception happens in server" : error.ErrorMessage; ajaxMessageModel.Errors.Add(new KeyValuePair <string, string>(errorGroup.Key, error.ErrorMessage)); } } return(this.Json(ajaxMessageModel, JsonRequestBehavior.AllowGet)); } else { object model = null; if (createFullModel != null) { model = createFullModel(); } return(this.View(view, model)); } }
public ActionResult CopySuiteToOrchardProjects(CopyOrchardProjectToSuiteViewModel model) { if (!this.services.Authorizer.Authorize(Permissions.ManageSuiteCRMPermission, T("Not authorized to see list of SuiteCRM projects"))) { return(new HttpUnauthorizedResult()); } if (!this.ModelState.IsValid) { AjaxMessageViewModel errorModel = this.CreateAjaxModel(null); return(this.Json(errorModel, JsonRequestBehavior.AllowGet)); } var projects = this.syncService.CopySuiteCRMProjectsToOrchard(model); var resultModel = new MainViewModel(); resultModel.Projects.AddRange(projects); resultModel.SuiteCRMProjectsCount = this.suiteCRMDataService.ProjectCount(); resultModel.OrchardCollaborationProjectsCount = this.projectService.GetProjectsCount(); foreach (var project in resultModel.Projects.Where(c => c.OrchardCollaborationProject != null)) { project.OrchardProjectShape = this.services.ContentManager.BuildDisplay(project.OrchardCollaborationProject, displayType: "SyncTitleSummary"); } AjaxMessageViewModel ajaxMessageModel = this.CreateAjaxModel(resultModel); return(this.Json(JsonConvert.SerializeObject(ajaxMessageModel))); }
public ActionResult CopyOrchardTicketToSuiteTasks(CopyOrchardTasksToSuiteViewModel model) { if (!this.contentOwnershipService.IsCurrentUserOperator()) { return(new HttpUnauthorizedResult()); } if (!this.ModelState.IsValid) { AjaxMessageViewModel errorModel = this.CreateAjaxModel(null); return(this.Json(errorModel, JsonRequestBehavior.AllowGet)); } var resultModel = this.syncService.CopyOrchardTicketsToSuite(model); foreach (var task in resultModel) { task.SuiteCRMUrl = Helper.GetTaskAddressInSuiteCRM( this.services, task.SuiteCRMTaskId, task.IsProjectTask ? SuiteCRMTaskPart.SuiteCRMProjectTaskTypeValue : SuiteCRMTaskPart.SuiteCRMTaskTypeValue); } AjaxMessageViewModel ajaxMessageModel = this.CreateAjaxModel(resultModel); return(this.Json(JsonConvert.SerializeObject(ajaxMessageModel))); }
public ActionResult GetSuiteCRMContact(string email) { if (!this.contentOwnershipService.IsCurrentUserOperator()) { return(new HttpUnauthorizedResult()); } var contact = this.suiteCRMDataService.GetContact(email); dynamic model = new ExpandoObject(); if (contact == null) { model.Found = false; } else { model.Found = true; model.ContactId = contact.bean_id; model.Url = Helper.GetContactAddressInSuiteCRM(this.services, contact.bean_id); } AjaxMessageViewModel ajaxMessageModel = this.CreateAjaxModel(model); return(this.Json(JsonConvert.SerializeObject(ajaxMessageModel))); }
public ActionResult ProjectMilestones(int projectId) { // check user is operator if (!this.crmContentOwnershipService.IsCurrentUserOperator()) { return(HttpNotFound()); } var project = this.services.ContentManager.Get(projectId); if (!this.crmContentOwnershipService.CurrentUserCanViewContent(project)) { ModelState.AddModelError("ProjectId", new OrchardSecurityException(T("You are not authorized to view the item"))); return(this.CreateActionResultBasedOnAjaxRequest(null, null)); } var milestones = this.milestoneService.GetOpenMilestones(projectId); EditAttachToViewModel model = new EditAttachToViewModel(); Converter.Fill(model.Items, milestones); AjaxMessageViewModel returnValue = new AjaxMessageViewModel { IsDone = true, Data = model }; return(this.Json(returnValue, JsonRequestBehavior.AllowGet)); }
public ActionResult Users(int?page) { int pageSize = this.services.WorkContext.CurrentSite.PageSize; page = page ?? 0; if (!this.services.Authorizer.Authorize(Permissions.ManageSuiteCRMPermission, T("Not authorized to see list of SuiteCRM projects"))) { return(new HttpUnauthorizedResult()); } if (!this.SuiteCRMConnectionIsReady()) { return(RedirectToAction("Settings")); } MainViewModel model = new MainViewModel(); model.Users.AddRange(this.suiteCRMSyncUserService.GetUsers(page.Value, pageSize)); model.SuiteCRMUsersCount = this.suiteCRMSyncUserService.GetSuiteCRMUsersCount(); model.PageSize = pageSize; model.SuiteCRMPage = page.Value; model.ViewUsersPage = true; if (this.Request.IsAjaxRequest()) { AjaxMessageViewModel ajaxMessageModel = this.CreateAjaxModel(model); return(this.Json(JsonConvert.SerializeObject(ajaxMessageModel))); } else { return(View("Index", model)); } }
public static void AddModelStateErrors(ModelStateDictionary modelState, AjaxMessageViewModel ajaxMessageModel) { foreach (var errorGroup in modelState.Where(c => c.Value.Errors.Count > 0)) { foreach (var error in errorGroup.Value.Errors) { string errorMessage = error.Exception != null ? "An exception happens in server" : error.ErrorMessage; ajaxMessageModel.Errors.Add(new KeyValuePair <string, string>(errorGroup.Key, error.ErrorMessage)); } } }
public ActionResult Index(int?page, bool?listedBasedOnSuiteCRM) { int pageSize = this.services.WorkContext.CurrentSite.PageSize; page = page ?? 0; listedBasedOnSuiteCRM = listedBasedOnSuiteCRM.HasValue ? listedBasedOnSuiteCRM.Value : true; if (!this.services.Authorizer.Authorize(Permissions.ManageSuiteCRMPermission, T("Not authorized to see list of SuiteCRM projects"))) { return(new HttpUnauthorizedResult()); } if (!this.SuiteCRMConnectionIsReady()) { return(RedirectToAction("Settings")); } MainViewModel model = new MainViewModel(); model.Projects.AddRange(this.syncService.GetProjects(page.Value, pageSize, listedBasedOnSuiteCRM.Value)); model.SuiteCRMProjectsCount = this.suiteCRMDataService.ProjectCount(); model.OrchardCollaborationProjectsCount = this.projectService.GetProjectsCount(); model.PageSize = pageSize; if (listedBasedOnSuiteCRM.Value) { model.OrchardCollaborationPage = 0; model.SuiteCRMPage = page.Value; } else { model.OrchardCollaborationPage = page.Value; model.SuiteCRMPage = 0; } model.ListedBasedOnSuiteCRM = listedBasedOnSuiteCRM.Value; model.ViewUsersPage = false; foreach (var project in model.Projects.Where(c => c.OrchardCollaborationProject != null)) { project.OrchardProjectShape = this.services.ContentManager.BuildDisplay(project.OrchardCollaborationProject, displayType: "SyncTitleSummary"); } if (this.Request.IsAjaxRequest()) { AjaxMessageViewModel ajaxMessageModel = this.CreateAjaxModel(model); return(this.Json(JsonConvert.SerializeObject(ajaxMessageModel))); } else { return(View(model)); } }
protected ActionResult CreateActionResultBasedOnAjaxRequest(dynamic model, string partialView, string mainView, string returnUrl) { bool isAjaxRequest = Request.IsAjaxRequest(); if (isAjaxRequest) { AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { IsDone = true }; ajaxMessageModel.Data = JsonConvert.SerializeObject(model); if (!ModelState.IsValid) { foreach (var valueModel in ModelState) { foreach (var errorModel in valueModel.Value.Errors) { string error = errorModel.Exception != null ? errorModel.Exception.Message : errorModel.ErrorMessage; ajaxMessageModel.Errors.Add(new KeyValuePair <string, string>(valueModel.Key, error)); } } } if (model != null) { this.widgetService.GetWidgets(model, this.HttpContext); } if (!string.IsNullOrEmpty(partialView)) { ajaxMessageModel.Html = CRMHelper.RenderPartialViewToString(this, partialView, model); } return(this.Json(ajaxMessageModel, JsonRequestBehavior.AllowGet)); } else { if (!string.IsNullOrEmpty(returnUrl)) { return(this.Redirect(returnUrl)); } else if (string.IsNullOrEmpty(mainView)) { // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation. return(this.View((object)model)); } else { return(this.View(mainView, (object)model)); } } }
public IActionResult AjaxPostMessage(AjaxMessageViewModel viewModel) { Message postMessage = new Message() { MessageBody = viewModel.message, UserId = (int)HttpContext.Session.GetInt32("UserId"), ActivityId = viewModel.activityId, }; dbContext.Messages.Add(postMessage); dbContext.SaveChanges(); return(new EmptyResult()); }
private AjaxMessageViewModel CreateAjaxModel(object model) { AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { Data = model, IsDone = this.ModelState.IsValid }; foreach (var item in ModelState) { ajaxMessageModel.Errors.AddRange(item.Value.Errors.Select(c => new KeyValuePair <string, string>(item.Key, c.Exception != null ? c.Exception.Message : c.ErrorMessage)).Where(c => !string.IsNullOrEmpty(c.Value))); } return(ajaxMessageModel); }
private AjaxMessageViewModel CreateAjaxMessageModel(ContentItem contentItem, string returnedShape) { AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { Id = contentItem.Id, IsDone = true, Data = Newtonsoft.Json.JsonConvert.SerializeObject(contentItem) }; if (!string.IsNullOrEmpty(returnedShape)) { dynamic returnedShapeModel = new Composite(); returnedShapeModel.ContentItem = contentItem; returnedShapeModel.IsAlternative = false; ajaxMessageModel.Html = this.RenderShapePartial(returnedShapeModel, returnedShape); } return(ajaxMessageModel); }
public ActionResult QueryCount() { int count = 0; if (services.WorkContext.CurrentUser != null && (this.crmContentOwnershipService.IsCurrentUserCustomer() || this.crmContentOwnershipService.IsCurrentUserOperator())) { count = this.activityNotificationService.NewItemsCount(); } AjaxMessageViewModel returnValue = new AjaxMessageViewModel { IsDone = true, Data = new { Count = count } }; return(this.Json(returnValue, JsonRequestBehavior.AllowGet)); }
public ActionResult CopySuiteCRMUsersToOrchardPost(CopySuiteCRMUsersToOrchardViewModel model) { if (!this.services.Authorizer.Authorize(Permissions.ManageSuiteCRMPermission, T("Not authorized to see list of SuiteCRM projects"))) { return(new HttpUnauthorizedResult()); } if (!this.ModelState.IsValid) { AjaxMessageViewModel errorModel = this.CreateAjaxModel(null); return(this.Json(errorModel, JsonRequestBehavior.AllowGet)); } var users = this.suiteCRMSyncUserService.CopySuiteCRMUsersToOrchard(model); AjaxMessageViewModel ajaxMessageModel = this.CreateAjaxModel(users); return(this.Json(JsonConvert.SerializeObject(ajaxMessageModel))); }
protected AjaxMessageViewModel CreateAjaxMessageModel(ContentItem contentItem, string returnedShape) { var data = JsonConvert.SerializeObject(contentItem); int id = contentItem != null ? contentItem.Id : default(int); AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { Id = id, IsDone = ModelState.IsValid, Data = data }; if (!string.IsNullOrEmpty(returnedShape)) { dynamic returnedShapeModel = new Composite(); returnedShapeModel.ContentItem = contentItem; returnedShapeModel.IsAlternative = false; ajaxMessageModel.Html = this.RenderShapePartial(returnedShapeModel, returnedShape); } return(ajaxMessageModel); }
public ActionResult UpdateVisit(int activityStreamId) { if (services.WorkContext.CurrentUser == null) { throw new OrchardSecurityException(T("You don't have authorization to do the query")); } if (!this.crmContentOwnershipService.IsCurrentUserCustomer() && !this.crmContentOwnershipService.IsCurrentUserOperator()) { throw new OrchardSecurityException(T("You don't have authorization to do the query")); } this.activityNotificationService.UpdateLastVisitActivity(activityStreamId); AjaxMessageViewModel returnValue = new AjaxMessageViewModel { IsDone = true }; return(this.Json(returnValue, JsonRequestBehavior.AllowGet)); }
public virtual ActionResult Edit(int[] ids, string returnUrl) { var model = this.CreateEditPermissionsModel(ids); model.ReturnUrl = returnUrl; if (Request.IsAjaxRequest()) { AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { IsDone = true }; this.widgetService.GetWidgets(model, this.HttpContext); ajaxMessageModel.Html = CRMHelper.RenderPartialViewToString(this, "Edit", model); return(this.Json(ajaxMessageModel, JsonRequestBehavior.AllowGet)); } else { return(View(model)); } }
protected ActionResult CreateActionResult(int contentItemId, string view, object ajaxData, Func <object> createFullModel) { if (Request.IsAjaxRequest()) { AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { Id = contentItemId, IsDone = ModelState.IsValid, Data = ajaxData }; CRMHelper.AddModelStateErrors(this.ModelState, ajaxMessageModel); return(this.Json(ajaxMessageModel, JsonRequestBehavior.AllowGet)); } else { object model = null; if (createFullModel != null) { model = createFullModel(); } return(this.View(view, model)); } }
public ActionResult QuickUpdate(TicketQuickUpdateViewModel model, string displyType) { if (!this.crmContentOwnershipService.IsCurrentUserOperator() && !this.crmContentOwnershipService.IsCurrentUserCustomer()) { return(new HttpUnauthorizedResult()); } if (model.Ids.Count == 0) { this.ModelState.AddModelError("Ids", "The model must contains minimum one contentItem.Id"); } var tickets = this.contentManager.GetMany <TicketPart>(model.Ids, VersionOptions.DraftRequired, new QueryHints().ExpandRecords(new[] { "TicketPartRecord", "ContentItemPermissionPartRecord" })).ToList(); if (tickets.Count != model.Ids.Count) { return(HttpNotFound()); } bool afterUpdateUserStillCanChangeOwnership = true; if (ModelState.IsValid) { foreach (var ticket in tickets) { var contentItem = ticket.ContentItem; var context = new UpdateContentContext(contentItem); this.Handlers.Invoke(handler => handler.Updating(context), Logger); if (contentItem == null) { return(HttpNotFound()); } if (!this.IsEditAuthorized(contentItem)) { this.ModelState.AddModelError("Ids", T("You don't have right access to change these items").Text); return(this.CreateActionResultBasedOnAjaxRequest(null, null)); } dynamic snapshot = this.streamService.TakeSnapshot(contentItem); if (model.UpdateBusinessUnitId || model.UpdateTeamId || model.UpdateUserId) { PostedEditOwnerViewModel postedEditOwnerViewModel = new PostedEditOwnerViewModel(); postedEditOwnerViewModel.UserId = model.UpdateUserId ? model.UserId : null; if (model.BusinessUnitId.HasValue) { postedEditOwnerViewModel.GroupId = model.UpdateBusinessUnitId ? "BusinessUnit:" + model.BusinessUnitId.Value.ToString(CultureInfo.InvariantCulture) : string.Empty; } if (model.UpdateTeamId && model.TeamId.HasValue) { postedEditOwnerViewModel.GroupId = "Team:" + model.TeamId.Value.ToString(CultureInfo.InvariantCulture); } this.EditOwner(contentItem, postedEditOwnerViewModel, false, false); afterUpdateUserStillCanChangeOwnership = this.crmContentOwnershipService.CurrentUserIsContentItemAssignee(contentItem) || this.services.Authorizer.Authorize(Permissions.AdvancedOperatorPermission); } TicketPart ticketPart = contentItem.As <TicketPart>(); // Title if (!string.IsNullOrEmpty(model.Title)) { ticketPart.Record.Title = model.Title; } // Description if (model.UpdateDescription) { ticketPart.Record.Description = model.Description; } // Priority if (model.PriorityId.HasValue) { ticketPart.Record.PriorityRecord = new PriorityRecord { Id = model.PriorityId.Value }; } else if (model.UpdatePriority) { ticketPart.Record.PriorityRecord = null; } // serviceId if (model.ServiceId.HasValue) { ticketPart.Record.Service = new ServiceRecord { Id = model.ServiceId.Value }; } else if (model.UpdateServiceId) { ticketPart.Record.Service = null; } // statusId if (model.StatusId.HasValue) { ticketPart.Record.StatusRecord = new StatusRecord { Id = model.StatusId.Value }; } else if (model.UpdateStatusId) { ticketPart.Record.StatusRecord = null; } // TicketTypeId if (model.TypeId.HasValue) { ticketPart.Record.TicketType = new TicketTypeRecord { Id = model.TypeId.Value }; } else if (model.UpdateTypeId) { ticketPart.Record.TicketType = null; } // DueDate if (model.DueDate.HasValue) { ticketPart.Record.DueDate = model.DueDate.Value; } else if (model.UpdateDueDate) { ticketPart.Record.DueDate = null; } this.Handlers.Invoke(handler => handler.Updated(context), Logger); contentManager.Publish(contentItem); this.streamService.WriteChangesToStreamActivity(contentItem, snapshot, StreamWriters.TicketStreamWriter); var documentIndex = this.indexProvider.New(contentItem.Id); this.contentManager.Index(contentItem, documentIndex); this.indexProvider.Store(TicketController.SearchIndexName, documentIndex); } } bool isAjaxRequest = Request.IsAjaxRequest(); if (isAjaxRequest) { displyType = string.IsNullOrEmpty(displyType) ? "Summary" : displyType; List <dynamic> shapes = new List <dynamic>(); foreach (var contentItem in tickets) { var shape = this.contentManager.BuildDisplay(tickets[0].ContentItem, displayType: displyType); shapes.Add(shape); } var data = new { Tickets = Newtonsoft.Json.JsonConvert.SerializeObject(shapes), ChangeOwnershipIsPossible = afterUpdateUserStillCanChangeOwnership }; AjaxMessageViewModel ajaxMessageModel = new AjaxMessageViewModel { Id = tickets[0].ContentItem.Id, IsDone = ModelState.IsValid, Data = data }; foreach (var item in ModelState) { ajaxMessageModel.Errors.AddRange(item.Value.Errors.Select(c => new KeyValuePair <string, string>(item.Key, c.Exception != null ? c.Exception.Message : c.ErrorMessage)).Where(c => !string.IsNullOrEmpty(c.Value))); } return(this.Json(ajaxMessageModel, JsonRequestBehavior.AllowGet)); } else if (!string.IsNullOrEmpty(model.returnUrl)) { return(this.Redirect(model.returnUrl)); } else { return(this.RedirectToAction("Edit", new RouteValueDictionary { { "Id", tickets[0].ContentItem.Id } })); } }