Beispiel #1
0
        private void LoadData()
        {
            IsBusy = true;

            ViewModelLocator.CurrentInstance.AbstractTorqueData.LoadHomeData((success, eventMessages, result) =>
            {
                if (success)
                {
                    CarInfo = result;
                    CarInfo.CostCharging = Decimal.Round((ElectricityPrice * CarInfo.TotalCharging) / 100, 2);
                    CarInfo.CostFuel     = Decimal.Round(FuelPrice * CarInfo.TotalFuelUsed, 2);
                    CarInfo.TotalCost    = Decimal.Round(CarInfo.CostFuel + CarInfo.CostCharging, 2);

                    if (CarInfo.TotalKM != 0)
                    {
                        CarInfo.CostPer100KM = Decimal.Round((CarInfo.TotalCost / CarInfo.TotalKM) * 100, 2);
                    }

                    BasicLinesGVM.GraphConsumption(0, "Home$SerieFuelC", CarInfo.DateFuelConsumption, CarInfo.FuelConsumptionList);
                }
                else
                {
                    VoltAnalyzerMessage.Send <string>(MessageConstants.ShowMessageView, eventMessages);
                }

                IsBusy = false;
            }, SelectedFolder);
        }
Beispiel #2
0
        public override void LoadHomeData(LoadHomeDataCallBack a_processResult, string a_directory)
        {
            string s_message = "";

            GetSettingGroupAverageConsumption();

            if (DataLoaded == false)
            {
                s_message = LoadData(a_directory);

                if (string.IsNullOrEmpty(s_message))
                {
                    DataLoaded = true;
                }
            }
            else
            {
                ResetAllProperties();
            }

            if (string.IsNullOrEmpty(s_message))
            {
                VoltAnalyzerMessage.Send <string>(MessageConstants.SetBusyMessage, ManageLanguage.GetLanguageString("Home$ProcessingBusyMessage", ManageLanguage.LanguageSelected));

                AverageConsumptionResponce avr_result = AverrageConsumption();

                a_processResult(true, "", avr_result.ModelToViewModel());
            }
            else
            {
                a_processResult(false, s_message, null);
            }
        }
Beispiel #3
0
        public MessageDisplayVM()
        {
            CloseMessageCommand = new RelayCommand(CloseMessage);

            VoltAnalyzerMessage.Subscribe <string>(this, MessageConstants.ShowMessageView, (string _message) =>
            {
                IsDisplayingMessage = true;
                Message             = _message;
            });
        }
Beispiel #4
0
 private void LoadTorqueData()
 {
     if (string.IsNullOrEmpty(SelectedFolder))
     {
         VoltAnalyzerMessage.Send <string>(MessageConstants.ShowMessageView, ManageLanguage.GetLanguageString("Home$FodlerEmpty", ManageLanguage.LanguageSelected));
     }
     else
     {
         var task = new Task(LoadData);
         task.Start();
     }
 }
Beispiel #5
0
 private void DefaultDirectory()
 {
     try
     {
         ViewModelLocator.CurrentInstance.FileDialogVM.BrowseFolderCommand.Execute(null);
         if (!string.IsNullOrEmpty(ViewModelLocator.CurrentInstance.FileDialogVM.SelectedFolder))
         {
             SelectedFolder = ViewModelLocator.CurrentInstance.FileDialogVM.SelectedFolder;
         }
     }
     catch (Exception ex)
     {
         VoltAnalyzerMessage.Send <string>(MessageConstants.ShowMessageView, "Error during the opening of the selected file: " + ex.Message + " " + ex.InnerException);
     }
 }
