Beispiel #1
0
        /// <summary>
        /// Initialises a new instance of the <see cref="UnitViewModel"/> class.
        /// </summary>
        /// <param name="individualUnitIoController">Unit IO manager</param>
        /// <param name="className">name of the parent class.</param>
        public UnitViewModel(
            Func <IUnitViewModel, string, bool> saveAction,
            FirstExampleManager firstExamples,
            string className,
            IndividualUnitFileContents rawData,
            bool isFirst,
            bool isLast,
            string imagePath,
            string alphaIdentifier)
            : base(rawData, firstExamples)
        {
            this.saveAction    = saveAction;
            this.firstExamples = firstExamples;

            this.OpenWindowCmd   = new CommonCommand(this.OpenWindow, () => true);
            this.PreviousUnitCmd = new CommonCommand(this.PreviousUnit, this.PreviousUnitAvailable);
            this.NextUnitCmd     = new CommonCommand(this.NextUnit, this.NextUnitAvailable);
            this.UpdateUnitCmd   = new CommonCommand(this.UpdateUnit, this.UpdateCmdAvailable);
            this.RefreshUnitCmd  = new CommonCommand(this.RefreshUnit, () => true);
            this.SaveUnitCmd     = new CommonCommand(this.SaveUnit, () => true);
            this.CloseWindowCmd  = new CommonCommand(this.CloseWindow, () => true);

            this.FirstUnit         = isFirst;
            this.LastUnit          = isLast;
            this.SubClassImagePath = imagePath;
            this.AlphaIdentifier   = alphaIdentifier;
            this.className         = className;

            this.CompleteUpdate();
        }
Beispiel #2
0
        /// <summary>
        /// Convert from a <see cref="IJourneyDetailsType"/> to a <see cref="IJourneyViewModel"/>.
        /// </summary>
        /// <param name="input"><see cref="IJourneyDetailsType"/> to convert</param>
        /// <param name="firstExamples">first examples manager</param>
        /// <param name="parentNumber">parent unit id</param>
        /// <returns>converted <see cref="IJourneyViewModel"/></returns>
        public static IJourneyViewModel ToJourneyViewModel(
            IJourneyDetailsType input,
            FirstExampleManager firstExamples,
            string parentNumber = "")
        {
            string unitOne   = input.Units.Count > 0 ? input.Units[0] : string.Empty;
            string unitTwo   = input.Units.Count > 1 ? input.Units[1] : string.Empty;
            string unitThree = input.Units.Count > 2 ? input.Units[2] : string.Empty;
            string unitFour  = input.Units.Count > 3 ? input.Units[3] : string.Empty;

            JourneyViewModel viewModel =
                new JourneyViewModel(
                    firstExamples,
                    parentNumber,
                    input.JnyId.JnyNumber,
                    input.From,
                    input.To,
                    input.Via,
                    input.JnyId.Date,
                    input.Distance,
                    unitOne,
                    unitTwo,
                    unitThree,
                    unitFour);

            viewModel.CalculateStates();

            return(viewModel);
        }
Beispiel #3
0
        /// <summary>
        /// Creates a new instance of this form.
        /// </summary>
        /// <param name="mainForm">pare11nt form</param>
        public InputFormViewModel(FirstExampleManager firstExamples)
        {
            //this.mainFactory = mainFactory;

            currentYear = DateTime.Now.Year.ToString();
            this.date   = DateTime.Now;

            this.firstExamples = firstExamples;
            firstExamples.LoadAnnualList(currentYear);

            this.PreviousDayCmd = new CommonCommand(this.PreviousDay);
            this.NextDayCmd     = new CommonCommand(this.NextDay);
            this.AddJnyCmd      = new CommonCommand(this.AddNewJny, this.VclePropertiesValid);
            this.SaveCmd        = new CommonCommand(this.SaveDay, this.CanSave);
            this.CloseCmd       = new CommonCommand(this.CloseWindow);

            this.JnyList = new ObservableCollection <IJourneyViewModel>();

            this.InitialiseInputForm();

            firstVehicle  = string.Empty;
            secondVehicle = string.Empty;
            thirdVehicle  = string.Empty;
            fourthVehicle = string.Empty;

            this.SetupDays();
        }
