public TicketButtonViewModel(OpenTicketData openTicketData, Resource baseResource) { _openTicketData = openTicketData; _baseResourceId = baseResource != null ? baseResource.Id : 0; OpenTicketCommand = new DelegateCommand<string>(OnOpenTicketCommand); SelectTicketCommand = new DelegateCommand<string>(OnSelectTicket); }
public IEnumerable<ResourceCustomField> GetMatchingFields(Resource resource, string searchString) { if (!string.IsNullOrEmpty(resource.CustomData)) { const string nameFormat = "\"Name\":\"{0}\""; var data = resource.CustomData.Split(new[] { "}," }, StringSplitOptions.RemoveEmptyEntries) .Where(x => Regex.Match(x, "\"Value\":\"([^\"]+)\"").Groups[1].Value.ToLower().Contains(searchString.ToLower())); return ResoruceCustomFields.Where(x => data.Any(y => y.ToLower().Contains(string.Format(nameFormat, x.Name).ToLower()) && y.ToLower().Contains(searchString.ToLower()))); } return ResoruceCustomFields; }
public string GetAccountName(Resource resource) { if (string.IsNullOrEmpty(resource.Name)) return ""; var result = AccountNameTemplate; result = result.Replace("[Id]", resource.Id.ToString(CultureInfo.InvariantCulture)); result = result.Replace("[Name]", resource.Name); while (Regex.IsMatch(result, "\\[([^\\]]+)\\]")) { var match = Regex.Match(result, "\\[([^\\]]+)\\]"); var propName = match.Groups[1].Value; var data = resource.GetCustomData(propName); if (string.IsNullOrEmpty(data)) return ""; result = result.Replace(match.Groups[0].Value, resource.GetCustomData(propName)); } return result; }
public void UpdateResource(Resource resource) { var r = TicketResources.SingleOrDefault(x => x.ResourceTemplateId == resource.ResourceTemplateId); if (r == null) { TicketResources.Add(new TicketResource() { ResourceId = resource.Id, ResourceName = resource.Name, ResourceTemplateId = resource.ResourceTemplateId }); } else { r.ResourceId = resource.Id; r.ResourceName = resource.Name; r.ResourceTemplateId = resource.ResourceTemplateId; } }
public ResourceSearchResultViewModel(Resource model, ResourceType template) { ResourceType = template; Model = model; }
public ResourceCustomDataViewModel(Resource model, ResourceType template) { _template = template; Model = model; }
private void OnResourceSelectedForTicket(EventParameters<EntityOperationRequest<Resource>> eventParameters) { if (eventParameters.Topic == EventTopicNames.ResourceSelected) { if (SelectedTicket != null) { _ticketService.UpdateResource(SelectedTicket, eventParameters.Value.SelectedEntity); if (_applicationState.SelectedResourceScreen != null && SelectedTicket.Orders.Count > 0 && eventParameters.Value.SelectedEntity.Id > 0 && eventParameters.Value.SelectedEntity.ResourceTypeId == _applicationState.SelectedResourceScreen.ResourceTypeId) CloseTicket(); else DisplaySingleTicket(); } else { var openTickets = _ticketService.GetOpenTicketIds(eventParameters.Value.SelectedEntity.Id).ToList(); if (!openTickets.Any()) { OpenTicket(0); _ticketService.UpdateResource(SelectedTicket, eventParameters.Value.SelectedEntity); } else if (openTickets.Count > 1) { _lastSelectedResource = eventParameters.Value.SelectedEntity; _ticketListViewModel.UpdateListByResource(eventParameters.Value.SelectedEntity); DisplayTicketList(); return; } else { OpenTicket(openTickets.ElementAt(0)); } EventServiceFactory.EventService.PublishEvent(EventTopicNames.ActivatePosView); } } }
public void UpdateResource(Ticket ticket, Resource resource) { if (resource == null) return; UpdateResource(ticket, resource.ResourceTypeId, resource.Id, resource.Name, resource.AccountId, resource.CustomData); }
public void DisplayTickets() { _lastSelectedResource = null; if (_applicationState.CurrentDepartment == null && _applicationState.CurrentLoggedInUser.UserRole.DepartmentId > 0) _applicationStateSetter.SetCurrentDepartment(_applicationState.CurrentLoggedInUser.UserRole.DepartmentId); Debug.Assert(_applicationState.CurrentDepartment != null); if (SelectedTicket != null || !_cacheService.GetResourceScreens().Any() || _applicationState.CurrentDepartment.TicketCreationMethod == 1) { DisplaySingleTicket(); return; } CommonEventPublisher.PublishEntityOperation<Resource>(null, EventTopicNames.SelectResource, EventTopicNames.ResourceSelected); }
public void UpdateAccountOfOpenTickets(Resource resource) { var openTicketDataList = GetOpenTickets(resource.Id); using (var w = WorkspaceFactory.Create()) { var tickets = openTicketDataList.Select(data => w.Single<Ticket>(x => x.Id == data.Id, x => x.TicketResources)).ToList(); foreach (var ticket in tickets) { ticket.TicketResources.Where(x => x.ResourceId == resource.Id).ToList().ForEach(x => x.AccountId = resource.AccountId); w.CommitChanges(); } } }
private void OnSelectResource(Resource obj) { new EntityOperationRequest<Resource>(obj, null).PublishEvent(EventTopicNames.ResourceSelected, true); }
private void OnCreateResource(string obj) { var targetEvent = _currentResourceSelectionRequest != null ? _currentResourceSelectionRequest.GetExpectedEvent() : EventTopicNames.SelectResource; var newResource = new Resource { ResourceTypeId = SelectedResourceType.Id, Name = SearchString }; ClearSearchValues(); CommonEventPublisher.PublishEntityOperation(newResource, EventTopicNames.EditResourceDetails, targetEvent); }
public ResourceSearchResultViewModel(Resource model, ResourceTemplate template) { AccountTemplate = template; Model = model; UpdateDetailedInfo(); }
public void UpdateListByResource(Resource resource) { if (resource != null) { SelectedEntity = resource; _tickets = _ticketService.GetOpenTickets(resource.Id).Select(x => new TicketButtonViewModel(x, resource)).ToList(); Refresh(); } }