public ActionResult Create(SignalApplianceValue signalApplianceValue, FormCollection form)
        {
            ViewData["ValidationErrorMessage"] = String.Empty;
            if (this.FormCollectionIsValid(form, true))
            {
                Dictionary<string, object> properties = new Dictionary<string, object>();
                properties.Add("Signal.Id", int.Parse(form["SignalId"]));
                properties.Add("Appliance.Id", int.Parse(form["ApplianceId"]));

                IList<SignalAppliance> signalApplianceList = dbSA.GetByProperties(properties);

                if (!signalApplianceList.Any())
                {
                    SignalAppliance signalAppliance = new SignalAppliance();
                    signalAppliance.Signal = dbS.GetById(int.Parse(form["SignalId"]));
                    signalAppliance.Appliance = dbA.GetById(int.Parse(form["ApplianceId"]));

                    dbSA.Save(signalAppliance);
                    signalApplianceList = dbSA.GetByProperties(properties);
                }

                foreach (SignalAppliance item in signalApplianceList)
                {
                    signalApplianceValue.SignalAppliance = item;
                    signalApplianceValue.AlarmType = dbAT.GetById(int.Parse(form["AlarmTypeId"]));
                    signalApplianceValue.Value = float.Parse(form["Value"]);

                    properties = new Dictionary<string, object>();
                    properties.Add("SignalAppliance.Id", item.Id);
                    properties.Add("AlarmType.Id", dbAT.GetById(signalApplianceValue.AlarmType.Id).Id);

                    if (!db.GetByProperties(properties).Any())
                    {
                        db.Save(signalApplianceValue);

                        List<Object> logList = new List<Object>();
                        logList.Add(log.GetNewLog(ConfigurationManager.AppSettings["CreateText"] + ControllerContext.RouteData.Values["controller"] + "(Id=" + signalApplianceValue.Id + ")", (int)EventTypes.Create, (int)Session["UserId"]));
                        log.Write(logList);

                        return RedirectToAction("Index");
                    }
                    else
                    {
                        ViewData["ValidationErrorMessage"] = ConfigurationManager.AppSettings["DuplicatedRecordErrorMessage"].ToString();
                    }
                }
            }

            ViewBag.ApplianceId = !String.IsNullOrEmpty(form["ApplianceId"]) ? new SelectList(dbA.GetAll(), "Id", "NameAppliance", form["ApplianceId"]) : new SelectList(dbA.GetAll(), "Id", "NameAppliance");
            ViewBag.SignalId = !String.IsNullOrEmpty(form["SignalId"]) ? new SelectList(dbS.GetAll(), "Id", "Name", form["SignalId"]) : new SelectList(dbS.GetAll(), "Id", "Name");
            ViewBag.AlarmTypeId = !String.IsNullOrEmpty(form["AlarmTypeId"]) ? new SelectList(dbAT.GetAll(), "Id", "NameAlarmType", form["AlarmTypeId"]) : new SelectList(dbAT.GetAll(), "Id", "NameAlarmType");

            return View();
        }
