Пример #1
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"));
        }
Пример #2
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);
        }
Пример #3
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);
            }
        }
Пример #4
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();
            }
        }