Ejemplo n.º 1
0
        private void settingsButton_Click(object sender, EventArgs e)
        {
            SettingsForm sf = new SettingsForm()
            {
                WeatherLocation     = weatherLocation,
                UseNotificationIcon = useNotificationIcon,
                Hourly                 = hourlyForecast,
                DescriptiveWind        = descriptiveWind,
                ImperialUnits          = imperialUnits,
                StartHidden            = startHidden,
                SymbolWindowIcon       = symbolAsWindowIcon,
                SymbolNotificationIcon = symbolAsNotificationIcon,
                Language               = lang
            };

            if (sf.ShowDialog(this) == DialogResult.OK)
            {
                bool needRefresh = false;
                bool needSync    = false;

                if (weatherLocation != (weatherLocation = sf.WeatherLocation) ||
                    lang != (lang = sf.Language) ||
                    hourlyForecast != (hourlyForecast = sf.Hourly) ||
                    imperialUnits != (imperialUnits = sf.ImperialUnits))
                {
                    needRefresh = true;
                }
                if (useNotificationIcon != (useNotificationIcon = sf.UseNotificationIcon) ||
                    descriptiveWind != (descriptiveWind = sf.DescriptiveWind) ||
                    symbolAsWindowIcon != (symbolAsWindowIcon = sf.SymbolWindowIcon) ||
                    symbolAsNotificationIcon != (symbolAsNotificationIcon = sf.SymbolNotificationIcon))
                {
                    needSync = true;
                }

                // we don't need to raise anything with this
                startHidden = sf.StartHidden;

                Properties.Settings.Default.WeatherLocation     = weatherLocation;
                Properties.Settings.Default.UseNotificationIcon = useNotificationIcon;
                Properties.Settings.Default.Hourly                 = hourlyForecast;
                Properties.Settings.Default.DescriptiveWind        = descriptiveWind;
                Properties.Settings.Default.ImperialUnits          = imperialUnits;
                Properties.Settings.Default.StartHidden            = startHidden;
                Properties.Settings.Default.SymbolWindowIcon       = symbolAsWindowIcon;
                Properties.Settings.Default.SymbolNotificationIcon = symbolAsNotificationIcon;
                Properties.Settings.Default.Language               = lang;
                Properties.Settings.Default.Save();
                if (needRefresh)
                {
                    RefreshData();
                    needSync = true;
                }
                if (needSync)
                {
                    SyncState();
                }
            }
        }
        public async Task <IActionResult> SpecificService(int serviceId)
        {
            int langId = await HttpContext.GetCurrentLanguageIdAsync(db, "lang_id");

            ServiceLanguage serviceLanguage = await db.ServiceLanguages
                                              .Where(sl => sl.LanguageId == langId && sl.ServiceId == serviceId)
                                              .Include(sl => sl.Service)
                                              .ThenInclude(sl => sl.Photos)
                                              .FirstOrDefaultAsync();

            return(View(serviceLanguage));
        }
Ejemplo n.º 3
0
 public string UrlSubsection(ServiceLanguage lang)
 {
     if (lang == ServiceLanguage.NorwegianNynorsk)
     {
         return(Regex.Match(XmlUrlNynorsk, querySlicingRegex).Groups[1].Value);
     }
     else if (lang == ServiceLanguage.NorwegianBokmal)
     {
         return(Regex.Match(XmlUrlBokmal, querySlicingRegex).Groups[1].Value);
     }
     else
     {
         return(Regex.Match(XmlUrl, querySlicingRegex).Groups[1].Value);
     }
 }
Ejemplo n.º 4
0
 static string GetPrefix(ServiceLanguage lang)
 {
     if (lang == ServiceLanguage.NorwegianNynorsk)
     {
         return("stad");
     }
     else if (lang == ServiceLanguage.NorwegianBokmal)
     {
         return("sted");
     }
     else
     {
         return("place");
     }
 }
