private void OnSelectTicketTagGroup(TicketTagGroup obj) { var ticketTagData = new TicketTagData { TicketTagGroup = obj, Ticket = _selectedTicket }; ticketTagData.PublishEvent(EventTopicNames.SelectTicketTag); }
public override void Process(ActionData actionData) { var ticketTagName = actionData.GetAsString("TicketTagName"); var ticketStateName = actionData.GetAsString("TicketStateName"); if (!string.IsNullOrEmpty(ticketStateName)) { var dt = new TicketStateData { StateName = ticketStateName }; dt.PublishEvent(EventTopicNames.ActivateTicketList); } else if (!string.IsNullOrEmpty(ticketTagName)) { var dt = new TicketTagGroup { Name = ticketTagName }; dt.PublishEvent(EventTopicNames.ActivateTicketList); } }
void SelectedTicketItemEditorViewModelTagUpdated(TicketTagGroup item) { Debug.Assert(DataContext.SelectedTicket != null); if (DataContext.SelectedTicket.Items.Count == 0) { ActivateMenuItemSelector(); } else if (item.Action > 0) { CloseSelectedTicket(); ActivateTableView(); } else { ActivateTicketView(null); } }
private bool CanExecuteShowTicketTags(TicketTagGroup arg) { return SelectedTicket.CanSubmit; }
public void UpdateTag(TicketTagGroup tagGroup, TicketTag ticketTag) { Model.SetTagValue(tagGroup.Name, ticketTag.Name); if (tagGroup.Numerator != null) { Model.TicketNumber = ""; AppServices.MainDataContext.UpdateTicketNumber(Model, tagGroup.Numerator); } if (ticketTag.AccountId > 0) AppServices.MainDataContext.AssignCustomerToTicket(Model, Dao.SingleWithCache<Customer>(x => x.Id == ticketTag.AccountId)); ClearSelectedItems(); var tagData = new TicketTagData { Action = tagGroup.Action, TagName = tagGroup.Name, TagValue = ticketTag.Name, NumericValue = tagGroup.NumericTags || tagGroup.PriceTags ? Convert.ToDecimal(ticketTag.Name) : 0 }; RuleExecutor.NotifyEvent(RuleEventNames.TicketTagSelected, new { Ticket = Model, tagData.TagName, tagData.TagValue, tagData.NumericValue, TicketTag = Model.Tag }); tagData.PublishEvent(EventTopicNames.TagSelectedForSelectedTicket); }
private void UpdateTicketTag(Ticket ticket, TicketTagGroup tagGroup, TicketTag ticketTag) { _ticketService.UpdateTag(ticket, tagGroup, ticketTag); EventServiceFactory.EventService.PublishEvent(EventTopicNames.ActivatePosView); }
private static IEnumerable<TicketTagFilterViewModel> GetOpenTicketTags(IEnumerable<OpenTicketViewModel> openTickets, TicketTagGroup tagGroup, string tagFilter) { var tag = tagGroup.Name.ToLower() + ":"; var cnt = openTickets.Count(x => string.IsNullOrEmpty(x.TicketTag) || !x.TicketTag.ToLower().Contains(tag)); var opt = new List<TicketTagFilterViewModel>(); if (string.IsNullOrEmpty(tagFilter) && tagGroup.TicketTags.Count > 1) { opt = openTickets.Where(x => !string.IsNullOrEmpty(x.TicketTag)) .SelectMany(x => x.TicketTag.Split('\r')) .Where(x => x.ToLower().Contains(tag)) .Distinct() .Select(x => x.Split(':')).Select(x => new TicketTagFilterViewModel { TagGroup = x[0], TagValue = x[1] }).OrderBy(x => x.TagValue).ToList(); var usedTags = opt.Select(x => x.TagValue); opt.AddRange(tagGroup.TicketTags.Select(x => x.Name).Where(x => !usedTags.Contains(x)).Select(x => new TicketTagFilterViewModel { TagGroup = tagGroup.Name, ButtonColor = "White", TagValue = x })); opt.Sort(new AlphanumComparator()); } if (tagGroup.TicketTags.Count > 1) { if (string.IsNullOrEmpty(tagFilter)) opt.Insert(0, new TicketTagFilterViewModel { TagGroup = tagGroup.Name, TagValue = "*", ButtonColor = "Blue" }); else opt.Insert(0, new TicketTagFilterViewModel { TagGroup = tagGroup.Name, TagValue = "", ButtonColor = "Green" }); if (cnt > 0) opt.Insert(0, new TicketTagFilterViewModel { Count = cnt, TagGroup = tagGroup.Name, ButtonColor = "Red", TagValue = " " }); } return opt; }
public TicketTagButton(TicketTagGroup ticketTagGroup, TicketViewModel ticket) { Model = ticketTagGroup; Caption = Model.Name; _ticket = ticket; }
public TicketTagValueViewModel(TicketTagGroup ticketTagGroup, Ticket ticket) { _ticketTagGroup = ticketTagGroup; _ticket = ticket; }
public void InvokeOnTicketTagEditorRequested(TicketTagGroup tag) { EventHandler handler = OnTicketTagEditorRequested; if (handler != null) handler(tag, EventArgs.Empty); }
public void CloseView() { SelectedItem = null; SelectedItemPortions.Clear(); SelectedItemPropertyGroups.Clear(); SelectedItemGroupedPropertyItems.Clear(); TicketTags.Clear(); SelectedTicketTag = null; }
public void InvokeTagUpdated(TicketTagGroup item) { TagUpdatedEventHandler handler = TagUpdated; if (handler != null) handler(item); }
public void Refresh(TicketItemViewModel ticketItem, TicketTagGroup selectedTicketTag) { HideKeyboard(); SelectedTicketTag = null; SelectedItemPortions.Clear(); SelectedItemPropertyGroups.Clear(); SelectedItemGroupedPropertyItems.Clear(); TicketTags.Clear(); SelectedItem = ticketItem; if (ticketItem != null) { var mi = AppServices.DataAccessService.GetMenuItem(ticketItem.Model.MenuItemId); if (mi.Portions.Count > 1) SelectedItemPortions.AddRange(mi.Portions.Select(x => new MenuItemPortionViewModel(x))); SelectedItemGroupedPropertyItems.AddRange(mi.PropertyGroups.Where(x => !string.IsNullOrEmpty(x.GroupTag)) .GroupBy(x => x.GroupTag) .Select(x => new MenuItemGroupedPropertyViewModel(SelectedItem, x))); SelectedItemPropertyGroups.AddRange(mi.PropertyGroups .Where(x => string.IsNullOrEmpty(x.GroupTag)) .Select(x => new MenuItemPropertyGroupViewModel(x))); foreach (var ticketItemPropertyViewModel in ticketItem.Properties.ToList()) { var tip = ticketItemPropertyViewModel; var mig = SelectedItemPropertyGroups.Where(x => x.Model.Id == tip.Model.PropertyGroupId).SingleOrDefault(); if (mig != null) mig.Properties.SingleOrDefault(x => x.Name == tip.Model.Name).TicketItemProperty = ticketItemPropertyViewModel.Model; var sig = SelectedItemGroupedPropertyItems.SelectMany(x => x.Properties).Where( x => x.MenuItemPropertyGroup.Id == tip.Model.PropertyGroupId).FirstOrDefault(); if (sig != null) sig.TicketItemProperty = ticketItemPropertyViewModel.Model; } } else { if (selectedTicketTag != null) { SelectedTicketTag = selectedTicketTag; if (selectedTicketTag.FreeTagging) { TicketTags.AddRange(Dao.Query<TicketTagGroup>(x => x.Id == selectedTicketTag.Id, x => x.TicketTags).SelectMany(x => x.TicketTags).OrderBy(x => x.Name).Select(x => new TicketTagViewModel(x))); } else { TicketTags.AddRange(selectedTicketTag.TicketTags.Select(x => new TicketTagViewModel(x))); } RaisePropertyChanged("TicketTags"); } else { RaisePropertyChanged("TicketNote"); ShowKeyboard(); } } RaisePropertyChanged("SelectedItem"); RaisePropertyChanged("IsPortionsVisible"); RaisePropertyChanged("IsEditorsVisible"); RaisePropertyChanged("IsTicketNoteVisible"); RaisePropertyChanged("IsTagEditorVisible"); RaisePropertyChanged("IsFreeTagEditorVisible"); RaisePropertyChanged("TagColumnCount"); }
private void OnTicketTagExecute(TicketTagGroup obj) { InvokeOnTicketTagEditorRequested(obj); }
private bool CanTicketTagExecute(TicketTagGroup arg) { return SelectedTicket != null && (!SelectedTicket.IsLocked || !SelectedTicket.IsTaggedWith(arg.Name)); }
private void OnShowTicketsTagExecute(TicketTagGroup tagGroup) { if (SelectedTicket == Ticket.Empty) { tagGroup.PublishEvent(EventTopicNames.ActivateTicketList); return; } var ticketTagData = new TicketTagData { TicketTagGroup = tagGroup, Ticket = SelectedTicket }; ticketTagData.PublishEvent(EventTopicNames.SelectTicketTag); }
private void OnShowTicketsTagExecute(TicketTagGroup tagGroup) { if (SelectedTicket != null) { _selectedTicket.LastSelectedTicketTag = tagGroup; _selectedTicket.PublishEvent(EventTopicNames.SelectTicketTag); } else if (ShowAllOpenTickets.CanExecute("")) { SelectedTag = tagGroup.Name; RefreshOpenTickets(); if ((OpenTickets != null && OpenTickets.Count() > 0) || OpenTicketTags.Count() > 0) { SelectedTicketView = OpenTicketListView; RaisePropertyChanged("OpenTickets"); } else InteractionService.UserIntraction.GiveFeedback(string.Format(Resources.NoTicketsFoundForTag, tagGroup.Name)); } }
public void UpdateListByTicketTagGroup(TicketTagGroup tagGroup) { SelectedEntity = tagGroup; var tagValue = string.Format("\"TN\":\"{0}\"", tagGroup.Name); _tickets = _ticketServiceBase.GetOpenTickets(x => !x.IsClosed && x.TicketTags.Contains(tagValue)).Select(x => new TicketButtonViewModel(x, null)).ToList(); Refresh(); }
private void OnShowTicketsTagExecute(TicketTagGroup tagGroup) { if (SelectedTicket != null) { var ticketTagData = new TicketTagData { TicketTagGroup = tagGroup, Ticket = SelectedTicket.Model }; ticketTagData.PublishEvent(EventTopicNames.SelectTicketTag); } else if (ShowAllOpenTickets.CanExecute("")) { SelectedDepartment.PublishEvent(EventTopicNames.ActivateOpenTickets); //todo bi çözüm bulalým //if ((OpenTickets != null && OpenTickets.Count() > 0)) //{ // SelectedTicketView = OpenTicketListView; // RaisePropertyChanged(() => OpenTickets); //} //else InteractionService.UserIntraction.GiveFeedback(string.Format(Resources.NoTicketsFoundForTag, tagGroup.Name)); } }
public void UpdateTag(Ticket ticket, TicketTagGroup tagGroup, TicketTag ticketTag) { UpdateTag(ticket, tagGroup, ticketTag.Name); }
public void UpdateTag(Ticket ticket, TicketTagGroup tagGroup, TicketTag ticketTag) { ticket.SetTagValue(tagGroup.Name, ticketTag.Name); if (tagGroup.FreeTagging && tagGroup.SaveFreeTags) { SaveFreeTicketTag(tagGroup.Id, ticketTag.Name); } var tagData = new TicketTagData { Ticket = ticket, TicketTagGroup = tagGroup, TagName = tagGroup.Name, TagValue = ticketTag.Name }; _applicationState.NotifyEvent(RuleEventNames.TicketTagSelected, new { Ticket = ticket, tagData.TagName, tagData.TagValue, NumericValue = tagGroup.IsNumeric ? Convert.ToDecimal(ticketTag.Name) : 0, TicketTag = ticket.GetTagData() }); }
private static IEnumerable<OpenTicketViewModel> GetOpenTickets(IEnumerable<OpenTicketViewModel> openTickets, TicketTagGroup tagGroup, string tagFilter) { var tag = tagGroup.Name.ToLower() + ":"; IEnumerable<OpenTicketViewModel> result = openTickets.ToList(); if (tagFilter == " ") { result = result.Where(x => string.IsNullOrEmpty(x.TicketTag) || !x.TicketTag.ToLower().Contains(tag)); } else { result = result.Where(x => !string.IsNullOrEmpty(x.TicketTag) && x.TicketTag.ToLower().Contains(tag)); } if (!string.IsNullOrEmpty(tagFilter.Trim())) { if (tagFilter != "*") { result = result.Where(x => x.TicketTag.ToLower().Contains((tag + tagFilter + "\r").ToLower())); } result.ForEach(x => x.Info = x.TicketTag.Split('\r').Where(y => y.ToLower().StartsWith(tag)).Single().Split(':')[1]); } return result; }
private static void HandleEvents() { EventServiceFactory.EventService.GetEvent<GenericEvent<IActionData>>().Subscribe(x => { if (x.Value.Action.ActionType == ActionNames.ChangeTicketEntity) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { var entityTypeName = x.Value.GetAsString("EntityTypeName"); var entityName = x.Value.GetAsString("EntityName"); if (!string.IsNullOrEmpty(entityTypeName)) { var entity = CacheService.GetEntityByName(entityTypeName, entityName); if (entity != null) TicketService.UpdateEntity(ticket, entity); } } } if (x.Value.Action.ActionType == ActionNames.UpdateOrder) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); var orders = GetOrders(x.Value, ticket); if (orders.Any()) { foreach (var order in orders) { if (!string.IsNullOrEmpty(x.Value.GetAsString("Quantity"))) order.Quantity = x.Value.GetAsDecimal("Quantity"); if (!string.IsNullOrEmpty(x.Value.GetAsString("Price"))) order.UpdatePrice(x.Value.GetAsDecimal("Price"), ""); if (!string.IsNullOrEmpty(x.Value.GetAsString("IncreaseInventory"))) order.IncreaseInventory = x.Value.GetAsBoolean("IncreaseInventory"); if (!string.IsNullOrEmpty(x.Value.GetAsString("DecreaseInventory"))) order.DecreaseInventory = x.Value.GetAsBoolean("DecreaseInventory"); if (!string.IsNullOrEmpty(x.Value.GetAsString("Locked"))) order.Locked = x.Value.GetAsBoolean("Locked"); if (!string.IsNullOrEmpty(x.Value.GetAsString("CalculatePrice"))) order.CalculatePrice = x.Value.GetAsBoolean("CalculatePrice"); if (!string.IsNullOrEmpty(x.Value.GetAsString("AccountTransactionType"))) TicketService.ChangeOrdersAccountTransactionTypeId(ticket, new List<Order> { order }, CacheService. GetAccountTransactionTypeIdByName (x.Value.GetAsString( "AccountTransactionType"))); } } } if (x.Value.Action.ActionType == ActionNames.ExecuteScript) { var script = x.Value.GetAsString("ScriptName"); if (!string.IsNullOrEmpty(script)) { ExpressionService.EvalCommand(script, null, x.Value.DataObject, true); } } if (x.Value.Action.ActionType == ActionNames.ExecutePowershellScript) { var script = x.Value.GetAsString("Script"); if (!string.IsNullOrEmpty(script)) { if (Utility.IsValidFile(script)) script = File.ReadAllText(script); var runspace = RunspaceFactory.CreateRunspace(); runspace.Open(); runspace.SessionStateProxy.SetVariable("locator", ServiceLocator.Current); var pipeline = runspace.CreatePipeline(script); pipeline.Invoke(); runspace.Close(); } } if (x.Value.Action.ActionType == ActionNames.DisplayPaymentScreen) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { ticket.PublishEvent(EventTopicNames.MakePayment); } } if (x.Value.Action.ActionType == ActionNames.LockTicket) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { ticket.RequestLock(); } } if (x.Value.Action.ActionType == ActionNames.DisplayTicket) { var ticketId = x.Value.GetAsInteger("TicketId"); if (ticketId > 0) ExtensionMethods.PublishIdEvent(ticketId, EventTopicNames.DisplayTicket); else EventServiceFactory.EventService.PublishEvent(EventTopicNames.RefreshSelectedTicket); } if (x.Value.Action.ActionType == ActionNames.DisplayTicketList) { var ticketTagName = x.Value.GetAsString("TicketTagName"); var ticketStateName = x.Value.GetAsString("TicketStateName"); if (!string.IsNullOrEmpty(ticketStateName)) { var dt = new TicketStateData { StateName = ticketStateName }; dt.PublishEvent(EventTopicNames.ActivateTicketList); } else if (!string.IsNullOrEmpty(ticketTagName)) { var dt = new TicketTagGroup { Name = ticketTagName }; dt.PublishEvent(EventTopicNames.ActivateTicketList); } } if (x.Value.Action.ActionType == ActionNames.CreateTicket) { EventServiceFactory.EventService.PublishEvent(EventTopicNames.CreateTicket); } if (x.Value.Action.ActionType == ActionNames.UnlockTicket) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) ticket.UnLock(); EventServiceFactory.EventService.PublishEvent(EventTopicNames.UnlockTicketRequested); } if (x.Value.Action.ActionType == ActionNames.CloseActiveTicket) { EventServiceFactory.EventService.PublishEvent(EventTopicNames.CloseTicketRequested, true); } if (x.Value.Action.ActionType == ActionNames.UpdateEntityState) { var entityId = x.Value.GetDataValueAsInt("EntityId"); var entityTypeId = x.Value.GetDataValueAsInt("EntityTypeId"); var stateName = x.Value.GetAsString("EntityStateName"); var state = x.Value.GetAsString("EntityState"); if (state != null) { if (entityId > 0 && entityTypeId > 0) { EntityService.UpdateEntityState(entityId, entityTypeId, stateName, state); } else { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { var entityTypeName = x.Value.GetDataValueAsString("EntityTypeName"); foreach (var ticketEntity in ticket.TicketEntities) { var entityType = CacheService.GetEntityTypeById(ticketEntity.EntityTypeId); if (string.IsNullOrEmpty(entityTypeName.Trim()) || entityType.Name == entityTypeName) EntityService.UpdateEntityState(ticketEntity.EntityId, ticketEntity.EntityTypeId, stateName, state); } } } } } if (x.Value.Action.ActionType == ActionNames.UpdateProgramSetting) { var settingName = x.Value.GetAsString("SettingName"); var updateType = x.Value.GetAsString("UpdateType"); if (!string.IsNullOrEmpty(settingName)) { var isLocal = x.Value.GetAsBoolean("IsLocal"); var setting = isLocal ? SettingService.ReadLocalSetting(settingName) : SettingService.ReadGlobalSetting(settingName); if (updateType == Resources.Increase) { var settingValue = x.Value.GetAsInteger("SettingValue"); if (string.IsNullOrEmpty(setting.StringValue)) setting.IntegerValue = settingValue; else setting.IntegerValue = setting.IntegerValue + settingValue; } else if (updateType == Resources.Decrease) { var settingValue = x.Value.GetAsInteger("SettingValue"); if (string.IsNullOrEmpty(setting.StringValue)) setting.IntegerValue = settingValue; else setting.IntegerValue = setting.IntegerValue - settingValue; } else if (updateType == "Toggle") { var settingValue = x.Value.GetAsString("SettingValue"); var parts = settingValue.Split(','); if (string.IsNullOrEmpty(setting.StringValue)) { setting.StringValue = parts[0]; } else { for (var i = 0; i < parts.Length; i++) { if (parts[i] == setting.StringValue) { setting.StringValue = (i + 1) < parts.Length ? parts[i + 1] : parts[0]; break; } } } } else { var settingValue = x.Value.GetAsString("SettingValue"); setting.StringValue = settingValue; } if (!isLocal) SettingService.SaveProgramSettings(); } } if (x.Value.Action.ActionType == ActionNames.RefreshCache) { MethodQueue.Queue("ResetCache", ResetCache); } if (x.Value.Action.ActionType == ActionNames.SendMessage) { AppServices.MessagingService.SendMessage("ActionMessage", x.Value.GetAsString("Command")); } if (x.Value.Action.ActionType == ActionNames.SendEmail) { EmailService.SendEMailAsync(x.Value.GetAsString("SMTPServer"), x.Value.GetAsString("SMTPUser"), x.Value.GetAsString("SMTPPassword"), x.Value.GetAsInteger("SMTPPort"), x.Value.GetAsString("ToEMailAddress"), x.Value.GetAsString("CCEmailAddresses"), x.Value.GetAsString("FromEMailAddress"), x.Value.GetAsString("Subject"), x.Value.GetAsString("EMailMessage"), x.Value.GetAsString("FileName"), x.Value.GetAsBoolean("DeleteFile"), x.Value.GetAsBoolean("BypassSslErrors")); } if (x.Value.Action.ActionType == ActionNames.UpdateTicketCalculation) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { var calculationTypeName = x.Value.GetAsString("CalculationType"); var calculationType = SettingService.GetCalculationTypeByName(calculationTypeName); if (calculationType != null) { var amount = x.Value.GetAsDecimal("Amount"); ticket.AddCalculation(calculationType, amount); TicketService.RecalculateTicket(ticket); } } } if (x.Value.Action.ActionType == ActionNames.AddOrder) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { var menuItemName = x.Value.GetAsString("MenuItemName"); var menuItem = CacheService.GetMenuItem(y => y.Name == menuItemName); var portionName = x.Value.GetAsString("PortionName"); var quantity = x.Value.GetAsDecimal("Quantity"); var tag = x.Value.GetAsString("Tag"); var order = TicketService.AddOrder(ticket, menuItem.Id, quantity, portionName, null); if (order != null) order.Tag = tag; } } if (x.Value.Action.ActionType == ActionNames.UpdateTicketTag) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { var tagName = x.Value.GetAsString("TagName"); var tagValue = x.Value.GetAsString("TagValue"); ticket.SetTagValue(tagName, tagValue); var tagData = new TicketTagData { TagName = tagName, TagValue = tagValue }; tagData.PublishEvent(EventTopicNames.TicketTagSelected); } } if (x.Value.Action.ActionType == ActionNames.UpdateTicketState) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); if (ticket != null) { var stateName = x.Value.GetAsString("StateName"); var currentState = x.Value.GetAsString("CurrentState"); var state = x.Value.GetAsString("State"); var stateValue = x.Value.GetAsString("StateValue"); var quantity = x.Value.GetAsInteger("Quantity"); TicketService.UpdateTicketState(ticket, stateName, currentState, state, stateValue, quantity); } } if (x.Value.Action.ActionType == ActionNames.UpdateOrderState) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); var orders = GetOrders(x.Value, ticket); if (orders.Any()) { var stateName = x.Value.GetAsString("StateName"); var currentState = x.Value.GetAsString("CurrentState"); var groupOrder = x.Value.GetAsInteger("GroupOrder"); var state = x.Value.GetAsString("State"); var stateOrder = x.Value.GetAsInteger("StateOrder"); var stateValue = x.Value.GetAsString("StateValue"); TicketService.UpdateOrderStates(ticket, orders.ToList(), stateName, currentState, groupOrder, state, stateOrder, stateValue); } } if (x.Value.Action.ActionType == ActionNames.TagOrder || x.Value.Action.ActionType == ActionNames.UntagOrder || x.Value.Action.ActionType == ActionNames.RemoveOrderTag) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); var orders = GetOrders(x.Value, ticket); if (orders.Any()) { var tagName = x.Value.GetAsString("OrderTagName"); var orderTag = CacheService.GetOrderTagGroupByName(tagName); if (orderTag != null) { var tagValue = x.Value.GetAsString("OrderTagValue"); var oldTagValue = x.Value.GetAsString("OldOrderTagValue"); var tagNote = x.Value.GetAsString("OrderTagNote"); var orderTagValue = orderTag.OrderTags.SingleOrDefault(y => y.Name == tagValue); if (orderTagValue != null) { if (!string.IsNullOrEmpty(oldTagValue)) orders = orders.Where(o => o.OrderTagExists(y => y.OrderTagGroupId == orderTag.Id && y.TagValue == oldTagValue)).ToList(); if (x.Value.Action.ActionType == ActionNames.TagOrder) TicketService.TagOrders(ticket, orders, orderTag, orderTagValue, tagNote); if (x.Value.Action.ActionType == ActionNames.UntagOrder) TicketService.UntagOrders(ticket, orders, orderTag, orderTagValue); } //foreach (var order in orders) //{ // if (x.Value.Action.ActionType == ActionNames.RemoveOrderTag) // { // var tags = order.OrderTagValues.Where(y => y.OrderTagGroupId == orderTag.Id); // tags.ToList().ForEach(y => order.OrderTagValues.Remove(y)); // continue; // } //} } } } if (x.Value.Action.ActionType == ActionNames.MoveTaggedOrders) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); var orderTagName = x.Value.GetAsString("OrderTagName"); if (ticket != null && !string.IsNullOrEmpty(orderTagName)) { var orderTagValue = x.Value.GetAsString("OrderTagValue"); if (ticket.Orders.Any(y => y.OrderTagExists(z => z.TagName == orderTagName && z.TagValue == orderTagValue))) { var tid = ticket.Id; EventServiceFactory.EventService.PublishEvent(EventTopicNames.CloseTicketRequested, true); ticket = TicketService.OpenTicket(tid); var orders = ticket.Orders.Where(y => y.OrderTagExists(z => z.TagName == orderTagName && z.TagValue == orderTagValue)).ToArray(); var commitResult = TicketService.MoveOrders(ticket, orders, 0); if (string.IsNullOrEmpty(commitResult.ErrorMessage) && commitResult.TicketId > 0) { ExtensionMethods.PublishIdEvent(commitResult.TicketId, EventTopicNames.DisplayTicket); } else { ExtensionMethods.PublishIdEvent(tid, EventTopicNames.DisplayTicket); } } } } if (x.Value.Action.ActionType == ActionNames.UpdatePriceTag) { using (var workspace = WorkspaceFactory.Create()) { var priceTag = x.Value.GetAsString("PriceTag"); var departmentName = x.Value.GetAsString("DepartmentName"); var department = workspace.Single<Department>(y => y.Name == departmentName); if (department != null) { department.PriceTag = priceTag; workspace.CommitChanges(); MethodQueue.Queue("ResetCache", ResetCache); } } } if (x.Value.Action.ActionType == ActionNames.ExecutePrintJob) { var ticket = x.Value.GetDataValue<Ticket>("Ticket"); var pjName = x.Value.GetAsString("PrintJobName"); if (!string.IsNullOrEmpty(pjName)) { TicketService.UpdateTicketNumber(ticket, ApplicationState.CurrentTicketType.TicketNumerator); var j = CacheService.GetPrintJobByName(pjName); if (j != null) { if (ticket != null) { var orderTagName = x.Value.GetAsString("OrderTagName"); var orderTagValue = x.Value.GetAsString("OrderTagValue"); var orderStateName = x.Value.GetAsString("OrderStateName"); var orderState = x.Value.GetAsString("OrderState"); var orderStateValue = x.Value.GetAsString("OrderStateValue"); Expression<Func<Order, bool>> expression = ex => true; if (!string.IsNullOrWhiteSpace(orderTagName)) { expression = ex => ex.OrderTagExists(y => y.TagName == orderTagName && y.TagValue == orderTagValue); } if (!string.IsNullOrWhiteSpace(orderStateName)) { expression = expression.And(ex => ex.IsInState(orderStateName, orderState)); if (!string.IsNullOrWhiteSpace(orderStateValue)) expression = expression.And(ex => ex.IsInState(orderStateValue)); } PrinterService.PrintTicket(ticket, j, expression.Compile()); } else PrinterService.ExecutePrintJob(j); } } } }); }
private bool CanExecuteShowTicketTags(TicketTagGroup arg) { return SelectedTicket == null || (SelectedTicket.Model.CanSubmit); }
public bool TicketTagSelected(Ticket currentTicket, TicketTagGroup tagGroup) { SelectedTicket = currentTicket; IsFreeTagEditorVisible = tagGroup.FreeTagging; SelectedTicketTagData = tagGroup; List<TicketTag> ticketTags; if (IsFreeTagEditorVisible) { ticketTags = _cacheService.GetTicketTagGroupById(tagGroup.Id) .TicketTags.OrderBy(x => x.Name).ToList(); } else { ticketTags = _applicationState.GetTicketTagGroups().Where( x => x.Name == tagGroup.Name).SelectMany(x => x.TicketTags).ToList(); } ticketTags.Sort(new AlphanumComparator()); TicketTags.AddRange(ticketTags); if (SelectedTicket.IsTaggedWith(tagGroup.Name)) { if (TicketTags.Count == 1) { UpdateTicketTag(SelectedTicket, SelectedTicketTagData, TicketTag.Empty); return true; } if (!tagGroup.ForceValue) TicketTags.Add(TicketTag.Empty); } if (TicketTags.Count == 1 && !IsFreeTagEditorVisible) { UpdateTicketTag(SelectedTicket, SelectedTicketTagData, TicketTags[0]); return true; } RaisePropertyChanged(() => TagColumnCount); RaisePropertyChanged(() => IsFreeTagEditorVisible); RaisePropertyChanged(() => FilteredTextBoxType); return false; }
private void ActivateSelectedTicketItemEditorView(TicketItemViewModel item, TicketTagGroup selectedTicketTag) { SelectedIndex = 5; SelectedTicketItemEditorViewModel.Refresh(item, selectedTicketTag); }
public TicketTagButton(TicketTagGroup ticketTagGroup, Ticket ticket) { Model = ticketTagGroup; Caption = Model.Name.Replace(" ", Environment.NewLine); _ticket = ticket; }