public IActionResult Add(CatInputModel model)
        {
            var cat = this.mapper.Map <Cat>(model);

            this.catsService.Add(cat);

            return(this.Redirect("/"));
        }
Beispiel #2
0
        public IActionResult Add(CatInputModel model)
        {
            var cat = new Cat
            {
                Name     = model.Name,
                Age      = model.Age,
                Breed    = model.Breed,
                ImageUrl = model.ImageUrl
            };

            this.Db.Cats.Add(cat);
            this.Db.SaveChanges();

            return(this.Redirect("/"));
        }
Beispiel #3
0
        public async Task <ActionResult <Cat> > PostCat(CatInputModel cat)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var _cat = new Cat()
            {
                Lives = 9,
                Name  = cat.Name
            };

            _context.Cats.Add(_cat);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCat", new { id = _cat.Id }, _cat));
        }
        public async Task Test1()
        {
            var optionsBuilder = new DbContextOptionsBuilder <MeowtownContext>();

            optionsBuilder.UseInMemoryDatabase("Cats");
            var dbContext  = new MeowtownContext(optionsBuilder.Options);
            var controller = new CatsController(dbContext);

            var cat = new CatInputModel()
            {
                Name = "Piet"
            };

            var result = await controller.PostCat(cat);

            var createdAtActionResult = result.Result as CreatedAtActionResult;
            var resultCat             = createdAtActionResult.Value as Cat;

            Assert.AreEqual(cat.Name, resultCat.Name);
        }
Beispiel #5
0
        public async Task <IActionResult> CreatePrivateCat([FromForm] CatInputModel model)
        {
            await this.catsService.AddCat(model);

            return(Ok());
        }
Beispiel #6
0
        public async Task AddCat(CatInputModel input)
        {
            var fileName = ImageUploader.UploadFile(input.File, "catImages");

            var cat = new Cat()
            {
                Name         = input.Name,
                Age          = input.Age,
                Birthday     = input.Birthday,
                Gender       = (Gender)input.Gender,
                Breed        = (Breed)input.Breed,
                Color        = (Color)input.Color,
                ProfileImage = fileName,
            };

            await this.db.Cats.AddAsync(cat);

            await this.db.SaveChangesAsync();

            Male   father = null;
            Female mother = null;

            if (!string.IsNullOrEmpty(input.FatherName) || !string.IsNullOrWhiteSpace(input.FatherName))
            {
                var fatherCat = await this.db.Males.FirstOrDefaultAsync(c => c.Name == input.FatherName);

                if (fatherCat == null)
                {
                    var catNotFather = await this.db.Cats.FirstOrDefaultAsync(c => c.Name == input.FatherName);

                    this.db.Cats.Remove(catNotFather);

                    father = new Male()
                    {
                        Name         = catNotFather.Name,
                        Age          = catNotFather.Age,
                        Birthday     = catNotFather.Birthday,
                        Gender       = catNotFather.Gender,
                        Breed        = catNotFather.Breed,
                        Color        = catNotFather.Color,
                        FatherId     = catNotFather.FatherId,
                        Father       = catNotFather.Father,
                        MotherId     = catNotFather.MotherId,
                        Mother       = catNotFather.Mother,
                        ProfileImage = catNotFather.ProfileImage,
                    };

                    await this.db.Males.AddAsync(father);

                    await this.db.SaveChangesAsync();

                    cat.FatherId = father.CatId;
                    cat.Father   = father;

                    father.Children.Add(cat);
                }
                else
                {
                    cat.FatherId = fatherCat.CatId;
                    cat.Father   = fatherCat;
                    fatherCat.Children.Add(cat);
                }
            }

            if (!string.IsNullOrEmpty(input.MotherName) || !string.IsNullOrWhiteSpace(input.MotherName))
            {
                var motherCat = await this.db.Females.FirstOrDefaultAsync(c => c.Name == input.MotherName);

                if (motherCat == null)
                {
                    var catNotMother = await this.db.Cats.FirstOrDefaultAsync(c => c.Name == input.MotherName);

                    this.db.Cats.Remove(catNotMother);

                    mother = new Female()
                    {
                        Name         = catNotMother.Name,
                        Age          = catNotMother.Age,
                        Birthday     = catNotMother.Birthday,
                        Gender       = catNotMother.Gender,
                        Breed        = catNotMother.Breed,
                        Color        = catNotMother.Color,
                        FatherId     = catNotMother.FatherId,
                        Father       = catNotMother.Father,
                        MotherId     = catNotMother.MotherId,
                        Mother       = catNotMother.Mother,
                        ProfileImage = catNotMother.ProfileImage,
                    };

                    await this.db.Females.AddAsync(mother);

                    await this.db.SaveChangesAsync();

                    cat.MotherId = mother.CatId;
                    cat.Mother   = mother;

                    mother.Children.Add(cat);
                }
                else
                {
                    cat.MotherId = motherCat.CatId;
                    cat.Mother   = motherCat;

                    motherCat.Children.Add(cat);
                }
            }

            await this.db.SaveChangesAsync();
        }