/// <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)); }
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")); }
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(); } }
/// <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); }
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); } }
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(); } }