public async Task <int> AddActualNeeds(ActualNeeds actual) { if (_db != null) { await _db.ActualNeeds.AddAsync(actual); await _db.SaveChangesAsync(); return(1); } return(0); }
public async Task <int> UpdateActualNeeds(int id, ActualNeeds actual) { if (_db != null) { ActualNeeds existItem = _db.ActualNeeds.Where(f => f.IdactualNeeds == id).FirstOrDefault(); if (existItem != null) { existItem.ActualNeeds1 = actual.ActualNeeds1; existItem.Date = actual.Date; existItem.IdProduct = actual.IdProduct; _db.ActualNeeds.Update(existItem); await _db.SaveChangesAsync(); } return(1); } return(0); }
public async Task <IActionResult> UpdateActualNeeds(ActualNeeds actual, int id) { try { var result = await _needs.UpdateActualNeeds(id, actual); if (result != 0) { var Response = new ResponseViewModel(true, HttpStatusCode.OK, "SUCCESS", result); return(Ok(Response)); } else { var Response = new ResponseViewModel(false, HttpStatusCode.NoContent, "failed", null); return(Ok(Response)); } } catch { return(BadRequest()); } }
public async Task <List <double> > GetActualNeedsByType(int type, string period, DateTime start, DateTime end) { try { if (period == "daily") { //Define list of Actual needs each day to store the result List <Double> result = new List <double>(); TimeSpan diff = end.Subtract(start); for (var day = start.Date; day <= end.Date; day = day.AddDays(1)) { //to store the full productions Double value = 0; string test = day.ToString("yyyy-MM-dd"); //return list of Idactualneeds in each day List <int> actualneeds = _db.ActualNeeds.Where(x => x.Date.ToString() == test && x.IdProduct == type) .Select(x => x.IdactualNeeds).ToList(); for (int j = 0; j < actualneeds.Count; j++) { ActualNeeds subResult = await GetDailyActualNeeds(actualneeds[j]); value += Convert.ToDouble(subResult.ActualNeeds1.Value); } result.Add(value); } return(result); } else if (period == "monthly") { //Define list of Actual Needs to store the result List <Double> result = new List <double>(); TimeSpan diff = end.Subtract(start); for (var month = start.Month; month <= end.Month; month++) { //to store the all actual needs Double value = 0; //return list of id actual needs in each day List <int> actualneeds = await _db.ActualNeeds.Where(x => x.Date.Value.Month == month && x.IdProduct == type) .Select(x => x.IdactualNeeds).ToListAsync(); for (int j = 0; j < actualneeds.Count; j++) { ActualNeeds subResult = await GetDailyActualNeeds(actualneeds[j]); value += Convert.ToDouble(subResult.ActualNeeds1.Value); } result.Add(value); } return(result); } else if (period == "annual") { //Define list of Actual Needs to store the result List <Double> result = new List <double>(); System.TimeSpan diff = end.Subtract(start); for (var year = start.Year; year <= end.Year; year++) { //to store the full Actual Needs Double value = 0; //return list of id_Actual Needs in each day List <int> actualneeds = await _db.ActualNeeds.Where(x => x.Date.Value.Year == year && x.IdProduct == type) .Select(x => x.IdactualNeeds).ToListAsync(); for (int j = 0; j < actualneeds.Count; j++) { ActualNeeds subResult = await GetDailyActualNeeds(actualneeds[j]); value += Convert.ToDouble(subResult.ActualNeeds1.Value); } result.Add(value); } return(result); } return(null); } catch (Exception) { return(null); } }