Esempio n. 1
0
        public string getMetersForProperty(int propertyId)
        {
            string     responseJSON = emAPI.getProperty(propertyId);
            EMResponse response     = JsonConvert.DeserializeObject <EMResponse>(responseJSON);

            if (response.status == EMResponse.OK)
            {
                Property property = JsonConvert.DeserializeObject <Property>(response.data);

                List <dynamic> mobileMeters = new List <dynamic>();

                foreach (Meter m in property.Meters)
                {
                    string minimumReadingDateResponse = emAPI.getMinimumReadingDate(m.Id);

                    EMResponse dateResponse = JsonConvert.DeserializeObject <EMResponse>(minimumReadingDateResponse);
                    if (dateResponse.status == EMResponse.OK)
                    {
                        mobileMeters.Add(new { Id          = m.Id, BelongsToProperty = property.Id, SerialNo = m.SerialNo, Fuel = m.Fuel,
                                               MinimumDate = JsonConvert.DeserializeObject <string>(dateResponse.data), NumbDigits = m.NumbDigits });
                    }
                }

                return(JsonConvert.SerializeObject(mobileMeters));
            }
            else
            {
                return(EMResponse.Error.ToString());
            }
        }
Esempio n. 2
0
        public ActionResult Edit(int id, TariffViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Tariff updatedTariff     = TariffConverter.createTariffFromViewModel(model);
                    string updatedTariffJSON = JsonConvert.SerializeObject(updatedTariff);

                    EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.editTariff(id, updatedTariffJSON));

                    if (response.status == EMResponse.OK)
                    {
                        return(RedirectToAction("Home", "Meter", new { meterId = model.meterId, propertyId = model.BelongsToProperty, type = model.fuel }));
                    }
                    else
                    {
                        return(View("Error"));
                    }
                }

                return(View(model));
            }
            catch
            {
                return(View("Error"));
            }
        }
Esempio n. 3
0
        public ActionResult Create(InvoiceViewModel model)
        {
            try
            {
                int        meterId  = model.MeterId;
                EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.createInvoice(meterId, model.Invoice.BillDate.ToString(),
                                                                                                     model.Invoice.StartDate.ToString(), model.Invoice.EndDate.ToString(),
                                                                                                     model.Invoice.KWh, model.Invoice.ConsumptionCharge,
                                                                                                     model.Invoice.StandingCharge, model.Invoice.OtherCharge, model.BelongsToProperty));

                if (response.status == EMResponse.OK)
                {
                    string meterType = model.Fuel;
                    return(RedirectToAction("Home", "Meter", new { meterId = model.MeterId, propertyId = model.BelongsToProperty, type = model.Fuel }));
                }
                else
                {
                    return(View("Error"));
                }
            }
            catch
            {
                return(View("Error"));
            }
        }
Esempio n. 4
0
        public static T convertTo <T>(string responseJSON)
        {
            EMResponse response = JsonConvert.DeserializeObject <EMResponse>(responseJSON);

            T result = default(T);

            if (response.status == EMResponse.OK)
            {
                result = JsonConvert.DeserializeObject <T>(response.data);
            }

            return(result);
        }
Esempio n. 5
0
        public ActionResult Delete(MeterReadingViewModel model)
        {
            ///submit deletion and check for success
            EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.deleteReading(model.MtrReading.Id, model.BelongsToMeter, model.BelongsToProperty));

            if (response.status == EMResponse.OK)
            {
                return(RedirectToAction("Index", "Reading", new { meterId = model.BelongsToMeter, propertyId = model.BelongsToProperty, fuel = model.Fuel }));
            }
            else
            {
                return(View("Error"));
            }
        }
