private async void InitializeAirportTranslationList(string airportCode)
        {
            AirportTranslationList = new ObservableCollection <AirportTranslation>();
            AirportTranslationList.CollectionChanged += AirportTranslationList_CollectionChanged;
            airportTransDataGrid.ItemsSource          = AirportTranslationList;

            DataList atList = string.IsNullOrWhiteSpace(airportCode) ? new DataList() : await dbCon.GetDataList("AirportTranslation", new DataRow("AirportCode", airportCode), "ORDER BY LanguageCode");

            if (atList.HasData && atList.Error == ERROR.NoError)
            {
                AirportTranslation at = null;
                List <string>      exceptedLanguageCodes = new List <string>();
                foreach (DataRow row in atList)
                {
                    at = new AirportTranslation();
                    at.AirportTranslationId = (Guid)row.Get("AirportTranslationId");
                    at.AirportName          = row.Get("AirportName").ToString();
                    at.LanguageCode         = row.Get("LanguageCode").ToString();
                    at.LanguageName         = (await dbCon.GetDataRow("LanguageReference",
                                                                      new DataRow("LanguageCode", row.Get("LanguageCode")))).Get("LanguageName").ToString();
                    at.IsEnabled = false;
                    AirportTranslationList.Add(at);
                    exceptedLanguageCodes.Add(row.Get("LanguageCode").ToString());
                }
                at = new AirportTranslation();
                foreach (DataRow row in await LoadLanguageList(exceptedLanguageCodes.ToArray()))
                {
                    at.LanguageList.Add(row.Get("LanguageCode").ToString());
                }
                if (at.LanguageList.Count > 0)
                {
                    AirportTranslationList.Add(at);
                }
            }
            else
            {
                AirportTranslation at           = new AirportTranslation();
                DataList           LanguageList = await LoadLanguageList();

                if (LanguageList.Count == 0)
                {
                    MessageBox.Show(Messages.ERROR_LANGUAGE_REF_NOT_FOUND, Captions.ERROR);
                    Close();
                }
                foreach (DataRow row in LanguageList)
                {
                    at.LanguageList.Add(row.Get("LanguageCode").ToString());
                }
                if (at.LanguageList.Count > 0)
                {
                    AirportTranslationList.Add(at);
                }
            }
        }
Exemplo n.º 2
0
        private async Task InitializeRotation()
        {
            DisplayMessage("ENG");
            rotateTimer           = new Timer(ShowText.RotateInSeconds * 1000);
            rotateTimer.AutoReset = false;
            rotateTimer.Elapsed  += RotateTimer_Elapsed;
            rotateTimer.Start();
            DataList textTranslationList = await dbCon.GetDataList("TextTranslation", new DataRow("TextTemplateId", ShowText.TextTemplateId));

            if (textTranslationList.HasData && textTranslationList.Error == ERROR.NoError)
            {
                foreach (DataRow textTranslationRow in textTranslationList)
                {
                    TextTranslation textTranslation = new TextTranslation();
                    PropertyInfo[]  properties      = textTranslation.GetType().GetProperties();
                    foreach (PropertyInfo property in properties)
                    {
                        if (textTranslationRow.ContainKey(property.Name))
                        {
                            property.SetValue(textTranslation, textTranslationRow.Get(property.Name));
                        }
                    }
                    TextTranslationList.Add(textTranslation);
                }
                foreach (TextTranslation textTranslation in TextTranslationList)
                {
                    DataRow originAirportTranslation = await dbCon.GetDataRow("AirportTranslation",
                                                                              new DataRow("AirportCode", ShowText.OriginCode, "LanguageCode", textTranslation.LanguageCode));

                    if (originAirportTranslation.HasData && originAirportTranslation.Error == ERROR.NoError)
                    {
                        AirportTranslation airportTranslation = new AirportTranslation();
                        airportTranslation = AddDataToProperty(typeof(AirportTranslation), originAirportTranslation) as AirportTranslation;
                        OriginAirportTranslationList.Add(airportTranslation);
                    }

                    DataRow destinationAirportTranslation = await dbCon.GetDataRow("AirportTranslation",
                                                                                   new DataRow("AirportCode", ShowText.DestinationCode, "LanguageCode", textTranslation.LanguageCode));

                    if (destinationAirportTranslation.HasData && destinationAirportTranslation.Error == ERROR.NoError)
                    {
                        AirportTranslation airportTranslation = new AirportTranslation();
                        airportTranslation = AddDataToProperty(typeof(AirportTranslation), destinationAirportTranslation) as AirportTranslation;
                        DestinationAirportTranslationList.Add(airportTranslation);
                    }
                }
                indexOfTranslation++;
            }
        }
        private async void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBox langComboBox = sender as ComboBox;

            if (langComboBox != null)
            {
                if (airportTransDataGrid.SelectedItem != null)
                {
                    int indexOfItemInAirportTranslationList = AirportTranslationList.IndexOf(airportTransDataGrid.SelectedItem as AirportTranslation);
                    if (AirportTranslationList[indexOfItemInAirportTranslationList].IsEnabled)
                    {
                        DataRow languageDetail = await dbCon.GetDataRow("LanguageReference",
                                                                        new DataRow("LanguageCode", langComboBox.SelectedItem.ToString()));

                        if (languageDetail.HasData && languageDetail.Error == ERROR.NoError)
                        {
                            AirportTranslationList[indexOfItemInAirportTranslationList].LanguageName = languageDetail.Get("LanguageName").ToString();
                            AirportTranslationList[indexOfItemInAirportTranslationList].IsEnabled    = false;

                            airportTransDataGrid.CurrentCell = new DataGridCellInfo(airportTransDataGrid.SelectedItem, airportTransDataGrid.Columns[2]);
                            airportTransDataGrid.BeginEdit();

                            List <string> exceptCodes = new List <string>();
                            exceptCodes.Add((sender as ComboBox).SelectedItem.ToString());
                            for (int i = 0; i < AirportTranslationList.Count; i++)
                            {
                                if (AirportTranslationList[i].LanguageCode != null && !string.IsNullOrWhiteSpace(AirportTranslationList[i].LanguageCode))
                                {
                                    exceptCodes.Add(AirportTranslationList[i].LanguageCode);
                                }
                            }
                            DataList availableLanguage = await LoadLanguageList(exceptCodes.ToArray());

                            if (availableLanguage.Count > 0)
                            {
                                AirportTranslation at = new AirportTranslation();
                                foreach (DataRow row in availableLanguage)
                                {
                                    at.LanguageList.Add(row.Get("LanguageCode").ToString());
                                }
                                AirportTranslationList.Add(at);
                            }
                        }
                    }
                }
            }
        }