示例#1
0
        /// <summary>
        /// Convert a Datatuple to a Row
        /// </summary>
        /// <remarks></remarks>
        /// <seealso cref=""/>
        /// <param name="dataTupleId">Id of the Datatuple to convert</param>
        /// <param name="rowIndex">Position of the Row</param>
        /// <returns></returns>
        protected Row DatatupleToRow(long dataTupleId, int rowIndex)
        {
            DataTuple dataTuple = DatasetManager.DataTupleRepo.Query(d => d.Id.Equals(dataTupleId)).FirstOrDefault();

            dataTuple.Materialize();

            return(DatatupleToRow(dataTuple, rowIndex));
        }
示例#2
0
        public ActionResult FlipDateTime(long id, long variableid)
        {
            DatasetManager datasetManager = new DatasetManager();

            try
            {
                DatasetVersion     dsv          = datasetManager.GetDatasetLatestVersion(id);
                IEnumerable <long> datatupleIds = datasetManager.GetDatasetVersionEffectiveTupleIds(dsv);

                foreach (var tid in datatupleIds)
                {
                    DataTuple dataTuple = datasetManager.DataTupleRepo.Get(tid);
                    dataTuple.Materialize();
                    bool needUpdate = false;

                    foreach (var vv in dataTuple.VariableValues)
                    {
                        string systemType = vv.DataAttribute.DataType.SystemType;
                        if (systemType.Equals(typeof(DateTime).Name) && vv.VariableId.Equals(variableid))
                        {
                            string value = vv.Value.ToString();
                            vv.Value = flip(value, out needUpdate);
                        }
                    }

                    if (needUpdate)
                    {
                        dataTuple.Dematerialize();
                        datasetManager.UpdateDataTuple(dataTuple);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                datasetManager.Dispose();
            }

            return(RedirectToAction("Index"));
        }
示例#3
0
        public DataTable ConvertPrimaryDataToDatatable(DatasetVersion dsv, IEnumerable <long> dsVersionTupleIds)
        {
            DataTable dt = new DataTable();

            dt.TableName = "Primary data table";
            DatasetManager datasetManager = new DatasetManager();

            try
            {
                StructuredDataStructure sds = this.GetUnitOfWork().GetReadOnlyRepository <StructuredDataStructure>().Get(dsv.Dataset.DataStructure.Id);

                if (dsVersionTupleIds != null && sds != null)
                {
                    foreach (var vu in sds.Variables)
                    {
                        // use vu.Label or vu.DataAttribute.Name
                        DataColumn col = dt.Columns.Add("ID" + vu.Id.ToString()); // or DisplayName also
                        col.Caption = vu.Label;

                        switch (vu.DataAttribute.DataType.SystemType)
                        {
                        case "String":
                        {
                            col.DataType = Type.GetType("System.String");
                            break;
                        }

                        case "Double":
                        {
                            col.DataType = Type.GetType("System.Double");
                            break;
                        }

                        case "Int16":
                        {
                            col.DataType = Type.GetType("System.Int16");
                            break;
                        }

                        case "Int32":
                        {
                            col.DataType = Type.GetType("System.Int32");
                            break;
                        }

                        case "Int64":
                        {
                            col.DataType = Type.GetType("System.Int64");
                            break;
                        }

                        case "Decimal":
                        {
                            col.DataType = Type.GetType("System.Decimal");
                            break;
                        }

                        case "DateTime":
                        {
                            col.DataType = Type.GetType("System.DateTime");
                            break;
                        }

                        default:
                        {
                            col.DataType = Type.GetType("System.String");
                            break;
                        }
                        }



                        if (vu.Parameters.Count > 0)
                        {
                            foreach (var pu in vu.Parameters)
                            {
                                DataColumn col2 = dt.Columns.Add(pu.Label.Replace(" ", "")); // or DisplayName also
                                col2.Caption = pu.Label;
                            }
                        }
                    }


                    foreach (var id in dsVersionTupleIds)
                    {
                        DataTuple dataTuple = datasetManager.DataTupleRepo.Query(d => d.Id.Equals(id)).FirstOrDefault();
                        dataTuple.Materialize();
                        dt.Rows.Add(ConvertTupleIntoDataRow(dt, dataTuple, sds));
                    }
                }

                return(dt);
            }
            finally
            {
                datasetManager.Dispose();
            }
        }
示例#4
0
        /// <summary>
        /// get a updated datatuple on a specific value.
        /// based on the created test datastructure
        /// index:
        /// 0 = int
        /// 1 = text
        /// 2 = double
        /// 3 = bool
        /// 4 = datetime
        /// </summary>
        /// <param name="source"></param>
        /// <param name="updateVarIndex"></param>
        /// <param name="datasetManager"></param>
        /// <returns></returns>
        public DataTuple  GetUpdatedDatatuple(DataTuple source, int updateVarIndex)
        {
            if (source == null)
            {
                return(null);
            }

            source.Materialize();

            var vv = source.VariableValues[updateVarIndex];

            if (vv != null)
            {
                switch (updateVarIndex)
                {
                case 0:    //int
                {
                    vv.Value = new Random().Next();

                    break;
                }

                case 1:    //text
                {
                    var chars       = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
                    var stringChars = new char[8];
                    var random      = new Random();

                    for (int i = 0; i < stringChars.Length; i++)
                    {
                        stringChars[i] = chars[random.Next(chars.Length)];
                    }

                    vv.Value = new String(stringChars);

                    break;
                }

                case 2:    //double
                {
                    vv.Value = new Random().NextDouble();

                    break;
                }

                case 3:    //bool
                {
                    vv.Value = false;

                    break;
                }

                case 4:
                {
                    vv.Value = DateTime.Now.ToString(new CultureInfo("en-US"));

                    break;
                }

                    //default:
                }
            }
            source.Dematerialize();
            source.Should().NotBeNull();

            return(source);
        }
示例#5
0
        public Dataset UpdateOneTupleForDataset(Dataset dataset, StructuredDataStructure dataStructure, long id, int value, DatasetManager datasetManager)
        {
            dataset.Status.Should().Be(DatasetStatus.CheckedIn);
            dataset.Should().NotBeNull();

            try
            {
                if (datasetManager.IsDatasetCheckedOutFor(dataset.Id, "David") || datasetManager.CheckOutDataset(dataset.Id, "David"))
                {
                    dataset.Status.Should().Be(DatasetStatus.CheckedOut, "Dataset must be in Checkedout status.");

                    DatasetVersion workingCopy = datasetManager.GetDatasetWorkingCopy(dataset.Id);

                    DataTuple oldDt = datasetManager.DataTupleRepo.Get(id);

                    DataTuple dt = new DataTuple();
                    dt.VariableValues.Add(new VariableValue()
                    {
                        VariableId = dataStructure.Variables.First().Id, Value = value
                    });
                    dt.VariableValues.Add(new VariableValue()
                    {
                        VariableId = dataStructure.Variables.Skip(1).First().Id, Value = "Test"
                    });
                    dt.VariableValues.Add(new VariableValue()
                    {
                        VariableId = dataStructure.Variables.Skip(2).First().Id, Value = 5
                    });
                    dt.VariableValues.Add(new VariableValue()
                    {
                        VariableId = dataStructure.Variables.Skip(3).First().Id, Value = true
                    });
                    dt.VariableValues.Add(new VariableValue()
                    {
                        VariableId = dataStructure.Variables.Skip(4).First().Id, Value = DateTime.Now.ToString(new CultureInfo("en-US"))
                    });
                    dt.Dematerialize();

                    dt.Should().NotBeNull();
                    dt.JsonVariableValues.Should().NotBeNull();

                    List <DataTuple> tuples = new List <DataTuple>();


                    DataTuple newDt = new DataTuple();
                    newDt.Id                 = id;
                    newDt.XmlAmendments      = dt.XmlAmendments;
                    newDt.JsonVariableValues = dt.JsonVariableValues;
                    newDt.Materialize();
                    newDt.OrderNo = oldDt.OrderNo;
                    tuples.Add(newDt);

                    datasetManager.EditDatasetVersion(workingCopy, null, tuples, null);
                    dataset.Status.Should().Be(DatasetStatus.CheckedOut, "Dataset must be in Checkedout status.");
                }
                return(dataset);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
示例#6
0
        public Dataset GenerateTuplesWithRandomValuesForDataset(Dataset dataset, StructuredDataStructure dataStructure, long numberOfTuples, string username)
        {
            dataset.Status.Should().Be(DatasetStatus.CheckedIn);
            dataset.Should().NotBeNull();
            numberOfTuples.Should().BeGreaterThan(0);

            var r = new Random();

            DatasetManager dm = new DatasetManager();

            try
            {
                if (dm.IsDatasetCheckedOutFor(dataset.Id, username) || dm.CheckOutDataset(dataset.Id, username))
                {
                    dataset.Status.Should().Be(DatasetStatus.CheckedOut, "Dataset must be in Checkedout status.");

                    DatasetVersion workingCopy = dm.GetDatasetWorkingCopy(dataset.Id);



                    List <DataTuple> tuples = new List <DataTuple>();

                    for (int i = 0; i < numberOfTuples; i++)
                    {
                        DataTuple dt = new DataTuple();
                        dt.VariableValues.Add(new VariableValue()
                        {
                            VariableId = dataStructure.Variables.First().Id, Value = r.Next()
                        });
                        dt.VariableValues.Add(new VariableValue()
                        {
                            VariableId = dataStructure.Variables.Skip(1).First().Id, Value = "Test"
                        });
                        dt.VariableValues.Add(new VariableValue()
                        {
                            VariableId = dataStructure.Variables.Skip(2).First().Id, Value = Convert.ToDouble(r.Next())
                        });
                        dt.VariableValues.Add(new VariableValue()
                        {
                            VariableId = dataStructure.Variables.Skip(3).First().Id, Value = true
                        });
                        dt.VariableValues.Add(new VariableValue()
                        {
                            VariableId = dataStructure.Variables.Skip(4).First().Id, Value = "01.01.2017"
                        });
                        dt.Dematerialize();

                        dt.Should().NotBeNull();
                        //dt.XmlVariableValues.Should().NotBeNull();

                        DataTuple newDt = new DataTuple();
                        newDt.XmlAmendments = dt.XmlAmendments;
                        //newDt.XmlVariableValues = dt.XmlVariableValues;
                        newDt.JsonVariableValues = dt.JsonVariableValues;
                        newDt.Materialize();
                        newDt.OrderNo = i;
                        tuples.Add(newDt);
                    }
                    dm.EditDatasetVersion(workingCopy, tuples, null, null);
                    dataset.Status.Should().Be(DatasetStatus.CheckedOut, "Dataset must be in Checkedout status.");
                }
                return(dataset);
            }
            catch (Exception ex)
            {
                return(null);
            }
            finally
            {
                dm.Dispose();
            }
        }