Beispiel #4
0
        /// <date>12/08/2018</date>
        /// <summary>
        /// Initialises a new instance of the <see cref="VehicleDetailsViewModel"/> class.
        /// </summary>
        /// <param name="rawData"> raw data, read from the file.</param>
        public VehicleDetailsViewModel(
            IndividualUnitFileContents rawData,
            FirstExampleManager firstExamples)
        {
            this.UnitNumber      = rawData.UnitNumber;
            this.FormerNumbers   = new VehicleNumberTypeViewModel();
            this.m_lastCheckDate = rawData.LastCheckDate;
            this.FormerNumbers   = rawData.FormerNumbers;
            this.Notes           = rawData.Notes;

            foreach (IJourneyDetailsType jny in rawData.Journeys)
            {
                IJourneyViewModel journey =
                    JourneyFactory.ToJourneyViewModel(
                        jny,
                        firstExamples,
                        this.UnitNumber);

                this.AddJourney(journey);
            }

            this.origMilage = UnitDistance;

            for (int index = 0; index < this.ServiceTypeList.Count; ++index)
            {
                if (this.ServiceTypeList[index] == rawData.InService)
                {
                    this.serviceIndex = index;
                    break;
                }
            }
        }
Beispiel #5
0
        public MainWindow()
        {
            InitializeComponent();

            Console.Write("create Log");
            Logger.SetInitialInstance("ShapLog");

            //DailyIOController dailyIoController = new DailyIOController();

            //IDailyInputFactory dailyInputFactory =
            //  new DailyInputFactory
            //  (dailyIoController);

            UnitsIOController    unitsIoController    = new UnitsIOController();
            UnitsXmlIOController unitsXmlIoController =
                new UnitsXmlIOController(
                    unitsIoController);
            //IndividualUnitIOController individualUnitIoController =
            //  new IndividualUnitIOController();
            FirstExampleManager firstExamples =
                new FirstExampleManager();

            this.DataContext =
                new MainWindowViewModel(
                    unitsIoController,
                    unitsXmlIoController,
                    firstExamples);
        }
Beispiel #6
0
        public static ObservableCollection <SubClassViewModel> CreateSubClasses(
            FirstExampleManager firstExamples,
            ObservableCollection <SubClassDataTypeViewModel> modelSubClasses,
            ClassFunctionalViewModel parent)
        {
            Random r = new Random();
            ObservableCollection <SubClassViewModel> subClasses =
                new ObservableCollection <SubClassViewModel>();

            foreach (SubClassDataTypeViewModel modelSubClass in modelSubClasses)
            {
                ObservableCollection <IUnitViewModel> units =
                    new ObservableCollection <IUnitViewModel>();

                for (int index = 0; index < modelSubClass.VehicleNumbersList.Count; ++index)
                {
                    // Read raw data from the file and used to create a new unit.
                    IndividualUnitFileContents unitRaw =
                        IndividualUnitIOController.ReadIndividualUnitFile(
                            parent.ClassId,
                            modelSubClass.VehicleNumbersList[index].VehicleNumber.ToString());

                    if (unitRaw == null)
                    {
                        Logger.Instance.WriteLog($"Failed to read unit from file, data missing: {modelSubClass.VehicleNumbersList[index].VehicleNumber}");
                    }
                    else
                    {
                        int imageIndex = r.Next(0, modelSubClass.SubClassImageList.Count);

                        IUnitViewModel newUnit =
                            new UnitViewModel(
                                IndividualUnitIOController.WriteIndividualUnitFile,
                                firstExamples,
                                parent.ClassId,
                                unitRaw,
                                index == 0,
                                index == modelSubClass.VehicleNumbersList.Count - 1,
                                modelSubClass.GetImagePath(imageIndex),
                                parent.ClassData.AlphaIdentifier);

                        units.Add(newUnit);
                    }
                }

                SubClassViewModel newSubClass =
                    new SubClassViewModel(
                        parent.ClassData.AlphaIdentifier,
                        units);

                subClasses.Add(newSubClass);
            }

            return(subClasses);
        }
