コード例 #1
0
        // PUT: api/Hobbit/5
        public Hobbit Put(long id, Hobbit hobbit)
        {
            long hobbitId;

            if (!_hobbitDataManager.TryGet(hobbit, out hobbitId))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("The Hobbit provided does not already exist.")
                });
            }

            if (hobbitId != id)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("The Hobbit provided already exists as another Hobbit.")
                });
            }

            Hobbit updatedHobbit = _hobbitDataManager.Update(hobbit, id);

            if (updatedHobbit == null)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("The body did not contain a valid Hobbit data type.")
                });
            }

            return(updatedHobbit);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: etheilred/MThree
        static void Main(string[] args)
        {
            Wizard wizard = new Wizard("Gandalf");

            Hobbit[] hobbits = new Hobbit[4];
            for (var i = 0; i < hobbits.Length; i++)
            {
                hobbits[i] = new Hobbit($"Hobbit_{i}");
                wizard.RaiseRingIsFoundEvent += hobbits[i].OnRingIsFound;
            }

            Human[] humans = { new Human("Boromir"), new Human("Aragorn") };

            Dwarf dwarf = new Dwarf("Gimli");
            Elf   elf   = new Elf("Legolas");

            wizard.RaiseRingIsFoundEvent += dwarf.OnRingIsFound;
            wizard.RaiseRingIsFoundEvent += elf.OnRingIsFound;

            foreach (var human in humans)
            {
                wizard.RaiseRingIsFoundEvent += human.OnRingIsFound;
            }

            wizard.SomeThisIsChangedInTheAir();
            wizard.SomeThisIsChangedInTheAir();
        }
コード例 #3
0
 private void cancelBtn_Click(object sender, EventArgs e)
 {
     if (currentRace == "elf")
     {
         index      = (index + 1) % elfHistories.Count();
         currentElf = elfHistories.ElementAt(index);
     }
     if (currentRace == "dwarf")
     {
         index        = (index + 1) % dwarfHistories.Count();
         currentDwarf = dwarfHistories.ElementAt(index);
     }
     if (currentRace == "wizard")
     {
         index         = (index + 1) % wizardHistories.Count();
         currentWizard = wizardHistories.ElementAt(index);
     }
     if (currentRace == "human")
     {
         index        = (index + 1) % humanHistories.Count();
         currentHuman = humanHistories.ElementAt(index);
     }
     if (currentRace == "hobbit")
     {
         index         = (index + 1) % hobbitHistories.Count();
         currentHobbit = hobbitHistories.ElementAt(index);
     }
     Display();
 }
コード例 #4
0
        public static Hobbit CreateHobbit(
            string name       = null,
            string familyName = null,
            int birthYear     = 0,
            int deathYear     = 0,
            long id           = 0)
        {
            Hobbit hobbit = new Hobbit(name, familyName, birthYear, deathYear, id);

            return(hobbit);
        }
コード例 #5
0
        public void Get_ThrowsExceptionForUnknownHobbit()
        {
            Hobbit testHobbit = null;
            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >();

            mockDataManager.Setup(dm => dm.TryGet(ID, out testHobbit)).Returns(false);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Assert.Throws <HttpResponseException>(() => controller.Get(ID));
        }
コード例 #6
0
        public void Delete_ThrowsExceptionIfHobbitDoesNotExist()
        {
            Hobbit testHobbit = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME);

            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >(MockBehavior.Loose);

            mockDataManager.Setup(dm => dm.TryGet(ID, out testHobbit)).Returns(false);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Assert.Throws <HttpResponseException>(() => controller.Delete(ID));
        }
コード例 #7
0
        public void Get_ReturnsSpecifiedHobbitFromDataManager()
        {
            Hobbit testHobbit = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME, id: ID);
            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >();

            mockDataManager.Setup(dm => dm.TryGet(ID, out testHobbit)).Returns(true);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Hobbit hobbit = controller.Get(ID);

            Assert.Same(testHobbit, hobbit);
        }
コード例 #8
0
        public void Put_ThrowsExceptionIfHobbitDoesNotMatchFoundHobbit()
        {
            long   testId     = default(long);
            Hobbit testHobbit = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME);

            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >(MockBehavior.Loose);

            mockDataManager.Setup(dm => dm.TryGet(testHobbit, out testId)).Returns(true);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Assert.Throws <HttpResponseException>(() => controller.Put(ID, testHobbit));
        }
コード例 #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("Enter your name:");
            Hobbit playerOne = new Hobbit(Console.ReadLine());

            playerOne.Greeting();
            Console.WriteLine("Hmm, that is a good name for a hero... Say it with pride. Be bold. Never stray from the path of wisdom and courage.");
            Console.WriteLine("And who might you be?");
            Wizard playerCompanion = new Wizard(Console.ReadLine());

            playerCompanion.Greeting();
            Console.WriteLine("Ahh, you look to be very wise. " + playerOne.getName() + " must be grateful to have your help. Let the journey BEGIN!");
        }
