Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        // 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;
        }
Exemplo n.º 4
0
        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);
                }
            }
        }
Exemplo n.º 5
0
 public abstract WeatherReply Get(PlaceEnum place);
Exemplo n.º 6
0
 public override WeatherReply Get(PlaceEnum place)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 7
0
        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();
        }
Exemplo n.º 8
0
 public TravellCard(PlaceEnum placeFrom, PlaceEnum placeTo)
 {
     _placeFrom = placeFrom;
     _placeTo   = placeTo;
 }
Exemplo n.º 9
0
 public TravellCard(PlaceEnum placeFrom)
 {
     _placeFrom = placeFrom;
 }
Exemplo n.º 10
0
 public WeatherQuery(WeatherServiceEnum service, PlaceEnum place)
     : this()
 {
     WeatherService = service;
     Place = place;
 }