private void UpdatePlaceholders() { Placeholders.Clear(); List <GameObject> placeholdersTemp = new List <GameObject>(); placeholdersTemp.Clear(); foreach (var go in GetComponentsInChildren <Transform>()) { if (go.gameObject.name == "Placeholders") { foreach (var placeholder in go.GetComponentsInChildren <Transform>()) { if (placeholder.name != "Placeholders") { placeholdersTemp.Add(placeholder.gameObject); } } break; } } foreach (var placeholder in placeholdersTemp) { Placeholders.Add(placeholder.gameObject); } }
public StudioComponentRepositoryViewModel(StudioComponentRepositoryDto studioComponentRepositoryDto) { foreach (var client in studioComponentRepositoryDto.Clients) { Clients.Add(new ComponentViewModel(client)); } foreach (var placeholder in studioComponentRepositoryDto.Placeholders) { Placeholders.Add(new PlaceholderViewModel(placeholder)); } }
public void SetParent(BoundedBagMenu Menu) { this.Menu = Menu; if (Menu == null) { this.GroupedObjects = new ReadOnlyCollection <AllowedObject>(new List <AllowedObject>()); this.Placeholders = new Dictionary <int, Dictionary <ObjectQuality, Object> >(); } else { this.GroupedObjects = new ReadOnlyCollection <AllowedObject>(BoundedBag.AllowedObjects.Where(x => Menu.GroupByQuality && x.HasQualities && !x.IsBigCraftable).ToList()); int TotalFilledSlots = GroupedObjects.Count * ColumnsPerGroup; this.TotalSlots = ((GroupedObjects.Count - 1) / GroupsPerRow + 1) * GroupsPerRow * ColumnsPerGroup; // Force grid to perfect square, for ex if there were 13 items and 12 columns, we'd want 2x12=24 slots this.RowCount = (GroupedObjects.Count - 1) / GroupsPerRow + 1; List <ObjectQuality> Qualities = Enum.GetValues(typeof(ObjectQuality)).Cast <ObjectQuality>().ToList(); // Create an item with quantity=0 for each Item that the Bag is capable of storing this.Placeholders = new Dictionary <int, Dictionary <ObjectQuality, Object> >(); foreach (AllowedObject Item in GroupedObjects) { if (Item.IsBigCraftable) { throw new InvalidOperationException(string.Format("BigCraftable Items are not valid for GroupedLayouts. Bag = {0}, ItemId = {1}", Menu.BoundedBag.DisplayName, Item.Id)); } Dictionary <ObjectQuality, Object> Group = new Dictionary <ObjectQuality, Object>(); foreach (ObjectQuality Quality in Qualities) { Group.Add(Quality, new Object(Item.Id, 0, false, -1, (int)Quality)); } Placeholders.Add(Item.Id, Group); } UpdateQuantities(); SetTopLeft(Point.Zero, false); } }
public void Read(string path) { if (path == null) { throw new ArgumentNullException(nameof(path)); } Reset(); XmlDocument doc = new XmlDocument(); doc.Load(path); XmlElement root = doc.DocumentElement; if (root.Name != DataFiles.AppName) { throw new Exception("Invalid data file format"); } foreach (XmlElement element in root.ChildNodes.OfType <XmlElement>()) { switch (element.Name) { case "Url": Url = element.InnerText.Trim(); break; case "ContainerSelector": Container = element.InnerText.Trim(); break; case "ItemSelector": Item = element.InnerText.Trim(); break; case "NextPageSelector": NextPage = element.InnerText.Trim(); break; case "DataSeparator": DataSeparator = element.InnerText; break; case "Placeholders": foreach (XmlElement placeholderElement in element.ChildNodes.OfType <XmlElement>()) { Placeholder placeholder = new Placeholder(placeholderElement.GetAttribute("Name")); foreach (XmlElement valueElement in placeholderElement.ChildNodes.OfType <XmlElement>()) { placeholder.Values.Add(valueElement.InnerText.Trim()); } Placeholders.Add(placeholder); } break; case "Fields": foreach (XmlElement fieldElement in element.ChildNodes.OfType <XmlElement>()) { Fields.Add(FieldHelper.FieldFactory(FieldHelper.GetSymbolType(fieldElement.GetAttribute("Type")), fieldElement.GetAttribute("Name"), fieldElement.GetAttribute("Selector"), fieldElement.GetAttribute("AttributeName"))); } break; default: break; } } FilePath = path; }
public override async Task <bool> OnNavigatedToAsync(IProgress <string> progress, StepContext ctx) { if (!IsTargetDirectoryValid(ctx)) { return(false); } var templateDefinitionFile = Path.Combine(ctx.TargetDirectory, "TemplateDefinition.xml"); if (!File.Exists(templateDefinitionFile)) { return(false); } var templateDefinition = await Task.Run(() => TemplateDefinitionHelper.Parse(templateDefinitionFile)); if (templateDefinition == null) { return(false); } try { File.Delete(templateDefinitionFile); } catch (Exception ex) { theLogger.Error($"Unable to delete template definition file: '{templateDefinitionFile}'.", ex); } foreach (var placeholderDefinition in templateDefinition.Placeholders) { var placeholder = new PlaceholderViewModel() { Name = placeholderDefinition.Name, TextToReplace = string.IsNullOrEmpty(placeholderDefinition.TextToReplace) ? placeholderDefinition.Name : placeholderDefinition.TextToReplace, Replacement = placeholderDefinition.DefaultValue, Suggestions = TemplateDefinitionHelper.SplitEscapedString(placeholderDefinition.SuggestionList), Description = placeholderDefinition.Description }; placeholder.PropertyChanged += (s, e) => { foreach (var example in Examples) { example.UpdateText(Placeholders); } }; Placeholders.Add(placeholder); } foreach (var example in templateDefinition.Examples ?? new Example[0]) { Examples.Add(new ExampleViewModel(example)); } return(true); }
public IEmailBodyBuilder AddPlaceholder(string patternToMatch, string replaceWith) { Placeholders.Add(patternToMatch, replaceWith); return(this); }