コード例 #10
0
        /// <summary>
        /// Get hobbits.
        /// </summary>
        /// <returns> List from hobbits </returns>
        private static IEnumerable <Hobbit> GetHobbits()
        {
            // Hobbit's names.
            string[] hobbitNames = { "Фродо", "Сэм", "Пипин", "Мэрри" };
            var      hobbits     = new Hobbit[4];

            // Crete new hobbits.
            for (var i = 0; i < hobbits.Length; i++)
            {
                hobbits[i] = new Hobbit(hobbitNames[i], "Шир");
            }

            return(hobbits);
        }
コード例 #11
0
        public void Post_ThrowsExceptionIfHobbitAlreadyExists()
        {
            long   testId;
            Hobbit testHobbit = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME);

            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >(MockBehavior.Loose);

            mockDataManager.Setup(dm => dm.TryGet(testHobbit, out testId)).Returns(true);
            mockDataManager.Setup(dm => dm.Insert(testHobbit)).Returns(testHobbit);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Assert.Throws <HttpResponseException>(() => controller.Post(testHobbit));
        }
コード例 #12
0
        public void Put_ThrowsExceptionIfDataManagerReturnsNull()
        {
            long   testId     = ID;
            Hobbit testHobbit = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME);
            Hobbit nullHobbit = null;

            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >(MockBehavior.Loose);

            mockDataManager.Setup(dm => dm.TryGet(testHobbit, out testId)).Returns(true);
            mockDataManager.Setup(dm => dm.Update(testHobbit, testId)).Returns(nullHobbit);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Assert.Throws <HttpResponseException>(() => controller.Put(ID, testHobbit));
        }
コード例 #13
0
 private void SearchRace()
 {
     if (isElfRadio.Checked)
     {
         elfHistories = elfLogic.GetAllElves();
         index        = 0;
         currentRace  = "elf";
         currentElf   = elfHistories.First();
         Display();
     }
     else if (isDwarfRadio.Checked)
     {
         dwarfHistories = dwarfLogic.GetAllDwarves();
         index          = 0;
         currentRace    = "dwarf";
         currentDwarf   = dwarfHistories.First();
         Display();
     }
     else if (isWizardRadio.Checked)
     {
         wizardHistories = wizardLogic.GetAllWizards();
         index           = 0;
         currentRace     = "wizard";
         currentWizard   = wizardHistories.First();
         Display();
     }
     else if (isHumanRadio.Checked)
     {
         humanHistories = humanLogic.GetAllHumans();
         index          = 0;
         currentRace    = "human";
         currentHuman   = humanHistories.First();
         Display();
     }
     else if (isHobbitRadio.Checked)
     {
         hobbitHistories = hobbitLogic.GetAllHobbits();
         index           = 0;
         currentRace     = "hobbit";
         currentHobbit   = hobbitHistories.First();
         Display();
     }
     else
     {
         MessageBox.Show("Please select one of the races!", "Error");
         return;
     }
 }
コード例 #14
0
        public void Delete_DeletesSpecifiedHobbit()
        {
            long   testId     = ID;
            Hobbit testHobbit = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME);

            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >(MockBehavior.Loose);

            mockDataManager.Setup(dm => dm.TryGet(testId, out testHobbit)).Returns(true);
            mockDataManager.Setup(dm => dm.Delete(testId)).Returns(true);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            controller.Delete(ID);

            mockDataManager.Verify(dm => dm.Delete(testId), Times.Once());
        }
コード例 #15
0
        public void Post_PassesHobbitToDataManager()
        {
            long   testId;
            Hobbit testHobbit = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME);

            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >(MockBehavior.Loose);

            mockDataManager.Setup(dm => dm.TryGet(testHobbit, out testId)).Returns(false);
            mockDataManager.Setup(dm => dm.Insert(testHobbit)).Returns(testHobbit);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Hobbit hobbit = controller.Post(testHobbit);

            mockDataManager.Verify(dm => dm.Insert(testHobbit));
        }
コード例 #16
0
        public void Put_UpdatesExistingHobbit()
        {
            long   testId           = ID;
            Hobbit firstTestHobbit  = HobbitHelper.CreateHobbit(FIRST_HOBBIT_NAME);
            Hobbit secondTestHobbit = HobbitHelper.CreateHobbit(SECOND_HOBBIT_NAME);

            Mock <IDataManager <Hobbit> > mockDataManager = new Mock <IDataManager <Hobbit> >(MockBehavior.Loose);

            mockDataManager.Setup(dm => dm.TryGet(firstTestHobbit, out testId)).Returns(true);
            mockDataManager.Setup(dm => dm.Update(firstTestHobbit, ID)).Returns(secondTestHobbit);

            HobbitController controller = new HobbitController(mockDataManager.Object);

            Hobbit updatedHobbit = controller.Put(ID, firstTestHobbit);

            Assert.Equal(secondTestHobbit, updatedHobbit);
        }
