Esempio n. 1
0
        public async Task <IActionResult> Create([Bind("Id,Name,UploadedImage,ImageUrl")] Rice rice)
        {
            var webRoot = Directory.GetCurrentDirectory() + "\\wwwroot\\Images\\Uploads\\";

            if (rice.UploadedImage == null)
            {
                return(View(rice));
            }

            var filename = ContentDispositionHeaderValue
                           .Parse(rice.UploadedImage.ContentDisposition)
                           .FileName
                           .Trim('"');

            filename = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\Images\\Uploads\\" + filename);
            if (Directory.Exists(webRoot))
            {
                using (FileStream fs = System.IO.File.Create(filename))
                {
                    rice.UploadedImage.CopyTo(fs);
                    fs.Flush();
                }
            }
            rice.ImageUrl = "~/Images/Uploads/" + rice.UploadedImage.FileName;

            if (ModelState.IsValid)
            {
                _context.Add(rice);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(rice));
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            //[1] 밥 만들기
            Rice rice = (new Cooking()).MakeRice(); // 스레드 차단: true

            Console.WriteLine($"밥 준비 완료 - {rice.GetHashCode()}");

            //[2] 국 만들기
            Soup soup = (new Cooking()).MakeSoup();

            Console.WriteLine($"국 준비 완료 - {soup.GetHashCode()}");

            //[3] 달걀 만들기
            Egg egg = (new Cooking()).MakeEgg();

            Console.WriteLine($"달걀 준비 완료 - {egg.GetHashCode()}");

            stopwatch.Stop();

            Console.WriteLine($"\n시간: {stopwatch.ElapsedMilliseconds}밀리초");
            Console.WriteLine("동기 방식으로 식사 준비 완료");
        }
Esempio n. 3
0
        private void btnMakeDinner_Click(object sender, EventArgs e)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            //[1] 밥 만들기
            Rice rice = (new Cooking()).MakeRice();

            lblDisplay.Text = $"밥 준비 완료 - {rice.GetHashCode()}";

            //[2] 국 만들기
            Soup soup = (new Cooking()).MakeSoup();

            lblDisplay.Text = $"국 준비 완료 - {soup.GetHashCode()}";

            //[3] 달걀 만들기
            Egg egg = (new Cooking()).MakeEgg();

            lblDisplay.Text = $"달걀 준비 완료 - {egg.GetHashCode()}";

            stopwatch.Stop();
            lblDisplay.Text = $"\n시간: {stopwatch.ElapsedMilliseconds}밀리초";

            lblDisplay.Text = ("동기 방식으로 식사 준비 완료");
        }
