private async void LoadingModelComplete(object sender, RunWorkerCompletedEventArgs e)
        {
            if (workingConn)
            {
                SurgeryTimeM.ExceptionsButton.Add(NewButton);
                Count = SurgeryTimeM.Exceptions.Count;
                foreach (SurgeryTimeM.Exception item in SurgeryTimeM.Exceptions)
                {
                    SurgeryTimeM.ExceptionsButton.Insert(SurgeryTimeM.ExceptionsButton.Count - 1,
                                                         new ExceptedTime(item, Valid, DeleteItem, Between, (DateTime)SurgeryTimeM.UserRegistrateDate, false));
                }

                DataContext();
                NoUserAttention();

                foreach (SurgeryTimeM.Exception row in SurgeryTimeM.Exceptions)
                {
                    row.AcceptChanges();
                }
                SurgeryTimeM.AcceptChanges();

                await Utilities.Loading.Hide();
            }
            else
            {
                ConnectionMessage();
            }
        }
        private void ExecuteComplete(object sender, RunWorkerCompletedEventArgs e)
        {
            if (workingConn)
            {
                SurgeryTimeM.Erased.Clear();
                foreach (object item in SurgeryTimeM.ExceptionsButton)
                {
                    if (item.GetType() == typeof(ExceptedTime))
                    {
                        (item as ExceptedTime).Enabler = false;
                    }
                }
                foreach (SurgeryTimeM.Exception row in SurgeryTimeM.Exceptions)
                {
                    row.AcceptChanges();
                }
                SurgeryTimeM.AcceptChanges();
                Count = SurgeryTimeM.Exceptions.Count;

                dialog         = new Dialog(false, "Módosítások mentése", async() => await Utilities.Loading.Hide());
                dialog.content = new TextBlock("A módosítások mentése sikeresen megtörtént");
                dialog.Start();
            }
            else
            {
                ConnectionMessage();
            }
        }
 protected internal SurgeryTimeVM(Action SaveButtonValid, Action DataContext)
 {
     this.SaveButtonValid = SaveButtonValid;
     this.DataContext     = DataContext;
     SurgeryTimeM         = new SurgeryTimeM();
     NewButton            = new NewButton(NewItem);
     Loading                     = new BackgroundWorker();
     Loading.DoWork             += LoadingModel;
     Loading.RunWorkerCompleted += LoadingModelComplete;
 }
        private async void LoadingModel(object sender, DoWorkEventArgs e)
        {
            try
            {
                using (me = new MedicalModel(ConfigurationManager.Connect()))
                {
                    await me.Database.Connection.OpenAsync();

                    SurgeryTimeM.UserRegistrateDate = me.accountdata.Where(a => a.IdAD == GlobalVM.GlobalM.AccountID).Single().RegistrateTimeAD;

                    for (int i = 1; i <= 7; i++)
                    {
                        usersschedule item = me.usersschedule.Where(u => u.UserDataIdUS == GlobalVM.GlobalM.UserID && u.DayOfWeekUS == i).OrderByDescending(u => u.WhenCreateUS).FirstOrDefault();
                        if (item != null)
                        {
                            SurgeryTimeM.GetType().GetProperty(DayOfWeek(item.DayOfWeekUS)).SetValue(SurgeryTimeM, true);
                            SurgeryTimeM.GetType().GetProperty("Start" + DayOfWeek(item.DayOfWeekUS)).SetValue(SurgeryTimeM, item.StartTimeUS);
                            SurgeryTimeM.GetType().GetProperty("Finish" + DayOfWeek(item.DayOfWeekUS)).SetValue(SurgeryTimeM, item.FinishTimeUS);
                            SetActual(i, item.StartTimeUS, item.FinishTimeUS);
                        }
                    }

                    foreach (SurgeryTimeM.Exception item in me.exceptedschedule.Where(ex => ex.UserDataIdES == GlobalVM.GlobalM.UserID).ToList().
                             Select(ex => new SurgeryTimeM.Exception()
                    {
                        DBId = ex.IdES,
                        Included = ex.IncludedES,
                        StartDateTime = ex.StartDateES,
                        FinishDateTime = ex.FinishDateED,
                        Valid = true
                    }))
                    {
                        SurgeryTimeM.Exceptions.Add(item);
                    }

                    CollectionChange();
                }
                workingConn = true;
            }
            catch (Exception ex)
            {
                Log.WriteException(ex);
                workingConn = false;
            }
        }
 private bool Changed(int DaysOfWeek)
 {
     if (Actual.Any(a => a.DaysOfWeek == DaysOfWeek))
     {
         return(Actual.Where(a => a.DaysOfWeek == DaysOfWeek).Single().Start != (DateTime)SurgeryTimeM.GetType().GetProperty("Start" + DayOfWeek(DaysOfWeek)).GetValue(SurgeryTimeM) ||
                Actual.Where(a => a.DaysOfWeek == DaysOfWeek).Single().End != (DateTime)SurgeryTimeM.GetType().GetProperty("Finish" + DayOfWeek(DaysOfWeek)).GetValue(SurgeryTimeM));
     }
     else
     {
         return(true);
     }
 }