コード例 #17
0
        public override HandlerRequest Handle(HandlerRequest handlerRequest)
        {
            String cleanLine = handlerRequest.Line.Replace("\n", "");

            String[] typeSplit = cleanLine.Split('-');
            if (typeSplit[0] != "Hobbit")
            {
                return(nextHandler?.Handle(handlerRequest));
            }
            String[] values = typeSplit[1].Split(',');


            Hobbit hobbit = new Hobbit(values[0], Convert.ToInt32(values[1]), Convert.ToInt32(values[2]), Convert.ToInt32(values[3]));

            handlerRequest.ListOfCharacter.Add(hobbit);

            return(handlerRequest);
        }
コード例 #18
0
        private void searchIDBtn_Click(object sender, EventArgs e)
        {
            PrevBtn.Visible = false;
            NextBtn.Visible = false;

            if (Int32.TryParse(idTxtBx.Text, out int result))
            {
                Person person = personLogic.GetPerson(result);
                if (person == null)
                {
                    MessageBox.Show("Person with ID was not found", "404: Not Found");
                }
                else
                {
                    currentRace = person.RaceType.ToLower();

                    if (person.RaceType == "elf")
                    {
                        currentElf = elfLogic.GetElf(result);
                    }
                    if (person.RaceType == "dwarf")
                    {
                        currentDwarf = dwarfLogic.GetDwarf(result);
                    }
                    if (person.RaceType == "human")
                    {
                        currentHuman = humanLogic.GetHuman(result);
                    }
                    if (person.RaceType == "wizard")
                    {
                        currentWizard = wizardLogic.GetWizard(result);
                    }
                    if (person.RaceType.ToLower() == "hobbit")
                    {
                        currentHobbit = hobbitLogic.GetHobbit(result);
                    }
                    Display();
                }
            }
            else
            {
                MessageBox.Show("ID must be a number!", "Error");
            }
        }
コード例 #19
0
        static void Main(string[] args)
        {
            Wizard wizard = new Wizard("Гендальф");

            Hobbit[] hobbits = new Hobbit[4];
            // TODO создать объекты хоббитов из Шира
            // TODO подписать хоббитов на событие волшебника
            Human[] humans = { new Human("Боромир"), new Human("Арагорн") };
            Dwarf   dwarf  = new Dwarf("Гимли");
            Elf     elf    = new Elf("Леголас");

            // подписывает гномов, людей и эльфов на событие
            wizard.RaiseRingIsFoundEvent += dwarf.RingIsFoundEventHandler;
            wizard.RaiseRingIsFoundEvent += elf.RingIsFoundEventHandler;
            foreach (Human h in humans)
            {
                wizard.RaiseRingIsFoundEvent += h.RingIsFoundEventHandler;
            }
            // волшебник оповещает всех
            wizard.SomeThisIsChangedInTheAir();
            Console.ReadLine();
        }
コード例 #20
0
        // POST: api/Hobbit
        public Hobbit Post(Hobbit hobbit)
        {
            long hobbitId;

            if (_hobbitDataManager.TryGet(hobbit, out hobbitId))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("The Hobbit provided already exists.")
                });
            }

            Hobbit insertedHobbit = _hobbitDataManager.Insert(hobbit);

            if (insertedHobbit == null)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content = new StringContent("The body did not contain a valid Hobbit data type.")
                });
            }

            return(insertedHobbit);
        }
コード例 #21
0
        public void FamilyName_IsReturned()
        {
            Hobbit testHobbit = new Hobbit(NAME, FAMILY_NAME, BIRTH_YEAR, DEATH_YEAR, ID);

            Assert.Equal(FAMILY_NAME, testHobbit.FamilyName);
        }
コード例 #22
0
        public void DeathYear_IsReturned()
        {
            Hobbit testHobbit = new Hobbit(NAME, FAMILY_NAME, BIRTH_YEAR, DEATH_YEAR, ID);

            Assert.Equal(DEATH_YEAR, testHobbit.DeathYear);
        }
コード例 #23
0
        public void Id_IsReturned()
        {
            Hobbit testHobbit = new Hobbit(NAME, FAMILY_NAME, BIRTH_YEAR, DEATH_YEAR, ID);

            Assert.Equal(ID, testHobbit.Id);
        }