Esempio n. 4
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name")] Rice rice)
        {
            if (id != rice.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(rice);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RiceExists(rice.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(rice));
        }
Esempio n. 5
0
        public void Start()
        {
            Rice           rice    = new Rice();
            EatableServant eatable = new EatableServant();

            eatable.Eat(rice);
        }
Esempio n. 6
0
        //基础用法
        static void BasicUsage()
        {
            Console.WriteLine("基础用法");
            FoodAbstract foodAbstract = new Rice();

            Console.WriteLine(foodAbstract.BeginEat());
            foodAbstract = new Moodles();
            Console.WriteLine(foodAbstract.BeginEat());
        }
Esempio n. 7
0
        public Rice OrderRice(string model)
        {
            Rice rice = _factory.CreateRice(model);

            if (rice == null)
            {
                return(null);
            }

            return(rice);
        }
Esempio n. 8
0
 public Taco(IngredientFactory ingredientFactory)
 {
     _poultry     = ingredientFactory.GetPoultry();
     _meat        = ingredientFactory.GetMeat();
     _vegetation  = ingredientFactory.GetVegetation();
     _cheese      = ingredientFactory.GetCheese();
     _guacomole   = ingredientFactory.GetGuacomole();
     _rice        = ingredientFactory.GetRice();
     _beans       = ingredientFactory.GetBeans();
     _creamCheese = ingredientFactory.GetCreamCheese();
     _tomato      = ingredientFactory.GetTomato();
     _chili       = ingredientFactory.GetChili();
 }
Esempio n. 9
0
    // Use this for initialization
    void Start()
    {
        rand = new System.Random();

        indexIcon = rand.Next(0, 12);
        noEffect  = new Effect("No Disease", 0, false);

        purifyEffect = new Effect("Cure", 1, false);

        malaria = new Effect("Malaria", -1, false);

        bilharzia = new Effect("Bilharzia", -2, false);

        effectExp1 = "lose 1 HP every turn";
        effectExp2 = "Cure all disease and +1 HP";
        effectExp3 = "lose 2 HP every turn";

        effectsActive = new ArrayList();
        foods         = new ArrayList();

        birdseed = new BirdSeed("Bird Seed", 1, noEffect, 0);
        oat      = new Oat("Oat", 1, malaria, 1);
        Lettuce             lettuce             = new Lettuce("Lettuce", 3, bilharzia, 2); // lose speed -> speed/2
        Rice                rice                = new Rice("Rice", 1, purifyEffect, 3);
        RottenGrape         rottenGrape         = new RottenGrape("Rotten Grape", -2, malaria, 4);
        PollutedCrackedCorn pollutedCrackedCorn = new PollutedCrackedCorn("Polluted Cracked Corn", -2, malaria, 5);
        Avocado             avocado             = new Avocado("Avocado", -2, malaria, 6);
        Onion               onion               = new Onion("Onion", -2, purifyEffect, 7);
        Nuts                nuts                = new Nuts("Nuts", -2, purifyEffect, 8);
        Chocolate           chocolate           = new Chocolate("Chocolate", -2, purifyEffect, 9);
        Popcorn             popcorn             = new Popcorn("Popcorn", -2, bilharzia, 10);
        Bread               bread               = new Bread("Bread", -2, malaria, 11);



        for (int i = 0; i < 3; i++)
        {
            foods.Add(birdseed);
            foods.Add(oat);
            foods.Add(lettuce);
            foods.Add(rice);
            foods.Add(rottenGrape);
            foods.Add(pollutedCrackedCorn);
            foods.Add(avocado);
            foods.Add(onion);
            foods.Add(nuts);
            foods.Add(chocolate);
            foods.Add(popcorn);
            foods.Add(bread);
        }
    }
Esempio n. 10
0
    //When called
    public void Destroy()
    {
        //Destroy the object
        Destroy(gameObject);

        var t = transform;

        //Create "totalParts" "rice pieces" in random directions and w/ random forces
        for (int i = 0; i < totalParts; i++)
        {
            Rice clone = (Rice)Instantiate(rice, t.position, Quaternion.identity);
            clone.GetComponent <Rigidbody2D>().AddForce(Vector3.right * (Random.Range(-100, 100)));
            clone.GetComponent <Rigidbody2D>().AddForce(Vector3.up * Random.Range(75, 300));
        }
    }
Esempio n. 11
0
    public override void OnBuildingPlaced()
    {
        base.OnBuildingPlaced();

        // Add this rice to a new rice resource field
        Transform newParent = new GameObject("Rice Resource Field").transform;

        newParent.parent = transform.parent;

        ResourceField   field     = newParent.gameObject.AddComponent <ResourceField>();
        List <Resource> resources = new List <Resource>();
        Rice            rice      = GetComponent <Rice>();

        rice.ParentField = field;
        resources.Add(rice);

        field.Set(resources);
    }
Esempio n. 12
0
        public static FoodAbstract FoodFactory(FoodEnum foodEnum)
        {
            FoodAbstract result = null;

            switch (foodEnum)
            {
            case FoodEnum.Moodles:
                result = new Moodles();
                break;

            case FoodEnum.Rice:
                result = new Rice();
                break;

            default:
                break;
            }
            return(result);
        }
Esempio n. 13
0
        public static void Run()
        {
            Beans ingredient1 = new Beans();

            ingredient1.Weight = 0.3;
            Rice ingredient2 = new Rice();

            ingredient2.Weight = 0.25;
            Meat ingredient3 = new Meat();

            ingredient3.Weight = 0.3;
            Person customer = new Person();

            customer.Weight = 80.2;
            customer.Eat(ingredient1);
            customer.Eat(ingredient2);
            customer.Eat(ingredient3);
            System.Console.WriteLine($"Now, the customer weight is {customer.Weight}kg!");
        }
Esempio n. 14
0
        static async Task Main(string[] args)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            Rice rice = await(new Cooking()).MakeRiceAsync();  // 스레드 차단: false

            Console.WriteLine($"밥 준비 완료: {rice.GetHashCode()}");

            Soup soup = await(new Cooking()).MakeSoupAsync();

            Console.WriteLine($"국 준비 완료: {soup.GetHashCode()}");

            Egg egg = await(new Cooking()).MakeEggAsync();

            Console.WriteLine($"달걀 준비 완료: {egg.GetHashCode()}");

            stopwatch.Stop();

            Console.WriteLine($"\n시간: {stopwatch.ElapsedMilliseconds}밀리초");
            Console.WriteLine("비동기 방식으로 식사 준비 완료");
        }
        public Rice CreateRice(string model)
        {
            model = model.ToLower();
            Rice rice = null;

            if (model.Equals("basmati"))
            {
                rice = new Basmati();
            }
            else if (model.Equals("black"))
            {
                rice = new Black();
            }
            else if (model.Equals("brown"))
            {
                rice = new Brown();
            }
            else if (model.Equals("jasmine"))
            {
                rice = new Jasmine();
            }

            return(rice);
        }
