예제 #1
0
        public bool FertilizerSetting_Update(string SN, FertilizerSetting FertilizerSetting)
        {
            var Result       = false;
            int rowsAffected = 0;

            Connector.GetProcedureResultInt32("config.FertilizerSetting_Update",
                                              new IDataParameter[] {
                Connector.CreateParameter("SN", SN),
                Connector.CreateParameter("ContinuousFert", FertilizerSetting.ContinuousFert),
                Connector.CreateParameter("FerlizerFaillureTime", FertilizerSetting.FerlizerFaillureTime),
                Connector.CreateParameter("FlowTypeID", FertilizerSetting.FlowTypeID),
                Connector.CreateParameter("IsEnabled", FertilizerSetting.IsEnabled),
                Connector.CreateParameter("Leakage", FertilizerSetting.Leakage),
                Connector.CreateParameter("NominalFlow", FertilizerSetting.NominalFlow),
                Connector.CreateParameter("OutputNumber", FertilizerSetting.OutputNumber),
                Connector.CreateParameter("PulseSize", FertilizerSetting.PulseSize),
                Connector.CreateParameter("PulseTime", FertilizerSetting.PulseTime),
                Connector.CreateParameter("PulseTypeID", FertilizerSetting.PulseTypeID),
                Connector.CreateParameter("TypeID", FertilizerSetting.TypeID),
            },
                                              out rowsAffected,
                                              out Result);

            return(Result);
        }
예제 #2
0
        public DeviceSettingTitleView(FertilizerSetting fert,
                                      WaterMeterSetting waterMeter,
                                      GeneralSettings setting,
                                      MainPipeSettings MainPipe,
                                      ZoneSetting[] zonelist)
        {
            if (setting != null)
            {
                LandTypeID     = (LandType)setting.LandTypeID;
                IsAdvancedFert = setting.Flag_AdvancedFert;
            }

            if (zonelist != null)
            {
                Zones = zonelist.Select(z => new ZoneInfoView()
                {
                    Color   = z.ZoneColor,
                    Name    = z.Name,
                    ZoneNum = z.OutputNumber,
                    Precipitation_AllowDuration = z.PrecipitationRate != null && z.PrecipitationRate > 0,
                    Precipitation_AllowQuantity = z.IrrigrationArea != null && z.IrrigrationArea > 0
                }
                                        ).ToArray();
            }
            Fertilizer = new FertilizerSettingView(fert);
            WaterMeter = new WaterMeterSettingView(waterMeter);
            ValidDays  = new ValidDaysView(MainPipe);
        }
예제 #3
0
 public FertilizerSettingView(FertilizerSetting f)
 {
     if (f == null)
     {
         return;
     }
     OutputNumber         = f.OutputNumber;
     ContinuousFert       = f.ContinuousFert;
     PulseSize            = f.PulseSize;
     PulseTime            = f.PulseTime;
     FerlizerFaillureTime = f.FerlizerFaillureTime;
     Leakage        = f.Leakage;
     FertilizerType = (FertilizerType)f.TypeID;
     PulseTypeID    = (Fertilizer_PulseType)f.PulseTypeID;
     FlowTypeID     = (Fertilizer_FlowType)f.FlowTypeID;
     IsEnabled      = f.IsEnabled;
     NominalFlow    = f.NominalFlow;
 }