コード例 #24
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (isElfRadio.Checked)
            {
                Random rand = new Random();
                elf    = elfLogic.Generate(rand, rand.Next(1, 7), rand.Next(1, 7), rand.Next(1, 7));
                person = elf;
                //elf specific Attributes
                Attr1Lbl.Text      = "Elf Type";
                Attr1TxtBx.Text    = elf.ElfType;
                Attr1Lbl.Location  = new Point(382, 297);
                Attr1TxtBx.Visible = true;
                Attr1Lbl.Visible   = true;

                isEvil.Location    = new Point(625, 202);
                checkBox1.Location = new Point(625, 238);
                checkBox1.Text     = "Elven Ring Bearer";
                checkBox1.Checked  = elf.OwnsRingOfPower;
                checkBox1.Visible  = true;
                checkBox2.Visible  = false;
            }
            else if (isDwarfRadio.Checked)
            {
                Random rand = new Random();
                dwarf  = dwarfLogic.Generate(rand, rand.Next(1, 7), rand.Next(1, 7));
                person = dwarf;
                //elf specific Attributes
                Attr1Lbl.Text      = "Dwarf Type";
                Attr1TxtBx.Text    = dwarf.DwarfGroup;
                Attr1Lbl.Location  = new Point(357, 297);
                Attr1TxtBx.Visible = true;
                Attr1Lbl.Visible   = true;

                isEvil.Location   = new Point(625, 218);
                checkBox1.Visible = false;
                checkBox2.Visible = false;
            }
            else if (isWizardRadio.Checked)
            {
                Random rand = new Random();
                wizard = wizardLogic.Generate(rand, rand.Next(1, 7), rand.Next(1, 7), rand.Next(1, 7));
                person = wizard;
                //elf specific Attributes
                Attr1Lbl.Text      = "Primary Magic Type";
                Attr1TxtBx.Text    = wizard.MagicType;
                Attr1Lbl.Location  = new Point(291, 297);
                Attr1TxtBx.Visible = true;
                Attr1Lbl.Visible   = true;

                isEvil.Location   = new Point(625, 218);
                checkBox1.Visible = false;
                checkBox2.Visible = false;
            }
            else if (isHumanRadio.Checked)
            {
                Random rand = new Random();
                human  = humanLogic.Generate(rand, rand.Next(1, 7), rand.Next(1, 7));
                person = human;
                //elf specific Attributes
                Attr1Lbl.Text      = "Ancestral Line";
                Attr1TxtBx.Text    = human.AncestralLine;
                Attr1Lbl.Location  = new Point(333, 297);
                Attr1TxtBx.Visible = true;
                Attr1Lbl.Visible   = true;

                isEvil.Location = new Point(625, 218);

                checkBox1.Visible = false;
                checkBox2.Visible = false;
            }
            else if (isHobbitRadio.Checked)
            {
                Random rand = new Random();
                hobbit = hobbitLogic.Generate(rand, rand.Next(1, 7));
                person = hobbit;
                //elf specific Attributes
                Attr1Lbl.Text      = "Home Type";
                Attr1TxtBx.Text    = hobbit.HomeType;
                Attr1Lbl.Location  = new Point(363, 297);
                Attr1TxtBx.Visible = true;
                Attr1Lbl.Visible   = true;

                isEvil.Location    = new Point(625, 184);
                checkBox1.Location = new Point(625, 218);
                checkBox2.Location = new Point(625, 253);
                checkBox1.Text     = "The Ring Bearer";
                checkBox1.Checked  = hobbit.OwnsOneRing;
                checkBox1.Visible  = true;
                checkBox2.Text     = "Adventurer";
                checkBox2.Checked  = hobbit.IsAdventurer;
                checkBox2.Visible  = true;
            }
            else
            {
                MessageBox.Show("Please select one of the races!");
                return;
            }
            //show fields
            NametxtBx.Text    = person.Name;
            nameLbl.Visible   = true;
            NametxtBx.Visible = true;

            ageTxtBx.Text    = person.Age.ToString();
            ageLbl.Visible   = true;
            ageTxtBx.Visible = true;

            genderTxtBx.Text    = person.Gender;
            genderLbl.Visible   = true;
            genderTxtBx.Visible = true;

            hairTxtBx.Text    = person.HairColor;
            hairLbl.Visible   = true;
            hairTxtBx.Visible = true;

            eyeTxtBx.Text    = person.EyeColor;
            eyeLbl.Visible   = true;
            eyeTxtBx.Visible = true;

            complexionTxtBx.Text    = person.SkinComplexion;
            complexionLbl.Visible   = true;
            complexionTxtBx.Visible = true;

            WoCTxtBx.Text    = person.WeaponOfChoice;
            WoCLbl.Visible   = true;
            WoCTxtBx.Visible = true;

            isEvil.Checked = person.Evil;
            isEvil.Visible = true;

            viewHome.Visible       = true;
            viewPosition.Visible   = true;
            viewAdventures.Visible = true;

            editButton.Visible = true;
            exportBtn.Visible  = true;
        }