Exemple #1
0
        private void ButtonAddPanel_Click(object sender, RoutedEventArgs e)
        {
            if (Validate(textBoxName) && Validate(textBoxMaxPower))
            {
                double maxPower = 0;
                bool   uspelo   = false;
                uspelo = double.TryParse(textBoxMaxPower.Text, out maxPower);
                if (uspelo && maxPower > 0)
                {
                    SolarPanelViewModel.solarPanels.Add(new SolarPanelModel(textBoxName.Text, maxPower, (SHES.sunPower * maxPower) / 100));

                    using (dbSHESEntities entity = new dbSHESEntities())
                    {
                        SolarPanelTable spmt = new SolarPanelTable()
                        {
                            Name         = textBoxName.Text,
                            MaxPower     = maxPower,
                            CurrentPower = 0
                        };
                        entity.SolarPanelTables.Add(spmt);
                        entity.SaveChanges();
                    }
                }
                else
                {
                    MessageBox.Show("Incorrect input", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            else
            {
                MessageBox.Show("Incorrect input", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Exemple #2
0
 private void BtnAdd_Click(object sender, RoutedEventArgs e)
 {
     if (Validate(textBoxName) && Validate(textBoxConsumption))
     {
         double result = 0;
         bool   uspelo = false;
         uspelo = double.TryParse(textBoxConsumption.Text, out result);
         if (uspelo && result >= 0)
         {
             ConsumerViewModel.consumers.Add(new ConsumerModel(textBoxName.Text, Double.Parse(textBoxConsumption.Text)));
             using (dbSHESEntities entity = new dbSHESEntities())
             {
                 ConsumerTable cmt = new ConsumerTable()
                 {
                     Name        = textBoxName.Text,
                     Consumption = Double.Parse(textBoxConsumption.Text),
                     State       = Enums.ConsumerEnum.OFF.ToString()
                 };
                 entity.ConsumerTables.Add(cmt);
                 entity.SaveChanges();
             }
         }
         else
         {
             MessageBox.Show("Incorrect input", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
     else
     {
         MessageBox.Show("Incorrect input", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
Exemple #3
0
 public void Execute()
 {
     ConsumerViewModel.consumers.Remove(consumerToDelete);
     using (dbSHESEntities entity = new dbSHESEntities())
     {
         ConsumerTable cmt = entity.ConsumerTables.Where(x => x.Name == consumerToDelete.Name).SingleOrDefault();
         if (cmt != null)
         {
             entity.ConsumerTables.Remove(cmt);
             entity.SaveChanges();
         }
     };
 }
Exemple #4
0
 public void Execute()
 {
     SolarPanelViewModel.solarPanels.Remove(panelToDelete);
     using (dbSHESEntities entity = new dbSHESEntities())
     {
         SolarPanelTable spmt = entity.SolarPanelTables.Where(x => x.Name == panelToDelete.Name).SingleOrDefault();
         if (spmt != null)
         {
             entity.SolarPanelTables.Remove(spmt);
             entity.SaveChanges();
         }
     };
 }
Exemple #5
0
        public void Execute()
        {
            lock (BatteryViewModel.Batteries)
            {
                BatteryViewModel.Batteries.Remove(batteryToDelete); //program ne dodje dovde

                using (dbSHESEntities entity = new dbSHESEntities())
                {
                    BatteryTable bmt = entity.BatteryTables.Where(x => x.Name == batteryToDelete.Name).SingleOrDefault();
                    if (bmt != null)
                    {
                        entity.BatteryTables.Remove(bmt);
                        entity.SaveChanges();
                    }
                };
            }
        }
Exemple #6
0
        private void ButtonAdd_Click(object sender, RoutedEventArgs e)
        {
            if (Validate(textBoxName) && Validate(textBoxMaxPower) && Validate(textBoxCapacity))
            {
                bool   p = false, c = false;
                double pp = 0, cc = 0;
                p = double.TryParse(textBoxMaxPower.Text, out pp);
                c = double.TryParse(textBoxCapacity.Text, out cc);
                if (p && c && pp >= 0 && cc >= 0)
                {
                    lock (BatteryViewModel.Batteries)
                    {
                        BatteryViewModel.Batteries.Add(new BatteryModel(textBoxName.Text, Double.Parse(textBoxMaxPower.Text), Double.Parse(textBoxCapacity.Text), 0));

                        using (dbSHESEntities entity = new dbSHESEntities())
                        {
                            BatteryTable bmt = new BatteryTable()
                            {
                                Name            = textBoxName.Text,
                                MaxPower        = Double.Parse(textBoxMaxPower.Text),
                                Capacity        = Double.Parse(textBoxCapacity.Text),
                                CurrentCapacity = 0,
                                CapacityMin     = 0,
                                State           = Enums.BatteryEnum.IDLE.ToString()
                            };
                            entity.BatteryTables.Add(bmt);
                            entity.SaveChanges();
                        }

                        BatteryViewModel.Refresh();
                    }
                }
                else
                {
                    MessageBox.Show("Incorrect input", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            else
            {
                MessageBox.Show("Incorrect input", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Exemple #7
0
        public void CalculateChartProduction()
        {
            int    date            = DateTime.Now.Date.Day;
            double panels          = 0;
            double product         = 0;
            double cons            = 0;
            double batteryPositive = 0;
            double batteryNegative = 0;
            double exhangePositive = 0;
            double exhangeNegative = 0;
            double consumers       = 0;
            double price           = 0;
            double temp            = 0;
            double cnt             = 0;

            new Thread(() =>
            {
                while (true)
                {
                    if (temp == 60)
                    {
                        temp = 0;
                        cnt++;
                    }
                    else
                    {
                        temp += ClockModel.Time.Minute;
                    }
                    if (cnt == 23)
                    {
                        cnt  = 0;
                        temp = 0;
                        using (dbSHESEntities entity = new dbSHESEntities())
                        {
                            ChartTable ct = new ChartTable()
                            {
                                Date               = date.ToString(),
                                SolarPanel         = price,
                                BaterryProduction  = batteryPositive,
                                BatteryConsumption = batteryNegative,
                                ExchangePositive   = exhangePositive,
                                ExchangeNegative   = exhangeNegative,
                                Consumer           = consumers,
                                Price              = price
                            };
                            entity.ChartTables.Add(ct);
                            entity.SaveChanges();
                        }
                        date++;
                    }
                    panels          += SolarPanelViewModel.SolarPanelProduction();
                    product          = SolarPanelViewModel.SolarPanelProduction() + BatteryViewModel.BatteryProduction();
                    cons             = ConsumerViewModel.ConsumerConsumption() + BatteryViewModel.BatteryConsumption() + eVehicleChargerViewModel.VehicleConsumption();
                    exhangePositive += product;
                    exhangeNegative += cons;
                    batteryPositive += BatteryViewModel.BatteryProduction();
                    batteryNegative += BatteryViewModel.BatteryConsumption();
                    consumers       += ConsumerViewModel.ConsumerConsumption();
                    price            = price + (product - cons) * 0.2;
                    Thread.Sleep(1000);
                }
            }).Start();
        }