public void SendAnimalToShelterTest()
        {
            var shelter = new ShelterRepository(1);
            var logic   = new ShelterLogic(shelter);
            var cat     = new Animal {
                Name = "cat", AgeInHumanYears = 2
            };

            shelter.AddAnimal(cat);
            var person = new Person
            {
                Name         = "John",
                Age          = 18,
                Money        = 9.99,
                OwnedAnimals = new Dictionary <string, Animal>
                {
                    { cat.Name, cat }
                }
            };
            Rabbit rabbit = new Rabbit {
                Name = "rabbit", AgeInHumanYears = 2
            };

            logic.SendAnimalToShelter(rabbit, person);
        }
Exemple #2
0
        public ShelterController(IConfiguration config, ShelterRepository shelterRepo, IMediator mediatr)
        {
            _config  = config;
            _mediatr = mediatr;

            _shelterRepo = shelterRepo;
        }
Exemple #3
0
        /// <summary>
        ///     Update row of grid.
        /// </summary>
        public ActionResult UpdateGridForShelters([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (ShelterRepository.IsUniqueShelter(model))
                    {
                        ShelterRepository.UpdateShelter(model);
                    }
                    else
                    {
                        TempData["ErrorMessage"] = Supervisor.SErrorMsgProductExist;
                    }
                }

                else
                {
                    TempData["ErrorMessage"] = Common.ErrorMsgForGrid;
                }
            }
            catch (Exception exc)
            {
                TempData["ErrorMessage"] = exc.ToString();
                Logger.LogError(exc, "Error while updating shelter from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelters", ShelterRepository.Shelters));
        }
