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); }
public async Task <ActionResult <AdminPutResponse> > PutAdmin(AdminPutRequest request) { if (!(await checkToken(request.username, request.token))) { return(BadRequest()); } AdminPutResponse result = new AdminPutResponse(); using (var db = new NutrientContext()) { NutrientModel model = await db.nutrients.FindAsync(request.id); if (model == null) { return(NotFound()); } DateTime dt = DateTime.Now; model.approval = true; model.approvaled_at = dt; db.nutrients.Update(model); await db.SaveChangesAsync(); result.token = await updateToken(request.username); } return(result); }
public Task UpdateNutrientAsync(NutrientModel model) { var uri = UrisProvider.UpdateNutrient; var content = new UpdateNutrientModel(model.NutrientId, model.Title); return(this.httpClient.PutAsJsonAsync(uri, content)); }
public static void WriteSoilData(Dictionary <string, object> parameters) { StringBuilder stringBuilder = new StringBuilder(); string folderPath = (string)parameters["FolderPath"]; int rotationYear = Convert.ToInt32(parameters["RotationYear"]); ProductModel crop = (ProductModel)parameters["Crop"]; string farmName = (string)parameters["FarmName"]; NutrientModel nutrient = (NutrientModel)parameters["Nutrient"]; stringBuilder.Append(rotationYear); stringBuilder.Append(crop.ItemName); stringBuilder.Append(farmName); stringBuilder.AppendFormat(nutrient.ItemName); stringBuilder.Append(".xlsx"); string outputFileName = stringBuilder.ToString(); DirectoryInfo directory = new DirectoryInfo(folderPath); FileInfo newFile = FileOutputUtil.GetFileInfo(directory, outputFileName, deleteIfExists: true); string[] headers = new string[] { "FieldId", "Farm", "Field", "Acreage", "Nutrient", "Amount (lbm/ac)", "Goal (lbm/ac)", "Last Sampled", $"{rotationYear - 1} Crop", $"{rotationYear} Crop" }; using (var package = new ExcelPackage(newFile)) { var newSheet = package.Workbook.Worksheets.Add("Results"); for (int i = 0; i < headers.Length; i++) { newSheet.Cells[1, i + 1].Value = headers[i]; } IList <FilteredFieldNutrientModel> models = GlobalConfig.Connection.GetFieldsNutrients_Filter( farmName: farmName, rotationYear: rotationYear, nutrientId: nutrient.Id, productId: crop.Id ); var newRange = newSheet.Cells["A2"].LoadFromCollection(models); newRange.AutoFitColumns(); package.Save(); } }
public void CreateNutrient(NutrientModel model) { var p = new DynamicParameters(); p.Add("@QuantityName", model.ItemName); p.Add("@UnitId", model.UnitId); p.Add("@id", model.Id, dbType: DbType.Int32, direction: ParameterDirection.InputOutput); using (IDbConnection connection = new SqlConnection(GlobalConfig.CnnString(db))) { connection.Execute("dbo.spNutrients_Insert", p, commandType: CommandType.StoredProcedure); } model.Id = p.Get <int>("@id"); }
private SoilSampleNutrientModel CreateSampleNutrientRecord(List <string> sample, string key) { int index = NutrientMappings[key]; SoilSampleNutrientModel newNutrientRecord = new SoilSampleNutrientModel(); newNutrientRecord.Amount = null; newNutrientRecord.Recommendation = null; newNutrientRecord.NutrientId = Convert.ToInt32(key); NutrientModel nutrient = GlobalConfig.Connection.GetNutrient_ById(newNutrientRecord.NutrientId); if (sample[index] != "NULL") { newNutrientRecord.Amount = Convert.ToDecimal(sample[index]); string nutrientUnit = Units.Where <UnitModel>(unit => unit.Id == nutrient.UnitId).Select(unit => unit.Unit).First(); //Makes sure it's a quantity that needs to be converted if (nutrientUnit != "None") { newNutrientRecord.Amount *= SoilSampleNutrientModel.PPMConversionFactor; } } Regex recommendationRegex = new Regex($"^{key}\\sRec\\s\\d"); var recommendationColumns = RecommendationMappings .Where(pair => recommendationRegex.IsMatch(pair.Key)) .Select(pair => pair.Value); if (HasRecommendations(recommendationColumns)) { decimal totalRec = recommendationColumns .Where(i => decimal.TryParse(sample[i], out decimal recommendation)) .Select(i => decimal.Parse(sample[i])) .Sum(); if (NotAllNull(sample, recommendationColumns)) { newNutrientRecord.Recommendation = totalRec; } } return(newNutrientRecord); }
public NutrientModel GetNutrient_ById(int nutrientId) { NutrientModel output = new NutrientModel(); using (IDbConnection connection = new SqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); if (nutrientId > 0) { p.Add("@NutrientId", nutrientId); output = connection .Query <NutrientModel>("spNutrients_GetById", p, commandType: CommandType.StoredProcedure).First(); } } return(output); }
public async Task <ActionResult> PostNutrient(NutrientPostRequest item) { using (var db = new NutrientContext()) { NutrientModel model = new NutrientModel(); DateTime dt = DateTime.Now; model.name = item.name; model.protein = item.protein; model.lipid = item.lipid; model.carbohydrate = item.carbohydrate; model.calorie = item.calorie; model.created_at = dt; model.updated_at = dt; db.nutrients.Add(model); await db.SaveChangesAsync(); } return(NoContent()); }
public async Task <ActionResult <AdminDeleteResponse> > DeleteAdmin(AdminDeleteRequest request) { if (!(await checkToken(request.username, request.token))) { return(BadRequest()); } AdminDeleteResponse result = new AdminDeleteResponse(); using (var db = new NutrientContext()) { NutrientModel model = await db.nutrients.FindAsync(request.id); if (model == null) { return(NotFound()); } db.nutrients.Remove(model); await db.SaveChangesAsync(); result.token = await updateToken(request.username); } return(result); }
private async Task RefreshAsync() { this.model = await this.Service.GetNutrientAsync(Guid.Parse(this.NutrientId)); }