/// <summary> /// Возвращает список катрточек, в случайно остортированном порядке /// </summary> /// <param name="placeFrom">Место отправления</param> /// <param name="placeTo">Место назначения</param> /// <param name="cnt">Количество посещаемых мест</param> /// <returns></returns> public static List <TravellCard> ShuffleCards(PlaceEnum placeFrom, PlaceEnum placeTo, int cnt) { Random rnd = new Random(); int ind = 0; List <TravellCard> cardList = new List <TravellCard>(); cardList.Add(new TravellCard(placeFrom)); for (int i = 0; i < cnt; i++) { bool validInd = false; while (!validInd) { ind = rnd.Next(placeList.Count); validInd = !cardList.Any(c => (int)c.PlaceFrom == ind || ind == (int)placeTo); } cardList[i].PlaceTo = placeList[ind]; cardList.Add(new TravellCard(placeList[ind])); } cardList[cnt].PlaceTo = placeTo; return(cardList.OrderBy(d => rnd.Next()).ToList()); }
public void OpenFile(string myFile, PlaceEnum where) { Context myContext = Android.App.Application.Context; var place = myContext.FilesDir.Path; switch (where) { case PlaceEnum.FILES: place = myContext.FilesDir.Path; break; case PlaceEnum.CACHE: place = myContext.CacheDir.Path; break; case PlaceEnum.OUTSIDE: place = Environment.ExternalStorageDirectory.AbsoluteFile + "/Examples"; break; } var file = new File(place, myFile); Debug.WriteLine("path to file: " + place); Uri path = FileProvider.GetUriForFile(myContext, myContext.PackageName + ".fileprovider", file); Debug.WriteLine("path to read: " + path); var intent = new Intent(Intent.ActionView); intent.AddFlags(ActivityFlags.GrantReadUriPermission); // grant read permission to all apps available to open our file IList <ResolveInfo> resolveList = myContext.PackageManager.QueryIntentActivities(intent, PackageInfoFlags.MatchDefaultOnly); foreach (ResolveInfo resolveInfo in resolveList) { var packageName = resolveInfo.ActivityInfo.PackageName; myContext.GrantUriPermission(packageName, path, ActivityFlags.GrantReadUriPermission); } intent.SetDataAndType(path, MimeTypesMap.GetMimeType(myFile)); intent.AddFlags(ActivityFlags.NoHistory); intent.AddFlags(ActivityFlags.ClearWhenTaskReset | ActivityFlags.NewTask); try { myContext.StartActivity(intent); } catch (Exception e) { Debug.WriteLine("Error: " + e); } }
// TODO переделать на общий алгоритм public override WeatherReply Get(PlaceEnum place) { var query = new WeatherQuery(WeatherServiceEnum.Wunderground, place); var uri = String.Format(UriPattern, Config.Wunderground_ApiKey, Config.Wunderground_Places_Codes[place] ); var responseStr = HttpHelper.Get(new Uri(uri)); var weather = parser.Parse(responseStr); var reply = new WeatherReply(query, weather, DateTime.Now); return reply; }
public void SaveFile(string file, PlaceEnum where) { Context myContext = Application.Context; AssetManager assets = myContext.Assets; var place = myContext.FilesDir.Path; switch (where) { case PlaceEnum.FILES: place = myContext.FilesDir.Path; break; case PlaceEnum.CACHE: place = myContext.CacheDir.Path; break; case PlaceEnum.OUTSIDE: place = Environment.ExternalStorageDirectory.AbsoluteFile + "/Examples"; var folder = new Java.IO.File(place); if (!folder.Exists()) { Files.CreateDirectory(folder.ToPath()); } break; } var path = Path.Combine(place, file); Debug.WriteLine("path to store: " + path); using (var streamReader = new StreamReader(assets.Open("Examples/" + file))) { using (var memoryStream = new MemoryStream()) { streamReader.BaseStream.CopyTo(memoryStream); byte[] bytes = memoryStream.ToArray(); File.WriteAllBytes(path, bytes); } } }
public abstract WeatherReply Get(PlaceEnum place);
public override WeatherReply Get(PlaceEnum place) { throw new NotImplementedException(); }
static void Main(string[] args) { bool validInput = false; PlaceEnum placeFrom = 0; PlaceEnum placeTo = 0; int countPoints = 0; placeList = PlaceEnum.GetValues(typeof(PlaceEnum)).Cast <PlaceEnum>().ToList(); List <TravellCard> cardsList; Console.WriteLine("===== Добро пожаловать в \"Увлекательное путешествие по столицам\" ======"); Console.WriteLine("Перечень досупных стран:"); foreach (var place in placeList) { Console.WriteLine("{0} - {1}", (int)place, (PlaceEnum)place); } while (!validInput) { Console.WriteLine("\nВыберите место отправления (номер солицы из списка выше): "); validInput = PlaceEnum.TryParse(Console.ReadLine(), out placeFrom); validInput = validInput && (placeFrom <= placeList.Max() && placeFrom >= 0); if (!validInput) { Console.WriteLine("Внимание! Вводимое значение должно быть числом и находитья в диапазоне от {0} до {1}", (int)placeList.Min(), (int)placeList.Max()); } else { Console.WriteLine("Откуда: {0}", (PlaceEnum)placeFrom); } } validInput = false; while (!validInput) { Console.WriteLine("\nВыберите место назначения (номер солицы из списка выше): "); validInput = PlaceEnum.TryParse(Console.ReadLine(), out placeTo); validInput = validInput && (placeTo >= placeList.Min() && placeTo <= placeList.Max()); if (!validInput) { Console.WriteLine("Внимание! Вводимое значение должно быть числом и находитья в диапазоне от {0} до {1}", (int)placeList.Min(), (int)placeList.Max()); } else { Console.WriteLine("Куда: {0}", (PlaceEnum)placeTo); } } validInput = false; while (!validInput) { Console.WriteLine("\nКоличество мест, которое Вы желаете посетить дополнительно: "); validInput = int.TryParse(Console.ReadLine(), out countPoints); validInput = validInput && (countPoints <= (int)placeList.Count() - 2 && countPoints >= 1); if (!validInput) { Console.WriteLine("Внимание! Вводимое значение должно быть числом и находитья в диапазоне от {0} до {1}", 1, (int)placeList.Count() - 2); } } if (placeTo == placeFrom) { Console.WriteLine("\nПохоже, Вы не хотите путешествовать...:("); Console.ReadLine(); return; } cardsList = ShuffleCards((PlaceEnum)placeFrom, (PlaceEnum)placeTo, countPoints); Console.WriteLine("Набор сгенерированных карточек:"); foreach (var c in cardsList) { Console.WriteLine("\t {0} -----> \t{1} ", c.PlaceFrom, c.PlaceTo); } cardsList = GetFullTrip(cardsList); Console.WriteLine("Ваше путешествие:"); foreach (var c in cardsList) { Console.WriteLine("\t {0} -----> \t{1} ", c.PlaceFrom, c.PlaceTo); } Console.ReadLine(); }
public TravellCard(PlaceEnum placeFrom, PlaceEnum placeTo) { _placeFrom = placeFrom; _placeTo = placeTo; }
public TravellCard(PlaceEnum placeFrom) { _placeFrom = placeFrom; }
public WeatherQuery(WeatherServiceEnum service, PlaceEnum place) : this() { WeatherService = service; Place = place; }