Esempio n. 16
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("[?] 어떤 방식으로 실행할까요? (0~4 번호 입력)\n" +
                              "0. 동기\t\t1. await\t2. Task<T>\t3. WhenAll\t4. WhenAny ");
            var number = Convert.ToInt32(Console.ReadLine());

            switch (number)
            {
            case 1:     // 비동기(동기 프로그램을 포함한)
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();

                Egg egg = await(new Cooking()).MakeEggAsync();
                Console.WriteLine($"달걀 재료 준비 완료: {egg.GetHashCode()}");

                Rice rice = await(new Cooking()).MakeRiceAsync();
                Console.WriteLine($"김밥 준비 완료: {rice.GetHashCode()}");

                Soup soup = await(new Cooking()).MakeSoupAsync();
                Console.WriteLine($"국 준비 완료: {soup.GetHashCode()}");

                stopwatch.Stop();

                Console.WriteLine($"\n시간: {stopwatch.ElapsedMilliseconds}");
                Console.WriteLine("비동기 방식으로 식사(김밥) 준비 완료");
            }
            break;

            case 2:     // 비동기(함께 실행)
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();

                // 3개의 Async 메서드가 동시 실행
                Task <Rice> riceTask = (new Cooking()).MakeRiceAsync();
                Task <Soup> soupTask = (new Cooking()).MakeSoupAsync();
                Task <Egg>  eggTask  = (new Cooking()).MakeEggAsync();

                Rice rice = await riceTask;
                Console.WriteLine($"식탁에 밥 준비 완료: {rice.GetHashCode()}");
                Soup soup = await soupTask;
                Console.WriteLine($"식탁에 국 준비 완료: {soup.GetHashCode()}");
                Egg egg = await eggTask;
                Console.WriteLine($"식탁에 달걀 준비 완료: {egg.GetHashCode()}");

                stopwatch.Stop();

                Console.WriteLine($"\n시간: {stopwatch.ElapsedMilliseconds}");
                Console.WriteLine("비동기 방식으로 식사 준비 완료");
            }
            break;

            case 3:     // 비동기(모두 완료되는 시점)
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();

                // 3개의 Async 메서드가 동시 실행
                Task <Rice> riceTask = (new Cooking()).MakeRiceAsync();
                Task <Soup> soupTask = (new Cooking()).MakeSoupAsync();
                Task <Egg>  eggTask  = (new Cooking()).MakeEggAsync();

                // 모든 작업이 다 완료될 때까지 대기
                await Task.WhenAll(riceTask, soupTask, eggTask);

                Console.WriteLine("식탁에 모든 식사 준비 완료");

                stopwatch.Stop();

                Console.WriteLine($"\n시간: {stopwatch.ElapsedMilliseconds}");
                Console.WriteLine("비동기 방식으로 식사 준비 완료");
            }
            break;

            case 4:
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();

                // 3개의 Async 메서드가 동시 실행
                Task <Rice> rTask = (new Cooking()).MakeRiceAsync();
                Task <Soup> sTask = (new Cooking()).MakeSoupAsync();
                Task <Egg>  eTask = (new Cooking()).MakeEggAsync();

                // 하나라도 작업이 끝나면 확인
                var allTasks = new List <Task> {
                    rTask, sTask, eTask
                };
                while (allTasks.Any())         // 작업이 하나라도 있으면 실행
                {
                    Task finished = await Task.WhenAny(allTasks);

                    if (finished == rTask)
                    {
                        Rice rice = await rTask;
                        Console.WriteLine($"밥 준비 완료 - {rice}");
                    }
                    else if (finished == sTask)
                    {
                        Soup soup = await sTask;
                        Console.WriteLine($"국 준비 완료 - {soup}");
                    }
                    else
                    {
                        Egg egg = await eTask;
                        Console.WriteLine($"달걀 준비 완료 - {egg}");
                    }
                    allTasks.Remove(finished);         // 끝난 작업은 리스트에서 제거
                }

                stopwatch.Stop();

                Console.WriteLine(
                    $"\n시간: {stopwatch.ElapsedMilliseconds}");
                Console.WriteLine("비동기 방식으로 식사 준비 완료");
            }
            break;

            default:     // 동기(Sync)
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();

                //[1] 밥 만들기
                Rice rice = (new Cooking()).MakeRice();         // 스레드 차단: true
                Console.WriteLine($"밥 준비 완료 - {rice.GetHashCode()}");

                //[2] 국 만들기
                Soup soup = (new Cooking()).MakeSoup();
                Console.WriteLine($"국 준비 완료 - {soup.GetHashCode()}");

                //[3] 달걀 만들기
                Egg egg = (new Cooking()).MakeEgg();
                Console.WriteLine($"달걀 준비 완료 - {egg.GetHashCode()}");

                stopwatch.Stop();

                Console.WriteLine($"\n시간: {stopwatch.ElapsedMilliseconds}");
                Console.WriteLine("동기 방식으로 식사 준비 완료");
            }
            break;
            }
        }
