Ejemplo n.º 1
0
 private void SetVariants()
 {
     Variants.Clear();
     foreach (var n in Enumerable.Range(0, CurrentStep.Variants.Count))
     {
         Variants.Add(n);
     }
 }
Ejemplo n.º 2
0
 public void SetProduct(Product product)
 {
     _data = product;
     Variants.Clear();
     foreach (ProductVariant v in _data.Variants)
     {
         Variants.Add(new ProductVariantDTO(v));
     }
 }
Ejemplo n.º 3
0
 public override void GetProperties(Strings lnames, Strings ltypes, Variants lvalues, Strings lhints, Strings lcat)
 {
     lnames.Clear();
     ltypes.Clear();
     lhints.Clear();
     lcat.Clear();
     if (lvalues != null)
     {
         lvalues.Clear();
     }
     // DataSet Name
     lnames.Add(Translator.TranslateStr(518));
     ltypes.Add(Translator.TranslateStr(557));
     lhints.Add("refdatainfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDataInfo.Alias);
     }
     // Connection
     lnames.Add(Translator.TranslateStr(154));
     ltypes.Add(Translator.TranslateStr(569));
     lhints.Add("refdatainfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDataInfo.DatabaseAlias);
     }
     // Master dataset
     lnames.Add(Translator.TranslateStr(155));
     ltypes.Add(Translator.TranslateStr(569));
     lhints.Add("refdatainfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDataInfo.DataSource);
     }
     // SQL
     lnames.Add("SQL");
     ltypes.Add("SQL");
     lhints.Add("refdatainfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDataInfo.SQL);
     }
     // OpenOnStart
     lnames.Add(Translator.TranslateStr(1373));
     ltypes.Add(Translator.TranslateStr(568));
     lhints.Add("refdatainfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDataInfo.OpenOnStart);
     }
 }
Ejemplo n.º 4
0
 public override void GetProperties(Strings lnames, Strings ltypes, Variants lvalues, Strings lhints, Strings lcat)
 {
     lnames.Clear();
     ltypes.Clear();
     lhints.Clear();
     lcat.Clear();
     if (lvalues != null)
     {
         lvalues.Clear();
     }
     // Connection Name
     lnames.Add(Translator.TranslateStr(400));
     ltypes.Add(Translator.TranslateStr(557));
     lhints.Add("refdatabaseinfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDbInfo.Alias);
     }
     // Driver
     lnames.Add(Translator.TranslateStr(67));
     ltypes.Add(Translator.TranslateStr(569));
     lhints.Add("refdatabaseinfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(DriverTypeToString(FDbInfo.Driver));
     }
     // Provider Factory (Dot net driver)
     lnames.Add(Translator.TranslateStr(1394));
     ltypes.Add(Translator.TranslateStr(961));
     lhints.Add("refdatabaseinfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDbInfo.ProviderFactory);
     }
     // Connection String
     lnames.Add(Translator.TranslateStr(1099));
     ltypes.Add(Translator.TranslateStr(1099));
     lhints.Add("refdatabaseinfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(FDbInfo.ConnectionString);
     }
     // Transaction isolation
     lnames.Add("Transaction Isolation");
     ltypes.Add(Translator.TranslateStr(569));
     lhints.Add("refdatabaseinfo.html");
     lcat.Add(Translator.TranslateStr(1201));
     if (lvalues != null)
     {
         lvalues.Add(Isolations[FDbInfo.TransIsolation]);
     }
 }
Ejemplo n.º 5
0
 protected void clearVariants()
 {
     Variants.Clear();
 }
Ejemplo n.º 6
0
 private void ClearProperties()
 {
     Variants.Clear();
     Dificulty = 1;
     QStr      = null;
 }
