private void btnDeleteNation_Click(object sender, RoutedEventArgs e)
        {
            ClearOutput();
            int index = dgNation.SelectedIndex;

            if (index > -1)
            {
                Database.Nation n = eventkalenderViewModel.Nations.ElementAt(index);
                eventkalenderViewModel.DeleteNation(n.Id);
            }
        }
 public void AddNation(string name)
 {
     try
     {
         Database.Nation temp = new Database.Nation(name);
         Nations.Add(temp);
         eventkalenderDAL.AddNation(temp);
         //NotifyPropertyChanged("Nations");
     }
     catch (Exception ex)
     {
         Status = ExceptionHandler.GetErrorMessage(ex);
     }
 }
        private void cmbEvents_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            int index = cmbEvents.SelectedIndex;

            if (index == -1)
            {
                dgFindEvents.ItemsSource = eventkalenderViewModel.Events;
            }
            else if (index > -1)
            {
                Database.Nation n = eventkalenderViewModel.Nations.ElementAt(index);
                dgFindEvents.ItemsSource = n.Events;
            }
        }
        private void btnRegisterEvent_Click(object sender, RoutedEventArgs e)
        {
            ClearOutput();
            int index = cmbNation.SelectedIndex;

            if (txtEventName.Text == "")
            {
                WriteOutput("Ange ett namn till evenemanget.");
            }
            else if (!eventkalenderViewModel.Nations.Any(temp => temp.Name.Equals(Convert.ToString(cmbNation.Text))) || cmbNation.SelectedIndex == -1)
            {
                WriteOutput("Du måste välja en befintlig nation.");
            }
            else if (dtpickEndDate.Text == "" || dtpickStartDate.Text == "")
            {
                WriteOutput("Ange start- och slutdatum.");
            }
            else if (cmbStartTime.SelectedIndex == -1 || cmbEndTime.SelectedIndex == -1)
            {
                WriteOutput("Ange start- och sluttid.");
                cmbStartTime.Text = "";
                cmbEndTime.Text   = "";
            }
            else if (txtSummary.Text == "")
            {
                WriteOutput("Ange en beskrivning till evenemanget.");
            }
            if (Utility.IsNotEmpty(txtEventName.Text, cmbNation.Text, dtpickStartDate.Text, cmbStartTime.Text, dtpickEndDate.Text, cmbEndTime.Text, txtSummary.Text))
            {
                DateTime dateStart = Utility.ToDate(dtpickStartDate.Text, cmbStartTime.Text);
                DateTime dateEnd   = Utility.ToDate(dtpickEndDate.Text, cmbEndTime.Text);

                if (dateEnd.CompareTo(dateStart) < 0)
                {
                    WriteOutput("Ditt evenemang kan inte sluta före det börjar.");
                }
                else
                {
                    Database.Nation n = eventkalenderViewModel.Nations.ElementAt(index);
                    eventkalenderViewModel.AddEvent(txtEventName.Text, txtSummary.Text, dateStart, dateEnd, n.Id);

                    dtpickStartDate.Text       = "";
                    dtpickEndDate.Text         = "";
                    cmbStartTime.SelectedIndex = -1;
                    cmbEndTime.SelectedIndex   = -1;
                    txtEventName.Text          = "";
                    txtSummary.Text            = "";
                }
            }
        }
        public void DeleteNation(int id)
        {
            try
            {
                Database.Nation temp = new Database.Nation();
                temp.Id = id;

                Nations.Remove(Nations.FirstOrDefault(n => n.Id == temp.Id));
                eventkalenderDAL.DeleteNation(temp);
                Events = new ObservableCollection <Database.Event>(eventkalenderDAL.GetEvents());
                //NotifyPropertyChanged("Nations");
            }
            catch (Exception ex)
            {
                Status = ExceptionHandler.GetErrorMessage(ex);
            }
        }
        public void AddEvent(string name, string summary, DateTime startTime, DateTime endTime, int nationId)
        {
            try
            {
                Database.Event e = new Database.Event(name, summary, startTime, endTime, nationId);

                Events.Add(e);
                Database.Nation n1 = Nations.First(temp => temp.Id == nationId);
                n1.Events.Add(e);

                eventkalenderDAL.AddEvent(e);

                NotifyPropertyChanged("Nations");
            }
            catch (Exception ex)
            {
                Status = ExceptionHandler.GetErrorMessage(ex);
            }
        }