コード例 #1
0
        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!"));
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        //
        // 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"));
            }
        }
コード例 #4
0
        //
        // 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"));
            }
        }
コード例 #5
0
ファイル: SystemControl.cs プロジェクト: barazesh/PSRES
        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);
        }
コード例 #6
0
 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"));
     }
 }
コード例 #7
0
        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"));
            }
        }