public ActionResult AdvancedSearch() { var accountId = this.Identity.ToAccountID(); var roleId = this.Identity.ToRoleID(); IList <FilterViewModel> filters = new List <FilterViewModel>(); FilterViewModel filterviewmodel = new FilterViewModel(); filterviewmodel.FieldId = (int)ContactFields.FirstNameField; filterviewmodel.SearchDefinitionID = 0; filterviewmodel.SearchFilterID = 0; filterviewmodel.SearchQualifierTypeID = (short)SearchQualifier.Is; filterviewmodel.SearchText = string.Empty; FilterViewModel lastNameFilter = new FilterViewModel(); lastNameFilter.FieldId = (int)ContactFields.LastNameField; lastNameFilter.SearchDefinitionID = 0; lastNameFilter.SearchFilterID = 0; lastNameFilter.SearchQualifierTypeID = (short)SearchQualifier.Is; lastNameFilter.SearchText = string.Empty; filters.Add(filterviewmodel); filters.Add(lastNameFilter); IEnumerable <FieldViewModel> searchFields = null; GetAdvanceSearchFieldsResponse response = advancedSearchService.GetSearchFields(new GetAdvanceSearchFieldsRequest() { accountId = accountId, RoleId = roleId }); if (response.FieldsViewModel != null) { searchFields = response.FieldsViewModel; } AdvancedSearchViewModel searchViewModel = new AdvancedSearchViewModel() { SearchDefinitionName = "", SearchPredicateTypeID = 1, SearchFilters = filters, SearchFields = searchFields }; short ItemsPerPage = default(short); short.TryParse(this.Identity.ToItemsPerPage(), out ItemsPerPage); ViewBag.ItemsPerPage = ItemsPerPage; AddCookie("savedsearchpagesize", ItemsPerPage.ToString(), 1); int defaultPageNumber = 1; AddCookie("advancedsearchpagenumber", defaultPageNumber.ToString(), 1); ViewBag.EmailPermission = cachingService.CheckSendMailPermissions(accountId, roleId); bool gridvisible = false; ViewBag.grid = gridvisible; return(View("AddEditSearch", searchViewModel)); }
public HttpResponseMessage GetFields() { GetAdvanceSearchFieldsRequest fieldrequest = new GetAdvanceSearchFieldsRequest() { accountId = this.AccountId, RoleId = this.RoleId }; GetAdvanceSearchFieldsResponse response = advancedSearchService.GetSearchFields(fieldrequest); IEnumerable <FieldViewModel> searchFields = response.FieldsViewModel; foreach (FieldViewModel field in searchFields) { if (field.AccountID == null) { field.Title += " *"; } } return(Request.CreateResponse(HttpStatusCode.OK, searchFields)); }
protected override void ExecuteInternal(IJobExecutionContext context) { var response = _accountService.GetBulkOperationData(new GetBulkOperationDataRequest()); try { Log.Informational("Entering into BulkOperation processor"); List <int> ids = null; while (response.BulkOperations != null) { var notification = new Notification { Time = DateTime.Now.ToUniversalTime(), Status = NotificationStatus.New, EntityId = response.BulkOperations.OperationID, UserID = response.BulkOperations.UserID, ModuleID = (byte)AppModules.Contacts }; try { if (response.BulkOperations.SearchDefinitionID != null) { Log.Informational("Bulk SearchDefinitionID" + response.BulkOperations.SearchDefinitionID); GetSavedSearchContactIdsRequest advRequest = new GetSavedSearchContactIdsRequest() { SearchDefinitionId = (int)response.BulkOperations.SearchDefinitionID, AccountId = response.BulkOperations.AccountID }; Log.Informational("For Getting SavedSearch Contacts By SearchdefinitionID In BulkOperation"); ids = _advancedSearchService.GetSavedSearchContactIds(advRequest).Result; } else if (response.BulkContactIDs.Length > 0) { Log.Informational("Bulk contacts Length" + response.BulkContactIDs.ToList()); ids = response.BulkContactIDs.ToList(); } if (ids.IsAny() || !string.IsNullOrEmpty(response.BulkOperations.SearchCriteria)) { GetBulkContactsResponse contactsResponse = _contactService.GetBulkContacts(new GetBulkContactsRequest() { BulkOperations = response.BulkOperations, ContactIds = ids }); _accountService.InsertBulkData(contactsResponse.ContactIds, response.BulkOperations.BulkOperationID); #region Actions if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Action) { Log.Informational("Performing bulk add action with operationId : " + response.BulkOperations.OperationID); IEnumerable <int> contactIds = null; IDictionary <int, Guid> emailGuids = new Dictionary <int, Guid>(); IDictionary <int, Guid> textGuids = new Dictionary <int, Guid>(); var action = _actionService.UpdateActionBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, response.BulkOperations.UserID, response.BulkOperations.AccountPrimaryEmail, response.BulkOperations.AccountDomain, false, false, "", response.BulkOperations.ActionCompleted, contactIds, false, 0, emailGuids, textGuids); notification.Subject = action.Details; notification.Details = "Bulk Operation for adding action completed successfully"; notification.ModuleID = (byte)AppModules.ContactActions; } #endregion #region Note else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Note) { Log.Verbose("Updating Note Bulk Data for operationid: " + response.BulkOperations.OperationID); if (ids.IsAny()) { var note = _noteService.UpdateNoteBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, contactsResponse.ContactIds); notification.Subject = note.Details; notification.Details = "Bulk Operation for adding note completed successfully"; } else { notification.Subject = "Could not perform operation"; notification.Details = "Opeartion could not be performed as there were no contacts found"; } notification.ModuleID = (byte)AppModules.Contacts; } #endregion #region Tour else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Tour) { Log.Informational("Performing bulk add tour with operationId : " + response.BulkOperations.OperationID); IDictionary <int, Guid> emailGuids = new Dictionary <int, Guid>(); IDictionary <int, Guid> textGuids = new Dictionary <int, Guid>(); var tour = _tourService.UpdateTourBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, response.BulkOperations.UserID, response.BulkOperations.AccountPrimaryEmail, response.BulkOperations.AccountDomain, false, "", null, false, 0, emailGuids, textGuids); notification.Subject = tour.TourDetails; notification.Details = "Bulk Operation for adding tour completed successfully"; notification.ModuleID = (byte)AppModules.ContactTours; } #endregion #region Tag else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Tag) { Log.Informational("Performing bulk add tag with operationId : " + response.BulkOperations.OperationID); var tag = _tagService.UpdateTagBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, response.BulkOperations.UserID); notification.Subject = tag.TagName; notification.Details = "Bulk Operation for adding tag completed successfully"; notification.ModuleID = (byte)AppModules.Contacts; _accountService.ScheduleAnalyticsRefresh(response.BulkOperations.OperationID, (byte)IndexType.Tags); } #endregion #region ChangeOwner else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.ChangeOwner) { Log.Informational("Performing bulk change owner with operationId : " + response.BulkOperations.OperationID); if (ids.IsAny()) { var owner = _contactService.UpdateOwnerBulkData(response.BulkOperations.OperationID, response.BulkOperations.UserID, response.BulkOperations.AccountID, contactsResponse.ContactIds); notification.Subject = "New owner: " + owner.FirstName + " " + owner.LastName; notification.Details = "Bulk Operation for changing owner completed successfully"; } else { notification.Subject = "Could not perform operation"; notification.Details = "Opeartion could not be performed as there were no contacts found"; } notification.ModuleID = (byte)AppModules.Contacts; } #endregion #region Export else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Export) { Log.Informational("Performing bulk export with operationId : " + response.BulkOperations.OperationID); IEnumerable <FieldViewModel> searchFields = null; GetAdvanceSearchFieldsResponse filedsresponse = _advancedSearchService.GetSearchFields(new GetAdvanceSearchFieldsRequest() { accountId = response.BulkOperations.AccountID, RoleId = response.BulkOperations.RoleID }); if (filedsresponse.FieldsViewModel != null) { searchFields = ExcludeNonViewableFields(filedsresponse.FieldsViewModel); } Task.Run(() => _contactService.UpdateBulkExcelExport(response.BulkOperations, contactsResponse.Contacts, searchFields)); } #endregion #region Delete else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Delete) { Log.Informational("Performing bulk delete with operationId : " + response.BulkOperations.OperationID); if (ids.IsAny()) { _contactService.UpdateDeleteBulkData(response.BulkOperations.OperationID, response.BulkOperations.UserID, response.BulkOperations.AccountID, contactsResponse.ContactIds); notification.Subject = "Bulk Operation for deleting contacts completed successfully"; notification.Details = "Bulk Operation for deleting contacts completed successfully"; } else { notification.Subject = "Could not perform operation"; notification.Details = "Opeartion could not be performed as there were no contacts found"; } notification.ModuleID = (byte)AppModules.Contacts; } #endregion _accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Completed }); if (response.BulkOperations.OperationType != (int)BulkOperationTypes.Export) { _userService.AddNotification(new AddNotificationRequest() { Notification = notification }); } } else { _accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Failed }); } //TODO: Remove this, will cause job run too much time response = _accountService.GetBulkOperationData(new GetBulkOperationDataRequest() { }); } catch (Exception exe) { Log.Error("Error while BulkOperation", exe); _accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Failed }); //TODO: Remove this, will cause job run too much time response = _accountService.GetBulkOperationData(new GetBulkOperationDataRequest() { }); } } } catch (Exception ex) { Log.Error("Error while BulkOperation", ex); _accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Failed }); } }
protected override void Execute() { GetBulkOperationDataResponse response = accountService.GetBulkOperationData(new GetBulkOperationDataRequest() { }); try { Logger.Current.Informational("Entering into BulkOperation processor"); while (response.BulkOperations != null) { Notification notification = new Notification(); notification.Time = DateTime.Now.ToUniversalTime(); notification.Status = NotificationStatus.New; notification.EntityId = response.BulkOperations.OperationID; notification.UserID = response.BulkOperations.UserID; notification.ModuleID = (byte)AppModules.Contacts; try { if (response.BulkContactIDs.Length > 0) { GetBulkContactsResponse contactsResponse = contactService.GetBulkContacts(new GetBulkContactsRequest() { BulkOperations = response.BulkOperations, ContactIds = response.BulkContactIDs.ToList() }); accountService.InsertBulkData(contactsResponse.ContactIds, response.BulkOperations.BulkOperationID); #region Actions if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Action) { Logger.Current.Informational("Performing bulk add action with operationId : " + response.BulkOperations.OperationID); IEnumerable <int> contactIds = null; IDictionary <int, Guid> emailGuids = new Dictionary <int, Guid>(); IDictionary <int, Guid> textGuids = new Dictionary <int, Guid>(); var action = actionService.UpdateActionBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, response.BulkOperations.UserID, response.BulkOperations.AccountPrimaryEmail, response.BulkOperations.AccountDomain, false, false, "", response.BulkOperations.ActionCompleted, contactIds, false, 0, emailGuids, textGuids); notification.Subject = action.Details; notification.Details = "Bulk Operation for adding action completed successfully"; notification.ModuleID = (byte)AppModules.ContactActions; } #endregion #region Note else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Note) { Logger.Current.Verbose("Updating Note Bulk Data for operationid: " + response.BulkOperations.OperationID); if (contactsResponse.ContactIds.IsAny()) { var note = noteService.UpdateNoteBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, contactsResponse.ContactIds); notification.Subject = note.Details; notification.Details = "Bulk Operation for adding note completed successfully"; } else { notification.Subject = "Could not perform operation"; notification.Details = "Opeartion could not be performed as there were no contacts found"; } notification.ModuleID = (byte)AppModules.Contacts; } #endregion #region Tour else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Tour) { Logger.Current.Informational("Performing bulk add tour with operationId : " + response.BulkOperations.OperationID); IDictionary <int, Guid> emailGuids = new Dictionary <int, Guid>(); IDictionary <int, Guid> textGuids = new Dictionary <int, Guid>(); var tour = tourService.UpdateTourBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, response.BulkOperations.UserID, response.BulkOperations.AccountPrimaryEmail, response.BulkOperations.AccountDomain, false, false, "", null, false, 0, emailGuids, textGuids); notification.Subject = tour.TourDetails; notification.Details = "Bulk Operation for adding tour completed successfully"; notification.ModuleID = (byte)AppModules.ContactTours; } #endregion #region Tag else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Tag) { Logger.Current.Informational("Performing bulk add tag with operationId : " + response.BulkOperations.OperationID); var tag = tagService.UpdateTagBulkData(response.BulkOperations.OperationID, response.BulkOperations.AccountID, response.BulkOperations.UserID); notification.Subject = tag.TagName; notification.Details = "Bulk Operation for adding tag completed successfully"; notification.ModuleID = (byte)AppModules.Contacts; accountService.ScheduleAnalyticsRefresh(response.BulkOperations.OperationID, (byte)IndexType.Tags); } #endregion #region ChangeOwner else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.ChangeOwner) { Logger.Current.Informational("Performing bulk change owner with operationId : " + response.BulkOperations.OperationID); if (contactsResponse.ContactIds.IsAny()) { var owner = contactService.UpdateOwnerBulkData(response.BulkOperations.OperationID, response.BulkOperations.UserID, response.BulkOperations.AccountID, contactsResponse.ContactIds); notification.Subject = "New owner: " + owner.FirstName + " " + owner.LastName; notification.Details = "Bulk Operation for changing owner completed successfully"; } else { notification.Subject = "Could not perform operation"; notification.Details = "Opeartion could not be performed as there were no contacts found"; } notification.ModuleID = (byte)AppModules.Contacts; } #endregion #region Export else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Export) { Logger.Current.Informational("Performing bulk export with operationId : " + response.BulkOperations.OperationID); IEnumerable <FieldViewModel> searchFields = null; GetAdvanceSearchFieldsResponse filedsresponse = advancedSearchService.GetSearchFields(new GetAdvanceSearchFieldsRequest() { accountId = response.BulkOperations.AccountID, RoleId = response.BulkOperations.RoleID }); if (filedsresponse.FieldsViewModel != null) { searchFields = ExcludeNonViewableFields(filedsresponse.FieldsViewModel); } Task.Run(() => contactService.UpdateBulkExcelExport(response.BulkOperations, contactsResponse.Contacts, searchFields)); } #endregion #region Delete else if (response.BulkOperations.OperationType == (int)BulkOperationTypes.Delete) { Logger.Current.Informational("Performing bulk delete with operationId : " + response.BulkOperations.OperationID); if (contactsResponse.ContactIds.IsAny()) { contactService.UpdateDeleteBulkData(response.BulkOperations.OperationID, response.BulkOperations.UserID, response.BulkOperations.AccountID, contactsResponse.ContactIds); notification.Subject = "Bulk Operation for deleting contacts completed successfully"; notification.Details = "Bulk Operation for deleting contacts completed successfully"; } else { notification.Subject = "Could not perform operation"; notification.Details = "Opeartion could not be performed as there were no contacts found"; } notification.ModuleID = (byte)AppModules.Contacts; } #endregion accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Completed }); if (response.BulkOperations.OperationType != (int)BulkOperationTypes.Export) { userService.AddNotification(new AddNotificationRequest() { Notification = notification }); } } else { accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Failed }); } response = accountService.GetBulkOperationData(new GetBulkOperationDataRequest() { }); } catch (Exception exe) { Logger.Current.Error("Error while BulkOperation", exe); accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Failed }); response = accountService.GetBulkOperationData(new GetBulkOperationDataRequest() { }); } } } catch (Exception ex) { Logger.Current.Error("Error while BulkOperation", ex); accountService.UpdateBulkOperationStatus(new UpdateBulkOperationStatusRequest() { BulkOperationId = response.BulkOperations.BulkOperationID, Status = BulkOperationStatus.Failed }); } }