Exemple #1
0
        /// <summary>
        /// ファイル読込
        /// </summary>
        public override async void Read()
        {
            Drugs = new ObservableCollection <Drug>();

            await Task.Run(() =>
            {
                if (Element != null)
                {
                    foreach (var element in Element.Elements(_ElementName))
                    {
                        var drug = new Drug();

                        drug.CreateDateTime = GetAttribute(element, nameof(Drug.CreateDateTime), drug.CreateDateTime);
                        drug.Name           = GetValue(element, nameof(Drug.Name), drug.Name);

                        var child             = element.Element(nameof(Drug.Breakfast));
                        drug.Breakfast.IsDrug = GetValue(child, nameof(Timing.IsDrug), drug.Breakfast.IsDrug);
                        drug.Breakfast.Kind   = GetValue(child, nameof(Timing.Kind), drug.Breakfast.Kind);
                        drug.Breakfast.Volume = GetValue(child, nameof(Timing.Volume), drug.Breakfast.Volume);

                        child             = element.Element(nameof(Drug.Lunch));
                        drug.Lunch.IsDrug = GetValue(child, nameof(Timing.IsDrug), drug.Lunch.IsDrug);
                        drug.Lunch.Kind   = GetValue(child, nameof(Timing.Kind), drug.Lunch.Kind);
                        drug.Lunch.Volume = GetValue(child, nameof(Timing.Volume), drug.Lunch.Volume);

                        child = element.Element(nameof(Drug.Dinner));
                        drug.Dinner.IsDrug = GetValue(child, nameof(Timing.IsDrug), drug.Dinner.IsDrug);
                        drug.Dinner.Kind   = GetValue(child, nameof(Timing.Kind), drug.Dinner.Kind);
                        drug.Dinner.Volume = GetValue(child, nameof(Timing.Volume), drug.Dinner.Volume);

                        child             = element.Element(nameof(Drug.Sleep));
                        drug.Sleep.IsDrug = GetValue(child, nameof(Timing.IsDrug), drug.Sleep.IsDrug);
                        drug.Sleep.Kind   = GetValue(child, nameof(Timing.Kind), drug.Sleep.Kind);
                        drug.Sleep.Volume = GetValue(child, nameof(Timing.Volume), drug.Sleep.Volume);

                        child = element.Element(nameof(Drug.ToBeTaken));
                        drug.ToBeTaken.IsDrug = GetValue(child, nameof(Timing.IsDrug), drug.ToBeTaken.IsDrug);
                        drug.ToBeTaken.Kind   = GetValue(child, nameof(Timing.Kind), drug.ToBeTaken.Kind);
                        drug.ToBeTaken.Volume = GetValue(child, nameof(Timing.Volume), drug.ToBeTaken.Volume);

                        child = element.Element(nameof(Drug.Appoint));
                        drug.Appoint.IsDrug = GetValue(child, nameof(Timing.IsDrug), drug.Appoint.IsDrug);
                        drug.Appoint.Kind   = GetValue(child, nameof(Timing.Kind), drug.Appoint.Kind);
                        drug.Appoint.Volume = GetValue(child, nameof(Timing.Volume), drug.Appoint.Volume);
                        drug.AppointTime    = GetAttribute(child, nameof(Drug.AppointTime), drug.AppointTime);

                        child = element.Element(nameof(Drug.HourEach));
                        drug.HourEach.IsDrug  = GetValue(child, nameof(Timing.IsDrug), drug.HourEach.IsDrug);
                        drug.HourEach.Kind    = GetValue(child, nameof(Timing.Kind), drug.HourEach.Kind);
                        drug.HourEach.Volume  = GetValue(child, nameof(Timing.Volume), drug.HourEach.Volume);
                        drug.HourEachTime     = GetAttribute(child, nameof(Drug.HourEachTime), drug.HourEachTime);
                        drug.HourEachNextTime = GetAttribute(child, nameof(Drug.HourEachNextTime), drug.HourEachNextTime);

                        drug.TotalVolume             = GetValue(element, nameof(Drug.TotalVolume), drug.TotalVolume);
                        drug.PrescriptionAlarmVolume = GetValue(element, nameof(Drug.PrescriptionAlarmVolume), drug.PrescriptionAlarmVolume);
                        drug.Remarks = GetValue(element, nameof(Drug.Remarks), drug.Remarks);

                        drug.MakeDrugTiming();

                        Drugs.Add(drug);
                    }
                }
            });
        }