예제 #4
0
        public bool SaveSettings(string SN, SettingsView setting)
        {
            var result = false;

            #region  GeneralSettings

            if (setting.AdvancedSettings != null &&
                setting.DeviceInfo != null &&
                setting.GeneralSetting != null)
            {
                var gSetting = new GeneralSettings()
                {
                    IsMetric         = setting.AdvancedSettings.IsMetric,
                    LandTypeID       = (byte)setting.AdvancedSettings.LandType,
                    Name             = setting.DeviceInfo.Name,
                    Status           = (byte)setting.GeneralSetting.Status,
                    CustomTimeZoneID = setting.GeneralSetting.TimeZoneID
                };
                result = _AdminRepository.GeneralSettings_Update(SN, gSetting);

                if (!result)
                {
                    return(result);
                }
            }
            #endregion

            #region MainPipe

            if (setting.RainSensor != null &&
                setting.IrrgationSetting != null &&
                setting.GeneralSetting != null)
            {
                var mainpSetting = new MainPipeSettings()
                {
                    RainDetectorEnabled   = setting.RainSensor.Active,
                    RainyDaysStopper      = setting.RainSensor.SuspendDays,
                    RainDetectorNC        = setting.RainSensor.NC,
                    IsLocalSequenceActive = setting.IrrgationSetting.IsLocalSequenceActive,
                    ProgramsAsQueue       = setting.IrrgationSetting.ProgramsAsQueue,
                    UseMaster             = setting.GeneralSetting.UseMaster
                };

                var days = setting.GeneralSetting.ValidDays;
                if (days != null && days.Days != null)
                {
                    mainpSetting.DSundayState    = days.Days[0].IsEnabled;
                    mainpSetting.DMondayState    = days.Days[1].IsEnabled;
                    mainpSetting.DTuesdayState   = days.Days[2].IsEnabled;
                    mainpSetting.DWednesdayState = days.Days[3].IsEnabled;
                    mainpSetting.DThursdayState  = days.Days[4].IsEnabled;
                    mainpSetting.DFridayState    = days.Days[5].IsEnabled;
                    mainpSetting.DSaturdayState  = days.Days[6].IsEnabled;
                }

                result = _AdminRepository.MainPipeSettings_Update(SN, mainpSetting);

                if (!result)
                {
                    return(result);
                }
            }


            #endregion

            #region Fertilizer

            if (setting.Fertilizer != null)
            {
                var fertSetting = new FertilizerSetting()
                {
                    OutputNumber         = setting.Fertilizer.OutputNumber,
                    TypeID               = (byte)setting.Fertilizer.FertilizerType,
                    ContinuousFert       = setting.Fertilizer.ContinuousFert,
                    PulseSize            = setting.Fertilizer.PulseSize,
                    PulseTime            = setting.Fertilizer.PulseTime,
                    FerlizerFaillureTime = setting.Fertilizer.FerlizerFaillureTime,
                    Leakage              = setting.Fertilizer.Leakage,
                    PulseTypeID          = (byte)setting.Fertilizer.PulseTypeID,
                    FlowTypeID           = (byte)setting.Fertilizer.FlowTypeID,
                    IsEnabled            = setting.Fertilizer.IsEnabled,
                    NominalFlow          = setting.Fertilizer.NominalFlow
                };
                result = _AdminRepository.FertilizerSetting_Update(SN, fertSetting);

                if (!result)
                {
                    return(result);
                }
            }
            #endregion

            #region WaterMeter

            if (setting.WaterMeter != null)
            {
                var wMeterSetting = new WaterMeterSetting()
                {
                    MeterTypeID       = (byte)setting.WaterMeter.MeterType,
                    PulseSize         = setting.WaterMeter.PulseSize,
                    IsEnabled         = setting.WaterMeter.IsEnabled,
                    PulseTypeID       = (byte)setting.WaterMeter.PulseTypeID,
                    FlowTypeID        = (byte)setting.WaterMeter.FlowTypeID,
                    NoWaterPulseDelay = setting.WaterMeter.NoWaterPulseDelay,
                    LeakageLimit      = setting.WaterMeter.LeakageLimit
                };

                result = _AdminRepository.WaterMeterSetting_Update(SN, wMeterSetting);

                if (!result)
                {
                    return(result);
                }
            }
            #endregion

            #region IrrExceptionDates

            if (setting.IrrgationSetting.RestrictedDates != null)
            {
                RestrictedDates[] IrrExceptionDates = setting.IrrgationSetting.RestrictedDates.Select(d => new RestrictedDates()
                {
                    ExceptionDate = d
                }).ToArray();
                result = _AdminRepository.IrrExceptionDates_Update(SN, IrrExceptionDates);

                if (!result)
                {
                    return(result);
                }
            }

            #endregion

            return(result);
        }
