コード例 #1
0
    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));
     }
 }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 public IEmailBodyBuilder AddPlaceholder(string patternToMatch, string replaceWith)
 {
     Placeholders.Add(patternToMatch, replaceWith);
     return(this);
 }