Ejemplo n.º 5
0
        public async Task <IActionResult> Add(ServiceModel model)
        {
            if (model.Names != null &&
                model.Photos != null &&
                model.Texts != null &&
                model.ShortDescs != null)
            {
                Service service = new Service();
                await db.Services.AddAsync(service);

                List <Language> languages = await db.Languages.ToListAsync();

                for (int i = 0; i < languages.Count; i++)
                {
                    if (model.Names[i] != null && model.ShortDescs[i] != null && model.Texts[i] != null)
                    {
                        ServiceLanguage serviceLanguage = new ServiceLanguage()
                        {
                            Name       = model.Names[i],
                            ShortDesc  = model.ShortDescs[i],
                            Text       = model.Texts[i],
                            ServiceId  = service.Id,
                            LanguageId = languages[i].Id
                        };
                        await db.ServiceLanguages.AddAsync(serviceLanguage);
                    }
                }

                foreach (string file in model.Photos)
                {
                    ServicePhoto servicePhoto = new ServicePhoto()
                    {
                        ServiceId = service.Id,
                        Path      = file
                    };
                    await db.ServicePhotos.AddAsync(servicePhoto);
                }
                await db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(RedirectToAction(nameof(Add)));
            }
        }
Ejemplo n.º 6
0
 public static ServiceLanguageModel ToModel(ServiceLanguage entity)
 {
     if (entity == null)
     {
         return(null);
     }
     return(new ServiceLanguageModel()
     {
         Id = entity.Id,
         Description = entity.Description,
         ImageAlt = entity.ImageAlt,
         ImageSrc = entity.ImageSrc,
         Language = entity.Language,
         ServiceId = entity.ServiceId,
         TitleTagForSEO = entity.TitleTagForSEO,
         TitleText = entity.TitleText
     });
 }
Ejemplo n.º 7
0
        Icon icon; // used for both notify + taskbar overlay

        public MainForm()
        {
            InitializeComponent();
            fetcher                  = new Fetcher();
            weatherLocation          = Properties.Settings.Default.WeatherLocation;
            useNotificationIcon      = Properties.Settings.Default.UseNotificationIcon;
            hourlyForecast           = Properties.Settings.Default.Hourly;
            descriptiveWind          = Properties.Settings.Default.DescriptiveWind;
            imperialUnits            = Properties.Settings.Default.ImperialUnits;
            symbolAsNotificationIcon = Properties.Settings.Default.SymbolNotificationIcon;
            symbolAsWindowIcon       = Properties.Settings.Default.SymbolWindowIcon;
            startHidden              = Properties.Settings.Default.StartHidden;
            lang = Properties.Settings.Default.Language;

            if (startHidden && !useNotificationIcon)
            {
                WindowState = FormWindowState.Minimized;
            }
        }
Ejemplo n.º 8
0
 static string GetXmlName(bool hourly, ServiceLanguage lang)
 {
     if (hourly && lang == ServiceLanguage.English)
     {
         return(hourlyForecastEn);
     }
     else if (!hourly && lang == ServiceLanguage.English)
     {
         return(normalForecastEn);
     }
     else if (hourly && lang < ServiceLanguage.English)
     {
         return(hourlyForecastNo);
     }
     else
     {
         return(normalForecastNo);
     }
 }
        /// <summary>
        /// Retrieves friendly names for the languages available for text translation and speech synthesis.
        /// </summary>
        /// <param name="serviceType">The service type for which to retrieve supported languages.</param>
        /// <param name="language">The language used to localize the language names. If the parameter is set to <strong>null</strong>, the language specified in the <seealso cref="Language"/> property will be used.</param>
        /// <returns>An array of <see cref="ServiceLanguage"/> containing the language codes and names supported for translation by <strong>Microsoft Translator Service</strong>.</returns>
        /// <exception cref="ArgumentNullException">The <see cref="SubscriptionKey"/> property hasn't been set.</exception>
        /// <exception cref="TranslatorServiceException">The provided <see cref="SubscriptionKey"/> isn't valid or has expired.</exception>
        /// <remarks><para>This method performs a non-blocking request for language name.</para>
        /// <para>For more information, go to https://docs.microsofttranslator.com/text-translate.html#!/default/post_GetLanguageNames.
        /// </para>
        /// </remarks>
        /// <seealso cref="ServiceType"/>
        /// <see cref="GetLanguageCodesAsync(ServiceType)"/>
        public async Task <IEnumerable <ServiceLanguage> > GetLanguageNamesAsync(ServiceType serviceType = ServiceType.Translation, string language = null)
        {
            var languageCodes = await GetLanguageCodesAsync(serviceType);

            if (string.IsNullOrWhiteSpace(language))
            {
                language = Language;
            }

            var uri     = string.Format(LanguageNamesUri, language);
            var request = new HttpRequestMessage(HttpMethod.Post, uri);

            XNamespace ns         = ArrayNamespace;
            var        xmlRequest = new XDocument(new XElement(ns + ArrayOfStringXmlElement,
                                                               from lang in languageCodes
                                                               select new XElement(ns + StringXmlElement, lang)
                                                               ));

            request.Content = new StringContent(xmlRequest.ToString());
            request.Content.Headers.ContentType = new MediaTypeHeaderValue(XmlContentType);

            var content    = await(await client.SendAsync(request).ConfigureAwait(false)).Content.ReadAsStringAsync().ConfigureAwait(false);
            var xmlContent = XDocument.Parse(content);

            var languageNames = xmlContent.Root.Elements(ns + StringXmlElement).Select(s => s.Value);

            // Creates the response object.
            var languages = new ServiceLanguage[languageCodes.Count()];

            for (int i = 0; i < languages.Length; i++)
            {
                languages[i] = new ServiceLanguage(languageCodes.ElementAt(i), languageNames.ElementAt(i));
            }

            return(languages);
        }