Ejemplo n.º 7
0
    protected void variantDailog_OnDeleteVariant(object sender, EventArgs e)
    {
        if (Variants.Count <= 0)
        {
            return;
        }

        // Allow modifying issues in idle state only
        IssueInfo parentIssue = IssueInfoProvider.GetOriginalIssue(IssueID);

        if ((parentIssue == null) || (parentIssue.IssueStatus != IssueStatusEnum.Idle))
        {
            return;
        }

        int currVariant = CurrentVariant;

        if (Variants.Count > 2)
        {
            IssueInfoProvider.DeleteIssueInfo(Variants[currVariant].IssueID);
            Variants.RemoveAt(currVariant);
            RaiseVariantDeleted();
        }
        else
        {
            if (Variants.Count == 2)
            {
                // Remove variant
                IssueInfoProvider.DeleteIssueInfo(Variants[currVariant].IssueID);
                Variants.RemoveAt(currVariant);
            }

            // Get remaining variant
            IssueABVariantItem issueVariant = Variants[0];
            Variants.Clear();
            IssueInfo issue = IssueInfoProvider.GetIssueInfo(issueVariant.IssueID);
            if (issue != null)
            {
                // Transfer all data from child to parent and delete child
                const string ignoredColumns = ";issueid;issueguid;issuevariantname;";
                foreach (string column in parentIssue.ColumnNames)
                {
                    if (!ignoredColumns.Contains(String.Format(";{0};", column.ToLowerCSafe())))
                    {
                        parentIssue.SetValue(column, issue.GetValue(column));
                    }
                }
                parentIssue.IssueIsABTest         = false;
                parentIssue.IssueVariantName      = null;
                parentIssue.IssueVariantOfIssueID = 0;
                IssueInfoProvider.SetIssueInfo(parentIssue);

                // Delete files from parent issue if any
                MetaFileInfoProvider.DeleteFiles(parentIssue.IssueID, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE);
                MetaFileInfoProvider.DeleteFiles(parentIssue.IssueID, IssueInfo.OBJECT_TYPE_VARIANT, ObjectAttachmentsCategories.ISSUE);

                // Move attachments (meta files) from child to parent
                MetaFileInfoProvider.MoveMetaFiles(issue.IssueID, parentIssue.IssueID, IssueInfo.OBJECT_TYPE_VARIANT, ObjectAttachmentsCategories.ISSUE, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE);
                MetaFileInfoProvider.MoveMetaFiles(issue.IssueID, parentIssue.IssueID, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE);

                // Delete last variant
                IssueInfoProvider.DeleteIssueInfo(issue);
                OriginalIssueID = parentIssue.IssueID;

                // A/B variants have been deleted => deleting A/B test itself
                ABTestInfo abi = ABTestInfoProvider.GetABTestInfoForIssue(OriginalIssueID);
                ABTestInfoProvider.DeleteABTestInfo(abi);
            }
            RaiseVariantDeleted();
        }
    }
Ejemplo n.º 8
0
        private void ReadPmd(BinaryReader r)
        {
            // specifically check if the user passed in a 
            // pmg file by accident
            r.BaseStream.Position = 1;
            var pmgSigCheck = ReadPmgSignature(r);
            if(pmgSigCheck == PmgSignature)
            {
                throw new ArgumentException("Pass a pmd file, not a pmg file.");
            }
            r.BaseStream.Position = 0;

            var version = r.ReadUInt32();
            if (version != PmdVersion)
            {
                throw new NotSupportedException($"pmd version {version} is not supported.");
            }

            var materialCount = r.ReadUInt32();
            var lookCount = r.ReadUInt32();
            var pieceCount = r.ReadUInt32();
            var variantCount = r.ReadUInt32();
            var partCount = r.ReadUInt32();
            var attribsCount = r.ReadUInt32();

            var attribsValuesSize = r.ReadUInt32();
            var materialBlockSize = r.ReadUInt32();

            var lookOffset = r.ReadUInt32();
            var variantOffset = r.ReadUInt32();
            var partAttribsOffset = r.ReadUInt32();
            var attribsValuesOffset = r.ReadUInt32();
            var attribsHeaderOffset = r.ReadUInt32();
            var materialOffsetsOffset = r.ReadUInt32();
            var materialDataOffset = r.ReadUInt32();

            // look names
            Looks.Clear();
            for (int i = 0; i < lookCount; i++)
            {
                Looks.Add(new Look(r.ReadToken()));
            }

            // variant names
            Variants.Clear();
            for (int i = 0; i < variantCount; i++)
            {
                Variants.Add(new Variant(r.ReadToken()));
            }

            // "partAttribs"
            // TODO: what is this?
            for (int i = 0; i < partCount; i++)
            {
                var from = r.ReadInt32();
                var to = r.ReadInt32();
            }

            // attribs header
            // each variant has the same attribs
            for (int i = 0; i < attribsCount; i++)
            {
                var name = r.ReadToken();
                var type = r.ReadInt32();
                var offset = r.ReadInt32();
                foreach (var variant in Variants)
                {
                    var attrib = new PartAttribute();
                    variant.Attributes.Add(attrib);
                    attrib.Tag = name;
                    attrib.Type = type;
                }
            }

            // attribs values
            // TODO: Find out if there are any files where a part has 
            // more than one attrib or if "visible" is actually the only attrib
            // that exists
            for (int i = 0; i < variantCount; i++)
            {
                for (int j = 0; j < attribsCount; j++)
                {
                    Variants[i].Attributes[j].Value = r.ReadUInt32();
                }
            }

            // material offsets; I think we can get away with ignoring this?
            var materialsOffset = new List<uint>();
            for (int i = 0; i < lookCount * materialCount; i++)
            {
                materialsOffset.Add(r.ReadUInt32());
            }

            // look material paths
            var materialsData = r.ReadBytes((int)materialBlockSize);
            var materials = StringUtils.CStringBytesToList(materialsData);
            for(int i = 0; i < Looks.Count; i++)
            {
                Looks[i].Materials.AddRange(
                    materials.GetRange(i * (int)materialCount, (int)materialCount)
                    );
            }       
        }