Пример #2
0
        public void CanCreateSignalApplianceAndValues()
        {
            IRepository<Area> repoT = new AreaRepository();
            Area area = new Area();
            area = repoT.GetById(1);
            IRepository<AlarmType> repoAT = new AlarmTypeRepository();
            AlarmType alarm = new AlarmType();
            alarm = repoAT.GetById(1);

            IRepository<Signal> repoA = new SignalRepository();
            Signal signal = new Signal();
            signal.Name = "PruebaSenal";
            signal.Description = "Prueba descriptiva senal";

            repoA.Save(signal);

            IRepository<Appliance> repoB = new ApplianceRepository();
            Appliance appliance = new Appliance();
            appliance.NameAppliance = "PruebaAppliance";
            appliance.Description = "Prueba descriptiva appliance";
            appliance.Area = area;

            SignalAppliance signalAppliance = new SignalAppliance();
            signalAppliance.Signal = signal;
            signalAppliance.Appliance = appliance;

            appliance.Signals.Add(signalAppliance);

            repoB.Save(appliance);

            IRepository<SignalApplianceValue> repoSAV = new SignalApplianceValueRepository();
            SignalApplianceValue signalApplianceValue = new SignalApplianceValue();
            signalApplianceValue.Value = 40;
            signalApplianceValue.SignalAppliance = signalAppliance;
            signalApplianceValue.AlarmType = alarm;

            repoSAV.Save(signalApplianceValue);
        }
        private void updateSignalApplianceValues(SignalAppliance signalAppliance, float setPoint , bool exists)
        {
            int normalAlarmTypeId = int.Parse(ConfigurationManager.AppSettings["NormalAlarmId"].ToString());
            int highAlarmTypeId = int.Parse(ConfigurationManager.AppSettings["HighAlarmId"].ToString());
            int lowAlarmTypeId = int.Parse(ConfigurationManager.AppSettings["LowAlarmId"].ToString());

            if (exists)
            {
                IList<SignalApplianceValue> saValues = dbSAppV.GetByProperty("SignalAppliance.Id", signalAppliance.Id);

                foreach (SignalApplianceValue saValue in saValues)
                {
                    if (saValue.AlarmType.Id == normalAlarmTypeId)
                    {
                        saValue.Value = setPoint;
                    }
                    else if (saValue.AlarmType.Id == highAlarmTypeId)
                    {
                        saValue.Value = setPoint + signalAppliance.Tolerance;
                    }
                    else if (saValue.AlarmType.Id == lowAlarmTypeId)
                    {
                        saValue.Value = setPoint - signalAppliance.Tolerance;
                    }

                    dbSAppV.Update(saValue);
                }
            }
            else
            {
                SignalApplianceValue normalValue = new SignalApplianceValue();
                normalValue.SignalAppliance = signalAppliance;
                normalValue.AlarmType = dbAT.GetById(normalAlarmTypeId);
                normalValue.Value = setPoint;

                SignalApplianceValue highValue = new SignalApplianceValue();
                highValue.SignalAppliance = signalAppliance;
                highValue.AlarmType = dbAT.GetById(highAlarmTypeId);
                highValue.Value = setPoint + signalAppliance.Tolerance;

                SignalApplianceValue lowValue = new SignalApplianceValue();
                lowValue.SignalAppliance = signalAppliance;
                lowValue.AlarmType = dbAT.GetById(lowAlarmTypeId);
                lowValue.Value = setPoint - signalAppliance.Tolerance;

                dbSAppV.Save(normalValue);
                dbSAppV.Save(highValue);
                dbSAppV.Save(lowValue);
            }
        }
Пример #4
0
        public void CanCreateSignalWithToleranceAndAssociatedSignalApplianceValues()
        {
            IRepository<Area> repoT = new AreaRepository();
            Area area = new Area();
            area = repoT.GetById(1);
            IRepository<AlarmType> repoAT = new AlarmTypeRepository();
            AlarmType normalAlarm = new AlarmType();
            normalAlarm = repoAT.GetById(1);
            AlarmType highAlarm = new AlarmType();
            highAlarm = repoAT.GetById(2);
            AlarmType lowAlarm = new AlarmType();
            lowAlarm = repoAT.GetById(3);

            IRepository<Signal> repoA = new SignalRepository();
            Signal signal = new Signal();
            signal.Name = "PruebaSenal";
            signal.Description = "Prueba descriptiva senal";

            repoA.Save(signal);

            IRepository<Appliance> repoB = new ApplianceRepository();
            Appliance appliance = new Appliance();
            appliance.NameAppliance = "PruebaAppliance";
            appliance.Description = "Prueba descriptiva appliance";
            appliance.Area = area;

            IRepository<SignalAppliance> repoSAppl = new SignalApplianceRepository();
            SignalAppliance signalAppliance = new SignalAppliance();
            signalAppliance.Signal = signal;
            signalAppliance.Appliance = appliance;
            signalAppliance.Tolerance = SIGNAL_APPLIANCE_TOLERANCE;

            appliance.Signals.Add(signalAppliance);

            IRepository<SignalApplianceValue> repoSApplV = new SignalApplianceValueRepository();
            SignalApplianceValue normalValue = new SignalApplianceValue();
            normalValue.AlarmType = normalAlarm;
            normalValue.SignalAppliance = signalAppliance;
            normalValue.Value = SIGNAL_APPLIANCE_SET_POINT;

            SignalApplianceValue highValue = new SignalApplianceValue();
            highValue.AlarmType = highAlarm;
            highValue.SignalAppliance = signalAppliance;
            highValue.Value = SIGNAL_APPLIANCE_SET_POINT + SIGNAL_APPLIANCE_TOLERANCE;

            SignalApplianceValue lowValue = new SignalApplianceValue();
            lowValue.AlarmType = lowAlarm;
            lowValue.SignalAppliance = signalAppliance;
            lowValue.Value = SIGNAL_APPLIANCE_SET_POINT - SIGNAL_APPLIANCE_TOLERANCE;

            signalAppliance.SignalApplianceValues.Add(normalValue);
            signalAppliance.SignalApplianceValues.Add(highValue);
            signalAppliance.SignalApplianceValues.Add(lowValue);

            repoB.Save(appliance);

            SignalApplianceValue createdNormalValue = repoSApplV.GetById(normalValue.Id);
            Assert.AreEqual(normalValue.Value, createdNormalValue.Value);

            SignalApplianceValue createdHighValue = repoSApplV.GetById(highValue.Id);
            Assert.AreEqual(highValue.Value, createdHighValue.Value);

            SignalApplianceValue createdLowValue = repoSApplV.GetById(lowValue.Id);
            Assert.AreEqual(lowValue.Value, createdLowValue.Value);

            repoSApplV.Delete(normalValue.Id);
            repoSApplV.Delete(highValue.Id);
            repoSApplV.Delete(lowValue.Id);

            repoSAppl.Delete(signalAppliance.Id);

            repoB.Delete(appliance.Id);

            repoA.Delete(signal.Id);
        }