Esempio n. 17
0
 internal People()
 {
     rice = new Rice();
 }
Esempio n. 18
0
            private void ProduceOneProp()
            {
                Random     r          = new Random((int)Environment.TickCount64);
                XYPosition newPropPos = new XYPosition();

                while (true)
                {
                    newPropPos.x = r.Next(0, gameMap.Rows * Map.Constant.numOfGridPerCell);
                    newPropPos.y = r.Next(0, gameMap.Cols * Map.Constant.numOfGridPerCell);
                    int  cellX = Map.Constant.GridToCellX(newPropPos), cellY = Map.Constant.GridToCellY(newPropPos);
                    bool canLayProp = true;
                    gameMap.ObjListLock.EnterReadLock();
                    try
                    {
                        foreach (GameObject obj in gameMap.ObjList)
                        {
                            if (cellX == Map.Constant.GridToCellX(obj.Position) && cellY == Map.Constant.GridToCellY(obj.Position) && (obj is Wall || obj is BirthPoint))
                            {
                                canLayProp = false;
                                break;
                            }
                        }
                    }
                    finally { gameMap.ObjListLock.ExitReadLock(); }
                    if (canLayProp)
                    {
                        newPropPos = Map.Constant.CellToGrid(cellX, cellY);
                        break;
                    }
                }

                PropType propType = (PropType)r.Next(Prop.MinPropTypeNum, Prop.MaxPropTypeNum + 1);

                Prop?newProp = null;

                switch (propType)
                {
                case PropType.Bike: newProp = new Bike(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Amplifier: newProp = new Amplifier(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.JinKeLa: newProp = new JinKeLa(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Rice: newProp = new Rice(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Shield: newProp = new Shield(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Totem: newProp = new Totem(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Spear: newProp = new Spear(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Dirt: newProp = new Dirt(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Attenuator: newProp = new Attenuator(newPropPos, Map.Constant.unpickedPropRadius); break;

                case PropType.Divider: newProp = new Divider(newPropPos, Map.Constant.unpickedPropRadius); break;
                }
                if (newProp != null)
                {
                    unpickedPropListLock.EnterWriteLock();
                    try { unpickedPropList.AddLast(newProp); }
                    finally { unpickedPropListLock.ExitWriteLock(); }
                    newProp.CanMove = true;
                }
            }
Esempio n. 19
0
 public void Eat(Rice rice)
 {
     Console.WriteLine("Supplier eat rice");
 }
Esempio n. 20
0
        static async Task Main(string[] args)
        {
            // DateTime start = DateTime.Now;

            // Cooking cooking  = new Cooking();

            // // cooking.MakeRice();
            // // cooking.MakeSoup();
            // // cooking.MakeEgg();
            // // System.Console.WriteLine($"Sync Complete: {(DateTime.Now - start).TotalSeconds}");

            // var rice = await cooking.MakeRiceAsync();
            // var soup = await cooking.MakeSoupAsync();
            // var egg = await cooking.MakeEggAsync();
            // System.Console.WriteLine($"Async Complete: {(DateTime.Now - start).TotalSeconds}");

            System.Console.WriteLine($"어떤 방식으로 실행할까요? (0~4 번호 입력\n0. Sync\t1. await\t2. Task<T>\t3. WhenAll\t4. WhenAny");

            var number = Convert.ToInt32(Console.ReadLine());

            switch (number)
            {
            case 1:     // Async(include Sync)
            {
                DateTime start = DateTime.Now;

                Egg egg = await(new Cooking()).MakeEggAsync();
                System.Console.WriteLine($"Complete Egg: {egg.GetHashCode()}");

                Rice rice = await(new Cooking()).MakeRiceAsync();
                System.Console.WriteLine($"Complete Rice: {rice.GetHashCode()}");

                Soup soup = await(new Cooking()).MakeSoupAsync();
                System.Console.WriteLine($"Complete Soup: {soup.GetHashCode()}");

                System.Console.WriteLine($"\nAsync Complete: {(DateTime.Now - start).TotalSeconds}");
            }
            break;

            case 2:     // Async
            {
                DateTime start = DateTime.Now;

                // 3 Async Method Execute At same the time
                Task <Rice> riceTask = (new Cooking()).MakeRiceAsync();
                Task <Soup> soupTask = (new Cooking()).MakeSoupAsync();
                Task <Egg>  eggTask  = (new Cooking()).MakeEggAsync();

                Rice rice = await riceTask;
                System.Console.WriteLine($"Complete Rice: {rice.GetHashCode()}");

                Soup soup = await soupTask;
                System.Console.WriteLine($"Complete Soup: {soup.GetHashCode()}");

                Egg egg = await eggTask;
                System.Console.WriteLine($"Complete Egg: {egg.GetHashCode()}");

                System.Console.WriteLine($"\nAsync Complete: {(DateTime.Now - start).TotalSeconds}");
            }
            break;

            case 3:     // Async -WhenAll
            {
                DateTime start = DateTime.Now;

                // 3 Async Method Execute At same the time
                Task <Rice> raceTask = (new Cooking()).MakeRiceAsync();
                Task <Soup> soupTask = (new Cooking()).MakeSoupAsync();
                Task <Egg>  eggTask  = (new Cooking()).MakeEggAsync();

                await Task.WhenAll(raceTask, soupTask, eggTask);

                System.Console.WriteLine($"\nAsync Complete: {(DateTime.Now - start).TotalSeconds}");
            }
            break;

            case 4:     // Async -WhenAny
            {
                DateTime start = DateTime.Now;

                // 3 Async Method Execute At same the time
                Task <Rice> riceTask = (new Cooking()).MakeRiceAsync();
                Task <Soup> soupTask = (new Cooking()).MakeSoupAsync();
                Task <Egg>  eggTask  = (new Cooking()).MakeEggAsync();

                var allTasks = new List <Task> {
                    riceTask, soupTask, eggTask
                };

                while (allTasks.Any())
                {
                    Task finished = await Task.WhenAny(allTasks);

                    if (finished == riceTask)
                    {
                        Rice rice = await riceTask;
                        System.Console.WriteLine($"Complete Rice: {rice}");
                    }
                    else if (finished == soupTask)
                    {
                        Soup soup = await soupTask;
                        System.Console.WriteLine($"Complete Rice: {soup}");
                    }
                    else if (finished == eggTask)
                    {
                        Egg egg = await eggTask;
                        System.Console.WriteLine($"Complete Rice: {egg}");
                    }
                    allTasks.Remove(finished);
                }

                System.Console.WriteLine($"\nAsync Complete: {(DateTime.Now - start).TotalSeconds}");
            }
            break;

            default:        // Sync
            {
                DateTime start = DateTime.Now;

                Egg egg = (new Cooking()).MakeEgg();
                System.Console.WriteLine($"Complete Egg: {egg.GetHashCode()}");

                Rice rice = (new Cooking()).MakeRice();
                System.Console.WriteLine($"Complete Rice: {rice.GetHashCode()}");

                Soup soup = (new Cooking()).MakeSoup();
                System.Console.WriteLine($"Complete Soup: {soup.GetHashCode()}");

                System.Console.WriteLine($"\nSync Complete: {(DateTime.Now - start).TotalSeconds}");
            }
            break;
            }
        }