コード例 #1
0
        public override void ProcessRow(IList <object> row)
        {
            bool idExists = int.TryParse((string)row[IdIndex], out int id);

            if (idExists == false)
            {
                id = 0;
            }

            int    unitId   = Convert.ToInt32(row[UnitIdIndex]);
            string itemName = (string)row[ItemNameIndex];

            NutrientModel model = new NutrientModel()
            {
                Id       = id,
                UnitId   = unitId,
                ItemName = itemName
            };

            GlobalConfig.Connection.CreateNutrient(model);

            IList <object> updateRow = new object[]
            {
                model.Id,
                model.ItemName.ToString(),
                row[UnitNameIndex],
                model.UnitId
            };

            UpdateValues.Add(updateRow);
        }
コード例 #2
0
        public override void ProcessRow(IList <object> row)
        {
            bool idExists = int.TryParse((string)row[IdIndex], out int id);

            if (idExists == false)
            {
                id = 0;
            }

            AnalysisModel newAnalysisModel = new AnalysisModel
            {
                Id        = id,
                ProductId = Convert.ToInt32(row[ProductIdIndex]),
                Nutrients = new List <AnalysisNutrientModel>()
            };

            foreach (var key in NutrientMappings.Keys)
            {
                AnalysisNutrientModel newNutrientRecord = CreateAnalysisNutrientRecord(row, newAnalysisModel, key);
                newAnalysisModel.Nutrients.Add(newNutrientRecord);
            }
            GlobalConfig.Connection.CreateAnalysis(newAnalysisModel);

            IList <object> updateRow = new object[]
            {
                newAnalysisModel.Id,
            };

            UpdateValues.Add(updateRow);
        }
コード例 #3
0
        public override void ProcessRow(IList <object> row)
        {
            bool idExists = int.TryParse((string)row[IdIndex], out int id);

            if (idExists == false)
            {
                id = 0;
            }
            string unitName = (string)row[UnitNameIndex];

            UnitModel model = new UnitModel()
            {
                Id   = id,
                Unit = unitName
            };

            GlobalConfig.Connection.CreateUnit(model);

            IList <object> updateRow = new object[]
            {
                model.Id,
                model.Unit.ToString()
            };

            UpdateValues.Add(updateRow);
        }
コード例 #4
0
 public override void ProcessRows()
 {
     UpdateValues.Add(Headers);
     foreach (IList <object> row in Rows)
     {
         ProcessRow(row);
     }
 }
コード例 #5
0
        public override void ProcessRows()
        {
            ColumnProcessor.MapColumns();

            NutrientMappings = ColumnProcessor.NutrientMappings;

            UpdateValues.Add(new object[] { Headers[0] });

            foreach (var row in Rows)
            {
                ProcessRow(row);
            }
        }
コード例 #6
0
        public override void ProcessRow(IList <object> row)
        {
            OperationModel operation = new OperationModel();

            operation.AnalysisId    = Convert.ToInt32(row[AnalysisIndex]);
            operation.AppliedAmount = Convert.ToDecimal(row[AmountIndex]);
            operation.Timestamp     = Convert.ToDateTime(row[TimestampIndex]);
            operation.FieldId       = Convert.ToInt32(row[FieldIndex]);

            GlobalConfig.Connection.CreateOperation(operation);

            UpdateValues.Add(new string[] { "", "", "", "" });
        }
コード例 #7
0
        public override void ProcessRow(IList <object> row)
        {
            FieldModel newField = new FieldModel()
            {
                Field   = (string)row[FieldNameIndex],
                Farm    = (string)row[FarmNameIndex],
                Id      = Convert.ToInt32(row[IdIndex]),
                Acreage = 0.0M
            };

            bool validDecimal = decimal.TryParse((string)row[AcreageIndex], out decimal acreage);

            if (validDecimal && acreage > 0)
            {
                newField.Acreage = acreage;
            }


            foreach (var rotationColumn in RotationColumns)
            {
                int           columnIndex = rotationColumn.Value;
                RotationModel newRotation = new RotationModel()
                {
                    FieldId      = newField.Id,
                    RotationYear = rotationColumn.Key
                };
                string plannedCrop = (string)row[columnIndex];

                if (plannedCrop.Length > 0)
                {
                    // convert names to lowercase so just the text is being compared
                    ProductModel matchedCrop = Crops.Where(crop => crop.ItemName.ToLower() == plannedCrop.ToLower())
                                               .ToList().First();

                    if (matchedCrop == null)
                    {
                        throw new Exception($"Crop matching error. Current crop count is: {plannedCrop}");
                    }
                    else
                    {
                        newRotation.ProductId = matchedCrop.Id;
                        newField.Rotations.Add(newRotation);
                    }
                }
            }
            GlobalConfig.Connection.CreateField(newField);
            Fields.Add(newField);
            IList <object> updateRow = new string[] { newField.Farm, newField.Field, newField.Id.ToString() };

            UpdateValues.Add(updateRow);
        }
コード例 #8
0
 public ISqlBuilder Update(List <object> values)
 {
     Type = StatementType.Update;
     values.ForEach(v => UpdateValues.Add(StoreAndGetReference(v)));
     return(this);
 }
コード例 #9
0
 public OperationSheetProcessor(IList <IList <object> > rows)
 {
     Rows = rows;
     PopHeaders();
     UpdateValues.Add(Headers);
 }