Beispiel #6
0
        private static DataTable ReadCSVFile(String filePath)
        {
            DataTable dataTable = new DataTable();

            // Check if file exists.
            if (File.Exists(filePath))
            {
                // Read column headers from file
                CsvReader csv = new CsvReader(File.OpenText(filePath));
                csv.Read();
                csv.ReadHeader();
                csv.Configuration.MissingFieldFound = null;

                dataTable.TableName = filePath.Split('\\')[filePath.Split('\\').Length - 1];

                String tryparse = dataTable.TableName.Replace("trackLog-", "").Replace(".csv", "");
                dataTable.ExtendedProperties.Add("Datetime", DateTime.ParseExact(tryparse, "yyyy-MMM-dd_HH-mm-ss", CultureInfo.InvariantCulture));

                List <string> headers = csv.Context.HeaderRecord.ToList();

                // Read csv into datatable
                foreach (string header in headers)
                {
                    dataTable.Columns.Add(new System.Data.DataColumn(header));
                }

                // Import csv
                while (csv.Read())
                {
                    System.Data.DataRow row = dataTable.NewRow();

                    foreach (System.Data.DataColumn column in dataTable.Columns)
                    {
                        row[column.ColumnName] = csv.GetField(column.DataType, column.ColumnName);
                    }

                    dataTable.Rows.Add(row);
                }

                Trace.Write(amountFile.ToString() + " File " + dataTable.TableName + " loaded into datatable" + Environment.NewLine);
                amountFile += 1;

                VoltAnalyzerMessage.Send <string>(MessageConstants.SetBusyMessage, ManageLanguage.GetLanguageString("Home$BusyMessage", ManageLanguage.LanguageSelected).Replace("XX", amountFile.ToString()));
            }

            return(dataTable);
        }
Beispiel #7
0
        public HomePVM()
        {
            LoadTorqueDataCommand   = new RelayCommand(LoadTorqueData);
            DefaultDirectoryCommand = new RelayCommand(DefaultDirectory);

            CloseCommand    = new RelayCommand <IWindow>(Close);
            ExpandCommand   = new RelayCommand <IWindow>(Expand);
            MinimizeCommand = new RelayCommand <IWindow>(Minimize);
            MoveCommand     = new RelayCommand <IWindow>(Move);

            foreach (string item in LanguageManager.ManageLanguage.GetAllLanguages())
            {
                LanguageList.Add(new LanguageSelectorVM(item));
            }

            SelectedLanguage = LanguageList[1];

            RaisePropertyChanged("LanguageList");

            if (ConfigurationManager.AppSettings.AllKeys.Contains("SelectedFolder"))
            {
                SelectedFolder = ConfigurationManager.AppSettings.GetValues("SelectedFolder")[0].ToString();
            }

            if (ConfigurationManager.AppSettings.AllKeys.Contains("FuelPrice"))
            {
                FuelPrice = decimal.Parse(ConfigurationManager.AppSettings.GetValues("FuelPrice")[0].ToString(), CultureInfo.InvariantCulture);
            }

            if (ConfigurationManager.AppSettings.AllKeys.Contains("ElectricityPrice"))
            {
                ElectricityPrice = decimal.Parse(ConfigurationManager.AppSettings.GetValues("ElectricityPrice")[0].ToString(), CultureInfo.InvariantCulture);
            }

            VoltAnalyzerMessage.Subscribe <string>(this, MessageConstants.SetBusyMessage, (string Message) =>
            {
                WaitMessage = Message;
            });

            VoltAnalyzerMessage.Subscribe <string>(this, MessageConstants.ChangeGraph, (string a_type) =>
            {
                switch (a_type)
                {
                case "FuelC":
                    BasicLinesGVM.GraphConsumption(0, "Home$SerieFuelC", CarInfo.DateFuelConsumption, CarInfo.FuelConsumptionList);
                    break;

                case "EVC":
                    BasicLinesGVM.GraphConsumption(8, "Home$SerieEVC", CarInfo.DateEVConsumption, CarInfo.EVConsumptionList);
                    break;

                default:
                    break;
                }
            });

            GraphListGVM.Add(new GraphListVM()
            {
                ID = "FuelC", Name = "Fuel consumption"
            });
            GraphListGVM.Add(new GraphListVM()
            {
                ID = "EVC", Name = "EV consumption"
            });
        }
Beispiel #8
0
 private void ChangeGraph(string a_type)
 {
     VoltAnalyzerMessage.Send <string>(MessageConstants.ChangeGraph, a_type);
 }