Esempio n. 6
0
        public ActionResult Create(PropertyViewModel model)
        {
            try
            {
                ///property type id
                int typeId = ResponseReader.convertTo <int>(emAPI.getPropertyTypeId(model.HeatingType.Id, model.BuildingType.Id, model.WallType.Id));

                ///substitute floor area and number of bedrooms if left empty in form
                int numbRooms = 0;
                int floorArea = 0;

                if (model.NumbBedrooms.HasValue)
                {
                    numbRooms = model.NumbBedrooms.Value;
                }

                if (model.FloorArea.HasValue)
                {
                    floorArea = model.FloorArea.Value;
                }


                EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.createProperty(model.Property.Name,
                                                                                                      model.Property.Postcode,
                                                                                                      floorArea,
                                                                                                      numbRooms,
                                                                                                      typeId, int.Parse(User.Identity.Name)));

                if (response.status == EMResponse.OK)
                {
                    return(RedirectToAction("UserHome", "Home", new { id = model.BelongsToUser }));
                }
                else
                {
                    ///need to populate model with selection lists and return model with errors for users correction
                    model.HeatingTypes  = ResponseReader.convertTo <List <HeatingType> >(emAPI.getHeatingTypes());
                    model.BuildingTypes = ResponseReader.convertTo <List <BuildingType> >(emAPI.getBuildingTypes());
                    model.WallTypes     = ResponseReader.convertTo <List <WallType> >(emAPI.getWallTypes());
                    return(View(model));
                }
            }
            catch
            {
                return(View("Error"));
            }
        }
Esempio n. 7
0
        public ActionResult Create(TariffViewModel tariffViewModel)
        {
            string fuel       = tariffViewModel.fuel;
            int    meterId    = tariffViewModel.meterId;
            int    propertyId = tariffViewModel.BelongsToProperty;

            try
            {
                if (ModelState.IsValid)
                {
                    Tariff tariff = TariffConverter.createTariffFromViewModel(tariffViewModel);

                    EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.createTariff(tariff.SCValue, tariff.StartDate.ToString(),
                                                                                                        tariff.SCPeriod.Id, tariff.BandPeriod.Id, tariffViewModel.meterId));

                    if (response.status == EMResponse.OK)
                    {
                        int tariffId = JsonConvert.DeserializeObject <int>(response.data);


                        foreach (TariffBand band in tariff.Bands)
                        {
                            EMResponse bandResponse = JsonConvert.DeserializeObject <EMResponse>(emAPI.createTariffBand(band.UpperkWhLimit,
                                                                                                                        band.LowerkWhLimit,
                                                                                                                        band.UnitRate, tariffId));
                            if (bandResponse.status != EMResponse.OK)
                            {
                                return(View("Error"));
                            }
                        }

                        return(RedirectToAction("Home", "Meter", new { meterId = tariffViewModel.meterId, propertyId = tariffViewModel.BelongsToProperty, type = tariffViewModel.fuel }));
                    }
                }
                else
                {
                    return(View(tariffViewModel));
                }

                return(View(tariffViewModel));
            }
            catch
            {
                return(View("Error"));
            }
        }
Esempio n. 8
0
 public ActionResult Delete(InvoiceViewModel model)
 {
     try
     {
         EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.deleteInvoice(model.Invoice.Id, model.BelongsToProperty));
         if (response.status == EMResponse.OK)
         {
             return(RedirectToAction("Index", "Invoice", new { meterId = model.MeterId, propertyId = model.BelongsToProperty, fuel = model.Fuel }));
         }
         else
         {
             return(View("Error"));
         }
     }
     catch
     {
         return(View("Error"));
     }
 }
Esempio n. 9
0
 public ActionResult Delete(TariffViewModel model)
 {
     try
     {
         EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.deleteTariff(model.Id));
         if (response.status == EMResponse.OK)
         {
             return(RedirectToAction("Home", "Meter", new { meterId = model.meterId, propertyId = model.BelongsToProperty, type = model.fuel }));
         }
         else
         {
             return(View("Error"));
         }
     }
     catch
     {
         return(View("Error"));
     }
 }
Esempio n. 10
0
 public ActionResult Delete(Property property)
 {
     try
     {
         EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.deleteProperty(property.Id));
         if (response.status == EMResponse.OK)
         {
             return(RedirectToAction("UserHome", "Home", new { id = int.Parse(User.Identity.Name) }));
         }
         else
         {
             return(View("Error"));
         }
     }
     catch
     {
         return(View("Error"));
     }
 }
