public async Task <ActionResult> Create([Bind(Include = "MeterSerialNumber,MeterNumber,CustomerId")] MeterViewModel meter) { var customer = await db.Customers.FindAsync(meter.CustomerId); if (customer != null) { try { meter.CustomerId = customer.CustomerId; meter.CreatedBy = User.Identity.Name; meter.DateCreated = DateTime.Now; meter.MeterId = IdentityGenerator.NewSequentialGuid(); var meterModel = Map <MeterViewModel, Meter>(meter); db.Meters.Add(meterModel); await db.SaveChangesAsync(); TempData.Clear(); TempData.Add("MeterId", meterModel.MeterId); return(RedirectToAction("Index", "Meters")); } catch (Exception ex) { ModelState.AddModelError("*", ex); return(View(meter)); } } return(HttpNotFound("Record with the stated ID could not be found!")); }
public async Task <ActionResult> Edit([Bind(Include = "MeterId,MeterSerialNumber,MeterNumber,CustomerId")] MeterViewModel meter) { var existingMeter = await db.Meters.FindAsync(meter.MeterId); if (existingMeter != null) { var existingCustomer = await db.Customers.FindAsync(meter.CustomerId); if (existingCustomer != null) { existingMeter.CustomerId = existingCustomer.CustomerId; existingMeter.LastEditDate = DateTime.Now; existingMeter.LastEditedBy = User.Identity.Name; existingMeter.MeterSerialNumber = meter.MeterSerialNumber; existingMeter.MeterNumber = meter.MeterNumber; try { db.Entry(existingMeter).State = EntityState.Modified; await db.SaveChangesAsync(); TempData.Add("CustomerId", existingMeter.CustomerId); return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("*", ex); return(View(meter)); } } return(HttpNotFound()); } return(HttpNotFound()); }
// // GET: /Meter/Details/5 public ActionResult Home(int meterId, int propertyId, string type) { if (type == "Electricity") { try { ///get elec meter object from API ElectricityMeter meter = ResponseReader.convertTo <ElectricityMeter>(emAPI.getMeter(meterId)); MeterViewModel model = new MeterViewModel(meter); model.BelongsToProperty = propertyId; model.Meter.Invoices = model.Meter.Invoices.OrderByDescending(inv => inv.BillDate).ToList(); ///forecast invoice if possible Invoice nextInvoice = ResponseReader.convertTo <Invoice>(emAPI.forecastNextInvoice(meterId)); if (nextInvoice != null) { model.ForecastedInvoice = nextInvoice; } return(View(model)); } catch { return(View("Error")); } } else if (type == "Gas") { try { ///get gas meter from API GasMeter meter = ResponseReader.convertTo <GasMeter>(emAPI.getMeter(meterId)); MeterViewModel model = new MeterViewModel(meter); model.BelongsToProperty = propertyId; model.Meter.Invoices = model.Meter.Invoices.OrderByDescending(inv => inv.BillDate).ToList(); ///forecast invoice if possible Invoice nextInvoice = ResponseReader.convertTo <Invoice>(emAPI.forecastNextInvoice(meterId)); if (nextInvoice != null) { model.ForecastedInvoice = nextInvoice; } return(View(model)); } catch { return(View("Error")); } } else { ///unrecognised meter type /// return(View("Home", "User")); } }
// // GET: /Meter/Delete/5 public ActionResult Delete(int meterId, int propertyId) { try { Meter meter = ResponseReader.convertTo <Meter>(emAPI.getMeter(meterId)); MeterViewModel model = new MeterViewModel(meter); model.BelongsToProperty = propertyId; return(PartialView(model)); } catch { return(View("Error")); } }
public MeterViewModel[] GetrealTimeMetersData() { MeterViewModel[] realtimemeterdata = new MeterViewModel[5]; for (int i = 0; i < 5; i++) { decimal[] output = Meters[i].GetRealTimeData(); realtimemeterdata[i] = new MeterViewModel(); realtimemeterdata[i].ActivePower = output[0]; realtimemeterdata[i].ReactivePower = output[1]; realtimemeterdata[i].Current = output[2]; realtimemeterdata[i].Frequency = output[3]; realtimemeterdata[i].Voltage = output[4]; realtimemeterdata[i].PowerFactor = output[5]; realtimemeterdata[i].SerialCode = Meters[i].SerialCode; realtimemeterdata[i].Name = Meters[i].Name; } return(realtimemeterdata); }
public ActionResult Delete(MeterViewModel model) { try { ///submit delete and check for success EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.deleteMeter(model.Meter.Id, model.BelongsToProperty)); if (response.status == EMResponse.OK) { return(RedirectToAction("Home", "Property", new { id = model.BelongsToProperty })); } else { return(View("Error")); } } catch { return(View("Error")); } }
public ActionResult Edit(MeterViewModel model) { try { ///submit edits and check for success string meterJSON = JsonConvert.SerializeObject(model.Meter); EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.editMeter(model.Meter.Id, meterJSON)); if (response.status == EMResponse.OK) { return(RedirectToAction("Home", "Meter", new { meterId = model.Meter.Id, propertyId = model.BelongsToProperty, type = model.Meter.Fuel })); } else { return(View("Error")); } } catch { return(View("Error")); } }