Пример #5
0
        public void ListSignalAppliancesWithAlarmTypesAndValuesInOneRecord()
        {
            IRepository<SignalAppliance> dbSA = new SignalApplianceRepository();
            IRepository<Signal> dbS = new SignalRepository();
            IRepository<Appliance> dbApp = new ApplianceRepository();
            IRepository<SignalApplianceValue> dbSAppV = new SignalApplianceValueRepository();
            IRepository<AlarmType> dbAT = new AlarmTypeRepository();
            IRepository<Area> dbA = new AreaRepository();

            Area area = new Area();
            area = dbA.GetById(1);
            AlarmType normalAlarm = new AlarmType();
            normalAlarm = dbAT.GetById(1);
            AlarmType highAlarm = new AlarmType();
            highAlarm = dbAT.GetById(2);
            AlarmType lowAlarm = new AlarmType();
            lowAlarm = dbAT.GetById(3);

            Signal signal = new Signal();
            signal.Name = "PruebaSenal";
            signal.Description = "Prueba descriptiva senal";

            dbS.Save(signal);

            Appliance appliance = new Appliance();
            appliance.NameAppliance = "PruebaAppliance";
            appliance.Description = "Prueba descriptiva appliance";
            appliance.Area = area;

            SignalAppliance signalAppliance = new SignalAppliance();
            signalAppliance.Signal = signal;
            signalAppliance.Appliance = appliance;
            signalAppliance.Tolerance = SIGNAL_APPLIANCE_TOLERANCE;

            appliance.Signals.Add(signalAppliance);

            SignalApplianceValue normalValue = new SignalApplianceValue();
            normalValue.AlarmType = normalAlarm;
            normalValue.SignalAppliance = signalAppliance;
            normalValue.Value = SIGNAL_APPLIANCE_SET_POINT;

            SignalApplianceValue highValue = new SignalApplianceValue();
            highValue.AlarmType = highAlarm;
            highValue.SignalAppliance = signalAppliance;
            highValue.Value = SIGNAL_APPLIANCE_SET_POINT + SIGNAL_APPLIANCE_TOLERANCE;

            SignalApplianceValue lowValue = new SignalApplianceValue();
            lowValue.AlarmType = lowAlarm;
            lowValue.SignalAppliance = signalAppliance;
            lowValue.Value = SIGNAL_APPLIANCE_SET_POINT - SIGNAL_APPLIANCE_TOLERANCE;

            signalAppliance.SignalApplianceValues.Add(normalValue);
            signalAppliance.SignalApplianceValues.Add(highValue);
            signalAppliance.SignalApplianceValues.Add(lowValue);

            dbApp.Save(appliance);

            var result = from sa in dbSA.GetAll()
                                   join s in dbS.GetAll() on sa.Signal.Id equals s.Id
                                   join app in dbApp.GetAll() on sa.Appliance.Id equals app.Id
                                   join sapv in dbSAppV.GetAll() on sa.Id equals sapv.SignalAppliance.Id
                                   join a in dbAT.GetAll() on sapv.AlarmType.Id equals a.Id
                                   where sa.Id.Equals(signalAppliance.Id)
                                   group new {a.Id, a.NameAlarmType, sapv.Value } by new {sa.Id, app.NameAppliance, s.Name, sa.Tolerance} into g
                         select new { signalAppliance = g.Key, setPoint = from v in g where v.Id == 1 select v.Value, highValue = from v in g where v.Id == 2 select v.Value, lowValue = from v in g where v.Id == 3 select v.Value };

            foreach (var sa in result)
            {
                Assert.AreEqual(sa.signalAppliance.Id, signalAppliance.Id);
                ObjectDumper.Write(sa.setPoint);
                Assert.AreEqual(normalValue.Value, sa.setPoint.ElementAtOrDefault(0));
                ObjectDumper.Write(sa.highValue);
                Assert.AreEqual(highValue.Value, sa.highValue.ElementAtOrDefault(0));
                ObjectDumper.Write(sa.lowValue);
                Assert.AreEqual(lowValue.Value, sa.lowValue.ElementAtOrDefault(0));
            }

            dbSAppV.Delete(normalValue.Id);
            dbSAppV.Delete(highValue.Id);
            dbSAppV.Delete(lowValue.Id);

            dbSA.Delete(signalAppliance.Id);

            dbApp.Delete(appliance.Id);

            dbS.Delete(signal.Id);
        }
        private SignalApplianceValue RemoveExtraSpaces(SignalApplianceValue signalappliancevalue)
        {
            //signalappliancevalue.Value = !String.IsNullOrWhiteSpace(signalappliancevalue.Value) ? signalappliancevalue.Value.Trim() : null;

            return signalappliancevalue;
        }
        public ActionResult Edit(SignalApplianceValue signalApplianceValue, FormCollection form)
        {
            ViewData["ValidationErrorMessage"] = String.Empty;
            if (this.FormCollectionIsValid(form, false))
            {
                SignalAppliance signalAppliance = dbSA.GetById(db.GetById(signalApplianceValue.Id).SignalAppliance.Id);

                if (signalAppliance != null)
                {
                    signalAppliance.Signal = dbS.GetById(int.Parse(form["SignalId"]));
                    signalAppliance.Appliance = dbA.GetById(int.Parse(form["ApplianceId"]));

                    dbSA.Update(signalAppliance);

                    List<Object> logList = new List<Object>();
                    logList.Add(log.GetNewLog(ConfigurationManager.AppSettings["EditText"] + ControllerContext.RouteData.Values["controller"] + "(Id=" + signalApplianceValue.Id + ")", (int)EventTypes.Edit, (int)Session["UserId"]));
                    log.Write(logList);
                }
                else
                {
                    signalAppliance = new SignalAppliance();
                    signalAppliance.Signal = dbS.GetById(int.Parse(form["SignalId"]));
                    signalAppliance.Appliance = dbA.GetById(int.Parse(form["ApplianceId"]));

                    dbSA.Save(signalAppliance);

                    List<Object> logList = new List<Object>();
                    logList.Add(log.GetNewLog(ConfigurationManager.AppSettings["CreateText"] + ControllerContext.RouteData.Values["controller"] + "(Id=" + signalAppliance.Id + ")", (int)EventTypes.Create, (int)Session["UserId"]));
                    log.Write(logList);
                }

                signalApplianceValue.SignalAppliance = signalAppliance;
                signalApplianceValue.AlarmType = dbAT.GetById(int.Parse(form["AlarmTypeId"]));
                signalApplianceValue.Value = float.Parse(form["Value"]);

                db.Update(signalApplianceValue);

                List<Object> logL = new List<Object>();
                logL.Add(log.GetNewLog(ConfigurationManager.AppSettings["EditText"] + ControllerContext.RouteData.Values["controller"] + "(Id=" + signalApplianceValue.Id + ")", (int)EventTypes.Edit, (int)Session["UserId"]));
                log.Write(logL);

                return RedirectToAction("Index");
            }

            ViewBag.ApplianceId = !String.IsNullOrEmpty(form["ApplianceId"]) ? new SelectList(dbA.GetAll(), "Id", "NameAppliance", form["ApplianceId"]) : new SelectList(dbA.GetAll(), "Id", "NameAppliance");
            ViewBag.SignalId = !String.IsNullOrEmpty(form["SignalId"]) ? new SelectList(dbS.GetAll(), "Id", "Name", form["SignalId"]) : new SelectList(dbS.GetAll(), "Id", "Name");
            ViewBag.AlarmTypeId = !String.IsNullOrEmpty(form["AlarmTypeId"]) ? new SelectList(dbAT.GetAll(), "Id", "NameAlarmType", form["AlarmTypeId"]) : new SelectList(dbAT.GetAll(), "Id", "NameAlarmType");

            return View();
        }