Exemple #4
0
        /// <summary>
        /// New row of grid.
        /// </summary>
        public ActionResult NewGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId)
        {
            ViewData["ShelterId"] = shelterId;

            try
            {
                ModelState["InStock"].Errors.Clear(); // Don't want to check InStock

                if (ModelState.IsValid)
                {
                    if (ShelterRepository.IsUniqueItem(model, Action.New))
                    {
                        ShelterRepository.NewShelterItem(model);
                    }
                    else
                    {
                        TempData["ErrorMessage"] = Supervisor.SErrorMsgForItemExist;
                    }
                }
                else
                {
                    TempData["ErrorMessage"] = Common.ErrorMsgForGrid;
                }
            }
            catch (Exception exc)
            {
                TempData["ErrorMessage"] = exc.Message;
                Logger.LogError(exc, "Error while saving new shelter item in Shelters grid from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId)));
        }
Exemple #5
0
        /// <summary>
        /// Get possible stock existence as per database's records.
        /// </summary>
        /// <param name="shelterId"></param>
        /// <returns></returns>
        public ActionResult PossibleShelterStock(int shelterId)
        {
            var stockList = new List <float>();
            var items     = ShelterRepository.GetShelterItemsByKey(shelterId);

            foreach (var item in items)
            {
                var itemQuantity       = item.ItemQuantity;
                var totalItemsQuantity = ItemRepository.GetItemTotalQuantity(item.ItemId);

                if (itemQuantity.Equals(0) || totalItemsQuantity < itemQuantity)
                {
                    stockList.Add(0);
                    break;
                }

                var possComb = totalItemsQuantity / itemQuantity;
                stockList.Add(possComb);
            }

            if (stockList.Count <= 0)
            {
                return(Content(Convert.ToString(0)));
            }
            var stock = Math.Floor((decimal)stockList.Min());

            return(Content(stockList.Count > 0 ? Convert.ToString(stock) : Convert.ToString(0)));
        }
Exemple #6
0
        public ShelterDetail()
        {
            InitializeComponent();

            // 1. Get single shelter based on ShelterId
            var shelter = ShelterRepository.GetShelter();

            if (shelter == null)
            {
                return;
            }

            // 2. Set label's text from obtained details of Shelter
            _lblShelterName.Text  = shelter.ShelterName;
            _lblShelterCount.Text = ShelterRepository.PossibleShelterStock(shelter.ShelterId).ToString(CultureInfo.InvariantCulture);
            _lblShelterDesc.Text  = string.Format("List of items that make '{0}' -", shelter.ShelterName);

            // 3. Get shelter's items
            var shelterItems = ShelterRepository.GetShelterItemsForReport(shelter.ShelterId);

            // 4. Set datasource of report
            DataSource = shelterItems;

            // 5. Bind to cells in table
            _xrCvSlNo.DataBindings.AddRange(new[] { new XRBinding("Text", null, "ShelterDescKey") });
            _xrCvItemName.DataBindings.AddRange(new[] { new XRBinding("Text", null, "ItemName") });
            _xrCvSize.DataBindings.AddRange(new[] { new XRBinding("Text", null, "Size") });
            _xrCvMarking.DataBindings.AddRange(new[] { new XRBinding("Text", null, "Marking") });
            _xrCvQtyPerShelter.DataBindings.AddRange(new[] { new XRBinding("Text", null, "ItemQuantity") });
            _xrCvInStock.DataBindings.AddRange(new[] { new XRBinding("Text", null, "InStock") });
            _xrCvLastUpdated.DataBindings.AddRange(new[] { new XRBinding("Text", null, "UpdatedOn", "{0:dd-MM-yyyy}") });
            _xrCvVendor.DataBindings.AddRange(new[] { new XRBinding("Text", null, "Vendor") });
        }
Exemple #7
0
        /// <summary>
        ///     Update row of grid.
        /// </summary>
        public ActionResult UpdateGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId)
        {
            ViewData["ShelterId"] = shelterId;
            try
            {
                if (ModelState.IsValid)
                {
                    if (ShelterRepository.IsUniqueItem(model, Action.Update))
                    {
                        ShelterRepository.UpdateShelterItem(model);
                    }
                    else
                    {
                        TempData["ErrorMessage"] = Supervisor.SErrorMsgForItemExist;
                    }
                }
                else
                {
                    TempData["ErrorMessage"] = Common.ErrorMsgForGrid;
                }
            }
            catch (Exception exc)
            {
                TempData["ErrorMessage"] = exc.Message;
                Logger.LogError(exc, "Error while updating shelter's items from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId)));
        }
Exemple #8
0
 public MapController(IConfiguration config, ShelterRepository shelterRepo, DogRepository dogRepo, UserTypeRepository userTypeRepo)
 {
     _config       = config;
     _shelterRepo  = shelterRepo;
     _dogRepo      = dogRepo;
     _userTypeRepo = userTypeRepo;
 }
Exemple #9
0
 public DogController(IMediator mdr, IConfiguration config, DogRepository dogRepo, ShelterRepository shelterRepo)
 {
     _mdr         = mdr;
     _config      = config;
     _dogRepo     = dogRepo;
     _shelterRepo = shelterRepo;
 }
        public void GetNullAnimalTest()
        {
            var shelter = new ShelterRepository(1);

            //           Rabbit rabbit = null;

            shelter.GetAnimal <Rabbit>();
        }
Exemple #11
0
        /// <summary>
        /// Get model for ShelterItems.
        /// </summary>
        /// <param name="shelterId">shelterId for which items to be shown.</param>
        /// <param name="qtyMultiple">Number of shelter user is requesting.</param>
        /// <returns></returns>
        private static ShelterItemsModel GetShelterItems(int shelterId, int qtyMultiple)
        {
            var items = ShelterRepository.GetShelterItemsByKey(shelterId, qtyMultiple);

            return(new ShelterItemsModel {
                ShelterKey = shelterId, ShelterItems = items
            });
        }
Exemple #12
0
        /// <summary>
        ///  Show items used in current shelter.
        /// </summary>
        /// <param name="shelterId"></param>
        /// <returns></returns>
        public ActionResult ShelterItems(int shelterId)
        {
            ViewData["ShelterId"] = shelterId;

            return(PartialView("Grid/_GridForShelterItems", new ShelterItemsModel {
                ShelterKey = shelterId, ShelterItems = ShelterRepository.GetShelterItemsDetail(shelterId)
            }));
        }
Exemple #13
0
        /// <summary>
        /// Get possible product stock by existing items.
        /// </summary>
        private static string PossibleRequestStock(int productId)
        {
            var items = ShelterRepository.GetShelterItemsByKey(productId);

            var stockList = (from item in items let itemQuantity = item.ItemQuantity let totalItemsQuantity = ItemRepository.GetItemTotalQuantity(item.ItemId) where totalItemsQuantity > itemQuantity select totalItemsQuantity / itemQuantity).ToList();

            return(stockList.Count > 0 ? string.Format("{0:N2}", stockList.Min()) : Convert.ToString(0));
        }
        public void RemoveAnimal_AnimalEmpty()
        {
            var shelter = new ShelterRepository(1);
            Cat cat     = null;

            shelter.AddAnimal(cat);

            shelter.RemoveAnimal(cat);
        }
        public void RemoveAnimal_ShelterEmpty()
        {
            var shelter = new ShelterRepository(1);
            Cat cat     = new Cat {
                Name = "cat", AgeInHumanYears = 2
            };

            shelter.RemoveAnimal(cat);
        }
        public void GetNumberOfAnimalsInShelterTest1()
        {
            var shelter = new ShelterRepository(1);
            var logic   = new ShelterLogic(shelter);
            var cat     = new Cat {
                Name = "cat", AgeInHumanYears = 2
            };

            shelter.AddAnimal(cat);

            logic.GetNumberOfAnimalsInShelter("alligator");
        }
        public void GetNumberOfCatsInShelterTest()
        {
            var    shelter = new ShelterRepository(1);
            Rabbit rabbit  = new Rabbit {
                Name = "rabbit", AgeInHumanYears = 2
            };
            //shelter.AddAnimal(rabbit);
            var expected = 0;
            var actual   = shelter.GetNumberOfCatsInShelter();

            Assert.AreEqual(expected, actual);
        }
        public void GetNumberOfAnimalsInShelterTest_Zero()
        {
            var shelter = new ShelterRepository(1);
            Cat cat     = new Cat {
                Name = "cat", AgeInHumanYears = 2
            };

            var expected = 0;
            var actual   = shelter.GetNumberOfAnimalsInShelter(cat.GetType());

            Assert.AreEqual(expected, actual);
        }
        public void RemoveAnimalTest()
        {
            var shelter = new ShelterRepository(1);
            Cat cat     = new Cat {
                Name = "cat", AgeInHumanYears = 2
            };
            Dog dog = new Dog {
                Name = "dog1", AgeInHumanYears = 2, Price = 22.99
            };

            shelter.AddAnimal(cat);
            shelter.RemoveAnimal(dog);
        }
Exemple #20
0
 private static void DeleteShelter(int shelterId)
 {
     try
     {
         if (shelterId > 0)
         {
             ShelterRepository.DeleteShelter(shelterId);
         }
     }
     catch (Exception e)
     {
         Logger.LogError(e, "Error while deleting shelter from Supervisor zone");
     }
 }
        public void GetNumberOfAnimalsInShelterTest_String()
        {
            var shelter = new ShelterRepository(1);
            var logic   = new ShelterLogic(shelter);
            var cat     = new Cat {
                Name = "cat", AgeInHumanYears = 2
            };

            shelter.AddAnimal(cat);
            var expected = "1 cat(s) in the shelter";
            var actual   = logic.GetNumberOfAnimalsInShelter(cat.GetType().Name.ToLower());

            Assert.AreEqual(expected, actual);
        }
Exemple #22
0
        /// <summary>
        ///     Delete row of grid.
        /// </summary>
        public ActionResult DeleteGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId)
        {
            ViewData["ShelterId"] = shelterId;
            try
            {
                ShelterRepository.DeleteShelterItem(model);
            }
            catch (Exception exc)
            {
                TempData["DeleteErrorMsg"] = exc.Message;
                Logger.LogError(exc, "Error while deleting shelter's items from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId)));
        }
        public void GetNumberOfAnimalsInShelterTest()
        {
            var shelter = new ShelterRepository(1);
            var logic   = new ShelterLogic(shelter);
            var cat     = new Cat {
                Name = "cat", AgeInHumanYears = 2
            };

            shelter.AddAnimal(cat);
            var expected = "1 cat(s) in the shelter\n0 dog(s) in the shelter\n0 snake(s) in the shelter" +
                           $"\n0 hamster(s) in the shelter\n0 rabbit(s) in the shelter";
            var actual = logic.GetNumberOfAnimalsInShelter();

            Assert.AreEqual(expected, actual);
        }
Exemple #24
0
        public void IsShelterFullTest()
        {
            ShelterRepository shelter = new ShelterRepository(1);
            ShelterLogic      logic   = new ShelterLogic(shelter);
            Rabbit            rabbit2 = new Rabbit {
                Name = "rabbit2", AgeInHumanYears = 8
            };

            shelter.AddAnimal(rabbit2);

            var expected = true;
            var actual   = shelter.IsShelterFull();

            Assert.AreEqual(expected, actual);
        }
Exemple #25
0
        /// <summary>
        ///     Delete row from grid.
        /// </summary>
        public ActionResult DeleteGridForShelters([ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId)
        {
            try
            {
                if (shelterId > 0)
                {
                    ShelterRepository.DeleteShelter(shelterId);
                }
            }
            catch (Exception exc)
            {
                TempData["DeleteErrorMsg"] = exc.Message;
                Logger.LogError(exc, "Error while deleting shelter from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelters", ShelterRepository.Shelters));
        }
Exemple #26
0
        public void PurchaseAnimal_NullShelterTest()
        {
            var shelter = new ShelterRepository(0);
            var logic   = new ShelterLogic(shelter);
            var person  = new Person
            {
                Name         = "John",
                Age          = 18,
                Money        = 29.99,
                OwnedAnimals = new Dictionary <string, Animal>()
            };

            Animal expected = null;
            var    actual   = person.BuyAnimal <Cat>(logic);

            Assert.AreEqual(expected, actual);
        }
Exemple #27
0
        public void PurchaseAnimal_NotEnoughMoney()
        {
            var shelter = new ShelterRepository(1);
            var logic   = new ShelterLogic(shelter);
            var cat     = new Cat {
                Name = "cat1", AgeInHumanYears = 3, Price = 13.20
            };

            shelter.AddAnimal(cat);
            var person = new Person
            {
                Name         = "John",
                Age          = 18,
                Money        = 9.99,
                OwnedAnimals = new Dictionary <string, Animal>()
            };

            person.BuyAnimal <Cat>(logic);
        }
        public void BuyAnimalTest1()
        {
            var shelter = new ShelterRepository(1);
            var logic   = new ShelterLogic(shelter);
            var cat     = new Cat {
                Name = "cat", AgeInHumanYears = 2
            };
            var person = new Person
            {
                Name         = "John",
                Age          = 18,
                Money        = 9.99,
                OwnedAnimals = new Dictionary <string, Animal>()
            };
            Animal expected = null;
            var    actual   = logic.BuyAnimal <Cat>(person, cat.Name);

            Assert.AreEqual(expected, actual);
        }
        public void BuyAnimalTest2()
        {
            var shelter = new ShelterRepository(1);
            var logic   = new ShelterLogic(shelter);
            var cat     = new Animal {
                Name = "cat", AgeInHumanYears = 2
            };

            shelter.AddAnimal(cat);
            var person = new Person
            {
                Name         = "John",
                Age          = 18,
                Money        = 9.99,
                OwnedAnimals = new Dictionary <string, Animal>()
            };

            logic.BuyAnimal <Animal>(person, cat.Name);
        }
Exemple #30
0
        public void BuyAnimalTest_NoAnimalInitialized()
        {
            int    maxNumberOfAnimals = 5;
            Rabbit rabbit2            = new Rabbit {
                Name = "rabbit2", AgeInHumanYears = 8, Price = 5
            };
            ShelterRepository shelterRepository = new ShelterRepository(maxNumberOfAnimals);

            shelterRepository.AddAnimal(rabbit2);
            ShelterLogic logic = new ShelterLogic(shelterRepository);

            Person person = new Person
            {
                Name         = "John",
                Age          = 18,
                Money        = 29.99,
                OwnedAnimals = new Dictionary <string, Animal>()
            };

            person.BuyAnimal <Rabbit>(logic);
        }