Ejemplo n.º 10
0
 public ServiceLanguageWrapper(ServiceLanguage lang)
 {
     Language = lang;
 }
Ejemplo n.º 11
0
        public async Task <IActionResult> Edit(ServiceModel model, int serviceId)
        {
            if (!model.Texts.IsNull() && !model.Names.IsNull() && !model.ShortDescs.IsNull())
            {
                Service service = await db.Services.Where(s => s.Id == serviceId).Include(s => s.Photos).FirstOrDefaultAsync();

                List <Language> languages = await db.Languages.ToListAsync();


                for (int i = 0; i < languages.Count; i++)
                {
                    ServiceLanguage serviceLanguage = await db.ServiceLanguages
                                                      .Where(sl => sl.ServiceId == serviceId &&
                                                             sl.LanguageId == languages[i].Id)
                                                      .FirstOrDefaultAsync();

                    if (serviceLanguage == null)
                    {
                        serviceLanguage = new ServiceLanguage()
                        {
                            ServiceId  = serviceId,
                            LanguageId = languages[i].Id,
                            Name       = model.Names[i],
                            Text       = model.Texts[i],
                            ShortDesc  = model.ShortDescs[i]
                        };

                        await db.ServiceLanguages.AddAsync(serviceLanguage);
                    }
                    else
                    {
                        serviceLanguage.Name      = model.Names[i];
                        serviceLanguage.ShortDesc = model.ShortDescs[i];
                        serviceLanguage.Text      = model.Texts[i];
                    }
                }

                if (!model.DeletePhotos.IsNull() && !model.DeletePhotos.IsNullOrEmpty())
                {
                    foreach (ServicePhoto sp in service.Photos)
                    {
                        if (model.DeletePhotos.Contains(sp.Path))
                        {
                            string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Uploads", "Services", sp.Path);
                            if (System.IO.File.Exists(path))
                            {
                                System.IO.File.Delete(path);
                            }
                            ServicePhoto servicePhoto = await db.ServicePhotos.Where(s => s.ServiceId == serviceId && s.Path == sp.Path).FirstOrDefaultAsync();

                            if (servicePhoto != null)
                            {
                                db.ServicePhotos.Remove(servicePhoto);
                            }
                        }
                    }
                }

                if (!model.Photos.IsNull() && !model.Photos.IsNullOrEmpty())
                {
                    foreach (string file in model.Photos)
                    {
                        ServicePhoto servicePhoto = new ServicePhoto()
                        {
                            ServiceId = service.Id,
                            Path      = file
                        };
                        await db.ServicePhotos.AddAsync(servicePhoto);
                    }
                }


                await db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            return(RedirectToAction(nameof(Edit)));
        }
 private void CheckTranslation(string source, ServiceLanguage target)
 {
     target.Language.Code.Should().Be(source);
 }
Ejemplo n.º 13
0
 public Fetcher()
 {
     wc = new CookieAwareWebClient();
     wc.Headers.Add(HttpRequestHeader.UserAgent, ua);
     Language = ServiceLanguage.English;
 }