Beispiel #7
0
 /// <summary>
 /// Initialises a new instance of the <see cref="IndexItemViewModel"/> class.
 /// </summary>
 /// <param name="unitsIoController">units IO controller</param>
 /// <param name="unitsXmlIoController">units XML IO controller</param>
 /// <param name="individualUnitIoController">individual Unit IO controller</param>
 /// <param name="name">item name</param>
 public IndexItemViewModel(
     UnitsIOController unitsIoController,
     UnitsXmlIOController unitsXmlIoController,
     FirstExampleManager firstExamples,
     string name)
 {
     this.unitsIoController    = unitsIoController;
     this.unitsXmlIoController = unitsXmlIoController;
     this.firstExamples        = firstExamples;
     this.indexName            = name;
     this.inConfigurationMode  = false;
     this.OpenWindowCmd        = new CommonCommand(this.ShowClassWindow);
 }
        /// ---------- ---------- ---------- ---------- ---------- ----------
        /// <name>ClassFrontPageForm</name>
        /// <date>29/12/12</date>
        /// <summary>
        ///   create a new instance of this class
        /// </summary>
        /// <param name="unitsIoController">units IO controller</param>
        /// <param name="unitsXmlIoController">Units XML IO Controller</param>
        /// <param name="individualUnitIoController">Individual Unit IO Controller</param>
        /// <param name="classId">class id</param>
        /// ---------- ---------- ---------- ---------- ---------- ----------
        public ClassFunctionalViewModel(
            UnitsIOController unitsIoController,
            UnitsXmlIOController unitsXmlIoController,
            FirstExampleManager firstExamples,
            string classId)
            : base(new ObservableCollection <string>())
        {
            this.classId       = classId;
            this.firstExamples = firstExamples;

            this.ClassIndexes = new ObservableCollection <SubClassViewModel>();

            if (!unitsXmlIoController.DoesFileExist(classId))
            {
                Logger.Instance.WriteLog($"ClassFunctionalViewModel: Aborted load: {classId} does not exist");
                this.classData = new ClassDataTypeViewModel(classId);
                return;
            }

            this.RefreshAll =
                new CommonCommand(
                    this.RefreshAllUnits,
                    () => true);

            ClassDetails classFile =
                unitsXmlIoController.Read(
                    classId);

            this.classData =
                new ClassDataTypeViewModel(
                    classFile);

            if (this.classData == null)
            {
                Logger.Instance.WriteLog($"ClassFunctionalViewModel: Aborted load: {classId} does not exist");
                return;
            }

            this.classData.InitaliseSubClassIndex();

            this.SubClasses = this.classData.SubClassNumbers;
            if (this.SubClasses.Count > 0)
            {
                this.SubClassIndex = 0;
            }

            this.PropertyChanged += UpdateProperties;

            this.LoadUnits();
        }
Beispiel #9
0
        //private IndividualUnitIOController individualUnitIoController;

        /// <summary>
        ///   Creates a new instance of the class index form
        /// </summary>
        /// <param name="mainForm">Main form</param>
        /// <param name="unitsIoController">units IO Controller</param>
        public ClassIndexViewModel(
            UnitsIOController unitsIoController,
            UnitsXmlIOController unitsXmlIoController,
            FirstExampleManager firstExamples)
        {
            this.unitsIoController    = unitsIoController;
            this.unitsXmlIoController = unitsXmlIoController;
            //this.individualUnitIoController = individualUnitIoController;
            this.firstExamples = firstExamples;

            this.ItemsGroup          = new ObservableCollection <ClassIndexGroupViewModel>();
            this.inConfigurationMode = false;

            this.AddControls();
        }
Beispiel #10
0
 /// <summary>
 /// Calculate the location state
 /// </summary>
 /// <param name="location">location to check</param>
 /// <param name="id">journey id</param>
 /// <param name="firstExamples">first example manager</param>
 /// <returns>current location state</returns>
 private ComponentState CalculateLocationState(
     string location,
     IJnyId id,
     FirstExampleManager firstExamples)
 {
     if (firstExamples.IsCopLocation(location, id, LocalListType.complete))
     {
         return(ComponentState.Cop);
     }
     else if (firstExamples.IsCopLocation(location, id, LocalListType.annual))
     {
         return(ComponentState.CopYear);
     }
     else
     {
         return(ComponentState.None);
     }
 }
Beispiel #11
0
        /// <summary>
        /// Initialises a new instance of the <see cref="ConfigViewModel"/> class.
        /// </summary>
        /// <param name="groupsAndClassesIoController">IO controller</param>
        public ConfigViewModel(
            IGroupsAndClassesIOController groupsAndClassesIoController,
            FirstExampleManager firstExamples)
        {
            this.groupsAndClassesIoController = groupsAndClassesIoController;
            this.firstExamples = firstExamples;
            this.PopulateYearCollection();
            this.PopulateOldNumbersAvailable();

            if (this.YearsCollection.Count > 0)
            {
                this.yearsIndex = this.YearsCollection.Count - 1;
            }

            this.CloseCmd                 = new CommonCommand(this.CloseWindow);
            this.RefreshYearCmd           = new CommonCommand(this.RefreshYear);
            this.RefreshAllCmd            = new CommonCommand(this.RefreshAll);
            this.ConfigClsCmd             = new CommonCommand(this.ConfigCls);
            this.ConfigStnCmd             = new CommonCommand(this.ConfigStn);
            this.UpdatePreviousIdCountCmd = new CommonCommand(this.UpdatePreviousIdCount);
        }