Esempio n. 11
0
 public ActionResult Validate(int invoiceId, int meterId, int propertyId, string fuel)
 {
     try
     {
         EMResponse repsonse = JsonConvert.DeserializeObject <EMResponse>(emAPI.validateInvoice(invoiceId, true));
         if (repsonse.status == EMResponse.OK)
         {
             return(RedirectToAction("Index", "Invoice", new { meterId = meterId, propertyId = propertyId, fuel = fuel }));
         }
         else
         {
             return(View("Error"));
         }
     }
     catch
     {
         return(View("Error"));
     }
 }
Esempio n. 12
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"));
     }
 }
Esempio n. 13
0
        public ActionResult Create(MeterReadingViewModel model)
        {
            if (ModelState.IsValid)
            {
                ///create reading and check for success
                EMResponse response = JsonConvert.DeserializeObject <EMResponse>(
                    emAPI.createMeterReading(model.Date.ToString(), model.MtrReading.Reading, model.BelongsToMeter, model.BelongsToProperty));

                if (response.status == EMResponse.OK)
                {
                    return(RedirectToAction("Home", "Meter", new { meterId = model.BelongsToMeter, propertyId = model.BelongsToProperty, type = model.Fuel }));
                }
                else
                {
                    return(View("Error"));
                }
            }

            ///return model with errors to view for user correction
            return(View(model));
        }
Esempio n. 14
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"));
            }
        }
Esempio n. 15
0
        public string getPropertiesForUser(int userId)
        {
            string responseJSON = emAPI.getPropertiesForUser(userId);

            EMResponse response = JsonConvert.DeserializeObject <EMResponse>(responseJSON);

            if (response.status == EMResponse.OK)
            {
                List <Property> properties       = JsonConvert.DeserializeObject <List <Property> >(response.data);
                List <dynamic>  mobileProperties = new List <dynamic>();

                foreach (Property p in properties)
                {
                    mobileProperties.Add(new { Id = p.Id, Name = p.Name, BelongsToUser = userId });
                }

                return(JsonConvert.SerializeObject(mobileProperties));
            }
            else
            {
                return(EMResponse.Error.ToString());
            }
        }
Esempio n. 16
0
        public ActionResult CreateGas(GasMeterViewModel model)
        {
            try
            {
                ///submit create and check for success
                int        propertyId = model.BelongsToProperty;
                EMResponse response   = JsonConvert.DeserializeObject <EMResponse>(emAPI.createGasMeter(model.Meter.SerialNo, model.Meter.MeterCoefficient,
                                                                                                        model.Meter.NumbDigits, model.StartDate.ToString(), propertyId));

                if (response.status == EMResponse.OK)
                {
                    return(RedirectToAction("Home", "Property", new { id = propertyId }));
                }
                else
                {
                    return(View("Error"));
                }
            }
            catch
            {
                return(View());
            }
        }
Esempio n. 17
0
        public ActionResult Edit(InvoiceViewModel model)
        {
            try
            {
                model.Invoice.Meter    = new Meter();
                model.Invoice.Meter.Id = model.MeterId;

                string invoiceJSON = JsonConvert.SerializeObject(model.Invoice);

                EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.editInvoice(model.Invoice.Id, invoiceJSON, model.BelongsToProperty));
                if (response.status == EMResponse.OK)
                {
                    return(RedirectToAction("Index", "Invoice", new { meterId = model.MeterId, propertyId = model.BelongsToProperty, fuel = model.Fuel }));
                }
                else
                {
                    return(View("Error"));
                }
            }
            catch
            {
                return(View("Error"));
            }
        }