예제 #5
0
        public void TestAllSetting()
        {
            var device = CreateDevice();

            #region GeneralSettings
            {
                var setting = new GeneralSettings()
                {
                    IsMetric          = true,
                    LandTypeID        = 1,
                    CustomTimeZoneID  = 150,
                    ModelID           = 1,
                    Name              = "device00",
                    Status            = 0,
                    Flag_AdvancedFert = true
                };

                Assert.IsTrue(Repository.GeneralSettings_Update(device.SN, setting));
                var s_db = Repository.GeneralSettings_Get(device.SN);
                Assert.IsTrue(s_db != null);
                Assert.IsTrue(s_db.IsMetric == setting.IsMetric);
                Assert.IsTrue(s_db.CustomTimeZoneID == setting.CustomTimeZoneID);
                Assert.IsTrue(s_db.LandTypeID == setting.LandTypeID);
                Assert.IsTrue(s_db.Flag_AdvancedFert == setting.Flag_AdvancedFert);
                Assert.IsTrue(s_db.Status == setting.Status);
                Assert.IsTrue(s_db.ModelID == setting.ModelID);
                Assert.IsTrue(s_db.Name == setting.Name);
            }

            #endregion

            #region MainPipeSettings
            {
                var setting = new MainPipeSettings()
                {
                    UseMaster             = false,
                    RainyDaysStopper      = 10,
                    RainDetectorNC        = true,
                    IsLocalSequenceActive = true,
                    ProgramsAsQueue       = false,
                    RainDetectorEnabled   = true,
                    OverlapTime           = 13,
                    DSundayState          = true,
                    DMondayState          = false,
                    DTuesdayState         = true,
                    DWednesdayState       = false,
                    DThursdayState        = true,
                    DFridayState          = false,
                    DSaturdayState        = true,
                    WaterFactor           = 99
                };

                for (int i = 0; i < 2; i++)
                {
                    Assert.IsTrue(Repository.MainPipeSettings_Update(device.SN, setting));
                    var s_db = Repository.MainPipeSettings_Get(device.SN);
                    Assert.IsTrue(s_db != null);
                    Assert.IsTrue(s_db.UseMaster == setting.UseMaster);
                    Assert.IsTrue(s_db.WaterFactor == setting.WaterFactor);
                    Assert.IsTrue(s_db.RainyDaysStopper == setting.RainyDaysStopper);
                    Assert.IsTrue(s_db.RainDetectorNC == setting.RainDetectorNC);
                    Assert.IsTrue(s_db.RainDetectorEnabled == setting.RainDetectorEnabled);
                    Assert.IsTrue(s_db.ProgramsAsQueue == setting.ProgramsAsQueue);
                    Assert.IsTrue(s_db.OverlapTime == setting.OverlapTime);
                    Assert.IsTrue(s_db.IsLocalSequenceActive == setting.IsLocalSequenceActive);
                    Assert.IsTrue(s_db.DSundayState == setting.DSundayState);
                    Assert.IsTrue(s_db.DMondayState == setting.DMondayState);
                    Assert.IsTrue(s_db.DTuesdayState == setting.DTuesdayState);
                    Assert.IsTrue(s_db.DWednesdayState == setting.DWednesdayState);
                    Assert.IsTrue(s_db.DThursdayState == setting.DThursdayState);
                    Assert.IsTrue(s_db.DFridayState == setting.DFridayState);
                    Assert.IsTrue(s_db.DSaturdayState == setting.DSaturdayState);


                    setting = new MainPipeSettings()
                    {
                        UseMaster             = true,
                        RainyDaysStopper      = 11,
                        RainDetectorNC        = false,
                        IsLocalSequenceActive = true,
                        ProgramsAsQueue       = false,
                        RainDetectorEnabled   = true,
                        OverlapTime           = 13,
                        DSundayState          = true,
                        DMondayState          = false,
                        DTuesdayState         = true,
                        DWednesdayState       = false,
                        DThursdayState        = false,
                        DFridayState          = true,
                        DSaturdayState        = false,
                        WaterFactor           = 33
                    };
                }
            }
            #endregion

            #region IrrExceptionDates
            {
                var now = DateTime.Now;

                var setting = new RestrictedDates[]
                {
                    new RestrictedDates {
                        ExceptionDate = now
                    },
                    new RestrictedDates {
                        ExceptionDate = now.AddDays(1)
                    },
                    new RestrictedDates {
                        ExceptionDate = now.AddMonths(1)
                    }
                };
                for (int i = 0; i < 3; i++)
                {
                    Assert.IsTrue(Repository.IrrExceptionDates_Update(device.SN, setting));
                    var s_db = Repository.IrrExceptionDates_Get(device.SN);
                    Assert.IsTrue(s_db != null);
                    Assert.IsTrue(s_db.Length == setting.Length);
                    for (int j = 0; j < s_db.Length; j++)
                    {
                        EqualsDate(s_db[j].ExceptionDate, setting[j].ExceptionDate);
                    }

                    now     = DateTime.Now.AddMonths(i);
                    setting = new RestrictedDates[]
                    {
                        new RestrictedDates {
                            ExceptionDate = now
                        },
                        new RestrictedDates {
                            ExceptionDate = now.AddDays(1)
                        },
                        new RestrictedDates {
                            ExceptionDate = now.AddMonths(1)
                        }
                    };
                }
            }

            #endregion

            #region FertilizerSetting
            {
                var setting = new FertilizerSetting()
                {
                    ContinuousFert       = true,
                    FerlizerFaillureTime = 11,
                    FlowTypeID           = 2,
                    IsEnabled            = true,
                    Leakage      = 33,
                    NominalFlow  = 2,
                    OutputNumber = 1,
                    PulseSize    = 2,
                    PulseTime    = 3,
                    PulseTypeID  = 1,
                    TypeID       = 1
                };

                for (int i = 0; i < 2; i++)
                {
                    Assert.IsTrue(Repository.FertilizerSetting_Update(device.SN, setting));
                    var s_db = Repository.FertilizerSetting_Get(device.SN);
                    Assert.IsTrue(s_db != null);
                    Assert.IsTrue(s_db.ContinuousFert == setting.ContinuousFert);
                    Assert.IsTrue(s_db.FerlizerFaillureTime == setting.FerlizerFaillureTime);
                    Assert.IsTrue(s_db.FlowTypeID == setting.FlowTypeID);
                    Assert.IsTrue(s_db.IsEnabled == setting.IsEnabled);
                    Assert.IsTrue(s_db.Leakage == setting.Leakage);
                    Assert.IsTrue(s_db.NominalFlow == setting.NominalFlow);
                    Assert.IsTrue(s_db.OutputNumber == setting.OutputNumber);
                    Assert.IsTrue(s_db.PulseSize == setting.PulseSize);
                    Assert.IsTrue(s_db.PulseTime == setting.PulseTime);
                    Assert.IsTrue(s_db.PulseTypeID == setting.PulseTypeID);
                    Assert.IsTrue(s_db.TypeID == setting.TypeID);

                    setting = new FertilizerSetting()
                    {
                        ContinuousFert       = false,
                        FerlizerFaillureTime = 12,
                        FlowTypeID           = 1,
                        IsEnabled            = false,
                        Leakage      = 22,
                        NominalFlow  = 3,
                        OutputNumber = 0,
                        PulseSize    = 1,
                        PulseTime    = 2,
                        PulseTypeID  = 0,
                        TypeID       = 2
                    };
                }
            }
            #endregion

            #region WaterMeterSetting
            {
                var setting = new WaterMeterSetting()
                {
                    FlowTypeID = 1,
                    IsEnabled  = true,

                    LeakageLimit      = 1,
                    MeterTypeID       = 0,
                    NoWaterPulseDelay = 11,
                    PulseSize         = 10,
                    PulseTypeID       = 1
                };

                for (int i = 0; i < 2; i++)
                {
                    Assert.IsTrue(Repository.WaterMeterSetting_Update(device.SN, setting));
                    var s_db = Repository.WaterMeterSetting_Get(device.SN);
                    Assert.IsTrue(s_db != null);
                    Assert.IsTrue(s_db.FlowTypeID == setting.FlowTypeID);
                    Assert.IsTrue(s_db.IsEnabled == setting.IsEnabled);
                    Assert.IsTrue(s_db.LeakageLimit == setting.LeakageLimit);
                    Assert.IsTrue(s_db.MeterTypeID == setting.MeterTypeID);
                    Assert.IsTrue(s_db.NoWaterPulseDelay == setting.NoWaterPulseDelay);
                    Assert.IsTrue(s_db.PulseSize == setting.PulseSize);
                    Assert.IsTrue(s_db.PulseTypeID == setting.PulseTypeID);

                    setting = new WaterMeterSetting()
                    {
                        FlowTypeID        = 2,
                        IsEnabled         = false,
                        LeakageLimit      = 11,
                        MeterTypeID       = 1,
                        NoWaterPulseDelay = 22,
                        PulseSize         = 1,
                        PulseTypeID       = 2
                    };
                }
            }
            #endregion
        }