Exemple #1
0
        public object Deserialize(WorkStep step)
        {
            if (step.Type != OperationConstants.PIVOT)
            {
                //TODO throw exception
                return(null);
            }

            var desc = new List <PivotDescription>();

            int count;

            if (!int.TryParse(step.Params["_count"], out count))
            {
                //TODO throw Exception
                return(null);
            }

            for (int i = 0; i < count; i++)
            {
                var d = new PivotDescription();
                d.VariableName      = step.Params[i + ".name"];
                d.VariablePlacement = (PlacementType)Enum.Parse(typeof(PlacementType), step.Params[i + ".placement"], true);
                desc.Add(d);
            }

            return(desc.ToArray());
        }
Exemple #2
0
        /// <summary>
        /// Rearranges the variables making the creation of the SDMX file easier.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal static PXModel RearrangeVariables(PXModel model)
        {
            //Verify all preconditions are ok.
            if (!CanConvertModel(model))
            {
                throw new PXSerializationException();
            }

            Pivot pivot = new Pivot();

            PivotDescription[] pDesc;
            pDesc = new PivotDescription[model.Meta.Variables.Count];


            for (int i = 0; i < model.Meta.Variables.Count; i++)
            {
                Variable var = model.Meta.Variables[i];

                if (var.HasTimeValue)
                {
                    pDesc[i] = new PivotDescription(var.Name, PlacementType.Heading);
                }
                else
                {
                    pDesc[i] = new PivotDescription(var.Name, PlacementType.Stub);
                }
            }

            model = pivot.Execute(model, pDesc);
            return(model);
        }