Beispiel #12
0
        /// <summary>
        /// Initialises a new instance of the <see cref="MainWindowViewModel"/> class.
        /// </summary>
        /// <param name="unitsIoController"><
        /// Unit input output controller
        /// /param>
        /// <param name="unitsXmlIoController">
        /// Unit (xml) input output controller
        /// </param>
        /// <param name="firstExamples">
        /// First examples manager
        /// </param>
        public MainWindowViewModel(
            UnitsIOController unitsIoController,
            UnitsXmlIOController unitsXmlIoController,
            FirstExampleManager firstExamples)
        {
            this.unitsIoController            = unitsIoController;
            this.unitsXmlIoController         = unitsXmlIoController;
            this.firstExamples                = firstExamples;
            this.groupsAndClassesIoController = new GroupsAndClassesIOController();

            AddEditJnyDetailsCommand = new CommonCommand(this.ShowAddEditJnyDetailsWindow);
            AnalysisCommand          = new CommonCommand(this.ShowAnalysisWindow);
            ConfigurationCommand     = new CommonCommand(this.ShowConfigurationWindow);
            ExitCommand           = new CommonCommand(this.ExitProgram);
            OpenLogCommand        = new CommonCommand(this.ShowLog);
            OpenLogFolderCommand  = new CommonCommand(this.ShowLogFolder);
            ShowClassIndexCommand = new CommonCommand(this.ShowClassIndexWindow);
            ShowJnyDetailsCommand = new CommonCommand(this.ShowJnyDetailsWindow);
            ShowInputDataCommand  = new CommonCommand(this.ShowInputWindow);

            this.inputWindow = null;
        }
Beispiel #13
0
        /// <summary>
        /// Initialises a new instance of the <see cref="JourneyViewModel"/> class.
        /// </summary>
        /// <param name="modelJourney"></param>
        /// <param name="firstExamples"></param>
        public JourneyViewModel(
            FirstExampleManager firstExamples,
            string parentUnit,
            string journeyNumber,
            string from,
            string to,
            string route,
            DateTime date,
            MilesChains distance,
            string unitOne,
            string unitTwo   = "",
            string unitThree = "",
            string unitFour  = "")
        {
            this.firstExamples = firstExamples;
            this.parentUnit    = parentUnit;

            this.JnyId =
                new JnyId(
                    date,
                    journeyNumber);
            this.From           = from;
            this.To             = to;
            this.Route          = route;
            this.Distance       = distance;
            this.UnitOne        = unitOne;
            this.UnitTwo        = unitTwo;
            this.UnitThree      = unitThree;
            this.UnitFour       = unitFour;
            this.FromState      = ComponentState.Unknown;
            this.ToState        = ComponentState.Unknown;
            this.UnitOneState   = ComponentState.Unknown;
            this.UnitTwoState   = ComponentState.Unknown;
            this.UnitThreeState = ComponentState.Unknown;
            this.UnitFourState  = ComponentState.Unknown;
        }
Beispiel #14
0
        /// <summary>
        /// Calculate the unit state
        /// </summary>
        /// <param name="unit">unit to check</param>
        /// <param name="id">journey id</param>
        /// <param name="firstExamples">first example manager</param>
        /// <param name="parent">
        /// Used where this journey is set against a specific unit. This is the id of that unit
        /// </param>
        /// <returns>current unit state</returns>
        private ComponentState CalculateUnitState(
            string unit,
            IJnyId id,
            FirstExampleManager firstExamples,
            string parent)
        {
            if (string.Compare(unit, parent) == 0)
            {
                return(ComponentState.CurrentUnit);
            }

            if (firstExamples.IsCopNumber(unit, id, LocalListType.complete))
            {
                return(ComponentState.Cop);
            }
            else if (firstExamples.IsCopNumber(unit, id, LocalListType.annual))
            {
                return(ComponentState.CopYear);
            }
            else
            {
                return(ComponentState.None);
            }
        }