Esempio n. 18
0
        static void Main()
        {
            while (true)
            {
                var input = Console.ReadLine();
                if (string.IsNullOrWhiteSpace(input))
                {
                    continue;
                }

                var args     = input.Split(' ');
                var command  = args.First();
                var argument = "";
                var id       = "";
                var pass     = "";
                if (args.Length == 2)
                {
                    argument = args[1];
                }
                else if (args.Length == 3)
                {
                    id   = args[1];
                    pass = args[2];
                }

                EMEmail emEmail;
                EMList  emList;
                switch (command)
                {
                case "login":
                    var result = Auth.Login(id, pass);
                    Console.Clear();
                    Console.WriteLine(result);
                    break;

                case "listcreate":
                    emList = new EMList();
                    var listId = emList.Create();
                    Console.WriteLine($"Success - Created list id:{listId}");
                    break;

                case "listupload":
                    emList = new EMList();
                    emList.Upload(int.Parse(argument));
                    Console.WriteLine("Success");
                    break;

                case "listdownload":
                    emList = new EMList();
                    emList.Download();
                    Console.WriteLine("Success");
                    break;

                case "listquery":
                    emList = new EMList();
                    emList.Query();
                    Console.WriteLine("Success");
                    break;

                case "send_anemail":
                    emEmail = new EMEmail();
                    emEmail.SendAnEmail();
                    Console.WriteLine("Success");
                    break;

                case "send_multipleemails_withdeployment":
                    emEmail = new EMEmail();
                    emEmail.SendMultipleEmailsWithGivenDeployment();
                    Console.WriteLine("Success");
                    break;

                case "send_multipleemails_withoutdeployment":
                    emEmail = new EMEmail();
                    emEmail.SendMultipleEmailsAfterCreatingDeployment();
                    Console.WriteLine("Success");
                    break;

                case "createcreative":
                    var emCreative = new EMCreative();
                    emCreative.Create();
                    Console.WriteLine("Success");
                    break;

                case "exportresponse":
                    var emResponse = new EMResponse();
                    emResponse.Export();
                    Console.WriteLine("Success");
                    break;

                case "Unsubscribe":
                    var emRecipient = new EMRecipient();
                    emRecipient.Unsubscribe();
                    Console.WriteLine("Success");
                    break;

                case "exit":
                    return;
                }
            }
        }
Esempio n. 19
0
        public ActionResult Edit(PropertyViewModel model)
        {
            Property property = new Property();

            property.Name = model.Property.Name;

            ///substitute number rooms and floor area if left empty on form
            int numbRooms = 0;
            int floorArea = 0;

            if (model.NumbBedrooms.HasValue)
            {
                numbRooms = model.NumbBedrooms.Value;
            }

            if (model.FloorArea.HasValue)
            {
                floorArea = model.FloorArea.Value;
            }


            ///poplate model object
            property.Postcode     = model.Property.Postcode.ToUpper();
            property.NumbBedrooms = numbRooms;
            property.FloorArea    = floorArea;

            int heatingType  = model.Property.PropertyType.Heating.Id;
            int buildingType = model.Property.PropertyType.Building.Id;
            int wallType     = model.Property.PropertyType.Walls.Id;

            try
            {
                ///create newProperty and submit edits.
                int propertyTypeId = ResponseReader.convertTo <int>(emAPI.getPropertyTypeId(heatingType, buildingType, wallType));

                property.PropertyType = new PropertyType {
                    Id = propertyTypeId
                };

                string propertyJSON = JsonConvert.SerializeObject(property);

                ///check for success
                EMResponse response = JsonConvert.DeserializeObject <EMResponse>(emAPI.editProperty(model.Property.Id, propertyJSON));
                if (response.status == EMResponse.OK)
                {
                    return(RedirectToAction("Home", "Property", new { id = model.Property.Id }));
                }
                else
                {
                    ///populate model with selection lists and try again
                    model.HeatingTypes  = ResponseReader.convertTo <List <HeatingType> >(emAPI.getHeatingTypes());
                    model.BuildingTypes = ResponseReader.convertTo <List <BuildingType> >(emAPI.getBuildingTypes());
                    model.WallTypes     = ResponseReader.convertTo <List <WallType> >(emAPI.getWallTypes());
                    return(View(model));
                }
            }
            catch
            {
                return(View("Error"));
            }
        }