示例#1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, PetContext petContext)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvc();

            petContext.Database.EnsureCreated();

            petContext.Dogs.RemoveRange(petContext.Dogs);
            petContext.SaveChanges();

            petContext.Owners.RemoveRange(petContext.Owners);
            petContext.SaveChanges();

            for (int i = 0; i < 10; i++)
            {
                petContext.Owners.Add(new Owner {
                    Name = "Name" + i, Age = i
                });
                petContext.SaveChanges();
            }

            for (int i = 0; i < 10; i++)
            {
                petContext.Dogs.Add(new Dog {
                    Name = "Name" + i, Breed = "Breed" + i, Owner = petContext.Owners.FirstOrDefault(owner => owner.Name == "Name" + i)
                });
                petContext.SaveChanges();
            }
        }
示例#2
0
        public ActionResult Create([Bind(Include = "Id,CustomerId,PetId,DateofSale")] Sale sale)
        {
            if (ModelState.IsValid)
            {
                db.Sales.Add(sale);
                SoldPet sold = new SoldPet();

                Pet pet = db.Pets.Find(sale.PetId);
                if (pet != null)
                {
                    sold.Id         = pet.Id;
                    sold.CategoryId = pet.CategoryId;
                    sold.Gender     = pet.Gender;
                    sold.Birthdate  = pet.Birthdate;
                    sold.Price      = pet.Price;


                    db.SoldPets.Add(sold);
                    db.Pets.Remove(pet);
                }


                db.SaveChanges();
                return(RedirectToAction("Index"));
            }


            ViewBag.CustomerId = new SelectList(db.Customers, "Id", "Name", sale.CustomerId);
            ViewBag.PetId      = new SelectList(db.Pets, "Id", "Id", sale.PetId);

            return(View(sale));
        }
        public IActionResult ActualizarMascota(Mascota m)
        {
            if (ModelState.IsValid)
            {
                var mascotaAct = _context.Mascotas.Find(m.Id);

                mascotaAct.Nombre        = m.Nombre;
                mascotaAct.Sexo          = m.Sexo;
                mascotaAct.Tamaño        = m.Tamaño;
                mascotaAct.Edad          = m.Edad;
                mascotaAct.Descripcion   = m.Descripcion;
                mascotaAct.Alergias      = m.Alergias;
                mascotaAct.Discapacidad  = m.Discapacidad;
                mascotaAct.Enfermedad    = m.Enfermedad;
                mascotaAct.Tranquilo     = m.Tranquilo;
                mascotaAct.Independiente = m.Independiente;
                mascotaAct.Cariñoso      = m.Cariñoso;
                mascotaAct.Curioso       = m.Curioso;
                mascotaAct.Educado       = m.Educado;
                mascotaAct.Deportista    = m.Deportista;
                mascotaAct.Juguetón      = m.Juguetón;
                mascotaAct.Imagen        = m.Imagen;
                mascotaAct.NombreU       = m.NombreU;


                _context.SaveChanges();

                return(RedirectToAction("PerfilUsuario"));
            }
            return(View(m));
        }
示例#4
0
        public IActionResult DeleteAnimal(int animalId)
        {
            var animal = _context.Animals.SingleOrDefault(a => a.AnimalId == animalId); //Finding the required animal to be deleted by its animalId

            _context.Animals.Remove(animal);
            _context.SaveChanges();

            return(RedirectToAction("Index", new { isDeleted = true }));
        }
        public ActionResult Create([Bind(Include = "Id,CategoryName")] Category category)
        {
            if (ModelState.IsValid)
            {
                db.Categories.Add(category);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(category));
        }
        public ActionResult Create([Bind(Include = "Id,Name,Address,Telephone,Email")] Customer customer)
        {
            if (ModelState.IsValid)
            {
                db.Customers.Add(customer);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(customer));
        }
示例#7
0
        public ActionResult Create([Bind(Include = "OwnerID,FirstName,LastName,Address,City,State,ZipCode,PhoneNumber")] Owner owner)
        {
            if (ModelState.IsValid)
            {
                db.Owners.Add(owner);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(owner));
        }
示例#8
0
        public ActionResult Create([Bind(Include = "PetID,PetName,PetAge,PetType,PetBreed,PetColor")] Pet pet)
        {
            if (ModelState.IsValid)
            {
                db.Pets.Add(pet);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(pet));
        }
示例#9
0
 public IActionResult Index(Comentario c)
 {
     if (ModelState.IsValid)
     {
         _context.Comentarios.Add(c);
         _context.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Publicaciones = _context.Publicaciones.ToList();
     ViewBag.Comentarios   = _context.Comentarios.ToList();
     return(View(c));
 }
示例#10
0
        public ActionResult Create([Bind(Include = "Id,CategoryId,Birthdate,Gender,Price")] Pet pet)
        {
            if (ModelState.IsValid)
            {
                db.Pets.Add(pet);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.CategoryId = new SelectList(db.Categories, "Id", "CategoryName", pet.CategoryId);
            return(View(pet));
        }
示例#11
0
        public ActionResult Create([Bind(Include = "PetId,Name,Breed,Birth,Creation,State,Avatar,Animal")] Pet pet)
        {
            if (ModelState.IsValid)
            {
                pet.Creation = DateTime.Now;
                db.Pets.Add(pet);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(pet));
        }
        public PetsRepository(PetContext context)
        {
            _context = context;

            if (_context.Pets.Count() == 0)
            {
                _context.Pets.AddRange(
                    new Pet
                {
                    Name    = "Opie",
                    Breed   = "Shih Tzu",
                    PetType = PetType.Dog
                },
                    new Pet
                {
                    Name    = "Reggie",
                    Breed   = "Beagle",
                    PetType = PetType.Dog
                },
                    new Pet
                {
                    Name    = "Diesel",
                    Breed   = "Bombay",
                    PetType = PetType.Cat
                },
                    new Pet
                {
                    Name    = "Lucy",
                    Breed   = "Maine Coon",
                    PetType = PetType.Cat
                });
                _context.SaveChanges();
            }
        }
        public IHttpActionResult AddPet(Pet pet)
        {
            var db = new PetContext();

            db.Petsn.Add(pet);
            db.SaveChanges();
            return(Ok(pet));
        }
 public void RegistrarAnimalResgatado(int id, Status status)
 {
     using (PetContext ctx = new PetContext())
     {
         Animal animal = ctx.Animais.FirstOrDefault(c => c.ID == id);
         animal.Status = status;
         ctx.SaveChanges();
     }
 }
示例#15
0
 public IActionResult RegistrarMascota(Mascota m)
 {
     if (ModelState.IsValid)
     {
         _context.Add(m);
         _context.SaveChanges();
         return(RedirectToAction("perfilusuario", "cuenta"));
     }
     ViewBag.mascotas = _context.Mascotas.ToList();
     return(View(m));
 }
示例#16
0
        public IActionResult AddComment(Comment comment, int animalId)
        {
            if (ModelState.IsValid)
            {
                _context.Comments.Add(new Comment {
                    CommentData = comment.CommentData, AnimalId = animalId
                });
                _context.SaveChanges();
                return(RedirectToAction("AnimalDetails", new { animalId = animalId, isSucceed = true }));
            }

            return(RedirectToAction("AnimalDetails", new { animalId = animalId }));
        }
 public async Task<Dictionary<string, object>> Handle(DeletePet request, CancellationToken cancellationToken)
 {
     var response = new Dictionary<string, object>();
     var getResponse = await _mediator.Send(new GetPetByIdQuery(request.Id));
     bool exists = (bool)getResponse["succes"];
     if (exists.Equals(false))
     {
         response.Add("succes", false);
         return response;
     }
     var pet = (Pet)getResponse["pet"];
     var ll =(Coordinate)getResponse["location"];
     Location location = PetContext.Locations.Where(l => l.Latitude == ll.Latitude && l.Longitude == ll.Longitude ).FirstOrDefault();
     location.Pets.Remove(pet);
     pet.Location = location;
     PetContext.Pets.Remove(pet);
     PetContext.SaveChanges();
     response.Add("succes", true);
     return response;
 }
示例#18
0
        public PetsRepository(PetContext context)
        {
            _context = context;

            if (_context.Pets.Count() == 0)
            {
                _context.Pets.AddRange(
                    new Pet
                {
                    Name    = "Opie 奥比",
                    Breed   = "Shih Tzu 狮子狗",
                    PetType = PetType.Dog
                },
                    new Pet
                {
                    Name    = "Reggie 雷吉",
                    Breed   = "Beagle 猎兔犬",
                    PetType = PetType.Dog
                },
                    new Pet
                {
                    Name    = "Diesel 迪赛",
                    Breed   = "Bombay 孟买猫",
                    PetType = PetType.Cat
                },
                    new Pet
                {
                    Name    = "Lucy 露西",
                    Breed   = "Maine Coon 缅因猫",
                    PetType = PetType.Cat
                },
                    new Pet {
                    Name    = "gou zi 狗子",
                    Breed   = "Chinese pastoral dog 中华田园犬",
                    PetType = PetType.Dog
                });
                _context.SaveChanges();
            }
        }
示例#19
0
        public void Excluir(Usuario usuario)
        {
            if (usuario.ID <= 0)
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Endereço de ID inválido",
                    PropertyName = "ID"
                };
                erros.Add(error);
            }

            if (erros.Count != 0)
            {
                throw new PetShopException(erros);
            }

            using (PetContext pet = new PetContext())
            {
                pet.Entry <Usuario>(usuario).State = System.Data.Entity.EntityState.Deleted;
                pet.SaveChanges();
            }
        }
示例#20
0
 public void Save()
 {
     db.SaveChanges();
 }
示例#21
0
 public void Create(Pet pet)
 {
     db.Pets.Add(pet);
     db.SaveChanges();
 }
示例#22
0
        public void Atualizar(Usuario usuario)
        {
            #region Nome
            if (string.IsNullOrWhiteSpace(usuario.Nome))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Nome deve ser informado.",
                    PropertyName = "Nome"
                };
                erros.Add(error);
            }
            else if (usuario.Nome.Length < 3 || usuario.Nome.Length > 70)
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Nome deve conter entre 3 e 70 caracteres.",
                    PropertyName = "Nome"
                };
                erros.Add(error);
            }
            #endregion

            #region Email
            if (string.IsNullOrWhiteSpace(usuario.Email))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Email deve ser informado.",
                    PropertyName = "Email"
                };
                erros.Add(error);
            }
            else if (!Regex.IsMatch(usuario.Email, @"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$"))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Email inválido.",
                    PropertyName = "Email"
                };
                erros.Add(error);
            }
            #endregion

            #region Senha
            if (string.IsNullOrWhiteSpace(usuario.Senha))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Senha deve ser informado.",
                    PropertyName = "Senha"
                };
                erros.Add(error);
            }
            else
            {
                usuario.Senha = usuario.Senha.Trim();
                if (usuario.Senha.Length < 5 || usuario.Senha.Length > 15)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Senha deve conter entre 5 e 15 caracteres.",
                        PropertyName = "Senha"
                    };
                    erros.Add(error);
                }
                else if (!VerificarSenhaValida(usuario.Senha))
                {
                    ErrorField error = new ErrorField()
                    {
                        PropertyName = "Senha",
                        Error        = "Senha deve conter pelo menos 1 letra maíscula, 1 letra minúscula, 1 símbolo e 1 número."
                    };
                    erros.Add(error);
                }
            }
            #endregion

            #region Celular
            if (string.IsNullOrWhiteSpace(usuario.Celular))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Telefone deve ser informado.",
                    PropertyName = "Telefone"
                };
                erros.Add(error);
            }
            else if (usuario.Celular.Length < 9 || usuario.Celular.Length > 15)
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Número de celular deve conter entre 9 e 15 caracteres.",
                    PropertyName = "Telefone"
                };
                erros.Add(error);
            }
            #endregion

            #region Telefone
            if (string.IsNullOrWhiteSpace(usuario.Telefone))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Número de Telefone deve ser informado.",
                    PropertyName = "Telefone"
                };
                erros.Add(error);
            }
            else
            {
                usuario.Telefone =
                    usuario.Telefone.Replace(" ", "")
                    .Replace("(", "")
                    .Replace(")", "")
                    .Replace("-", "");

                if (usuario.Telefone.Length < 8 || usuario.Telefone.Length > 15)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Número de Telefone deve conter entre 8 e 15 caracteres.",
                        PropertyName = "Telefone"
                    };
                    erros.Add(error);
                }
            }

            #endregion

            #region CEP
            if (string.IsNullOrWhiteSpace(usuario.CEP))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "CEP deve ser informado.",
                    PropertyName = "CEP"
                };
                erros.Add(error);
            }
            else
            {
                usuario.CEP = usuario.CEP.Trim();
                usuario.CEP = usuario.CEP.Replace(".", "").Replace("-", "").Replace(",", "");
                if (usuario.CEP.Length != 8)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "CEP deve conter 8 caracteres",
                        PropertyName = "CEP"
                    };
                    erros.Add(error);
                }
            }
            #endregion

            #region Endereço
            if (string.IsNullOrWhiteSpace(usuario.Endereco))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Endereço deve ser informado.",
                    PropertyName = "Endereco"
                };
                erros.Add(error);
            }
            else
            {
                if (usuario.Endereco.Length > 100)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "limite de caracteres do endereço ultrapassado.",
                        PropertyName = "Endereco"
                    };
                    erros.Add(error);
                }
            }
            #endregion

            if (erros.Count != 0)
            {
                throw new PetShopException(erros);
            }

            using (PetContext pet = new PetContext())
            {
                pet.Entry <Usuario>(usuario).State = System.Data.Entity.EntityState.Modified;
                pet.SaveChanges();
            }
        }
示例#23
0
        public void Inserir(Usuario usuario)
        {
            #region CPF
            if (string.IsNullOrWhiteSpace(usuario.CPF))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "CPF deve ser informado.",
                    PropertyName = "CPF"
                };
                erros.Add(error);
            }
            else
            {
                usuario.CPF = usuario.CPF.Trim();
                usuario.CPF = usuario.CPF.Replace(".", "").Replace("-", "").Replace(",", "");
                if (!usuario.CPF.IsValidCPF())
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "CPF inválido.",
                        PropertyName = "CPF"
                    };
                    erros.Add(error);
                }
            }
            #endregion

            #region Nome
            if (string.IsNullOrWhiteSpace(usuario.Nome))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Nome deve ser informado.",
                    PropertyName = "Nome"
                };
                erros.Add(error);
            }
            else
            {
                usuario.Nome = usuario.Nome.Trim();
                if (usuario.Nome.Length < 3 || usuario.Nome.Length > 70)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Nome deve conter entre 3 e 70 caracteres.",
                        PropertyName = "Nome"
                    };
                    erros.Add(error);
                }
                else
                {
                    for (int i = 0; i < usuario.Nome.Length; i++)
                    {
                        if (!char.IsLetter(usuario.Nome[i]) && usuario.Nome[i] != ' ')
                        {
                            ErrorField error = new ErrorField()
                            {
                                Error        = "Nome Inválido ou com muitos espaços. (OBS. Utilizar apenas um espaço por nome)",
                                PropertyName = "Nome"
                            };
                            erros.Add(error);
                            break;
                        }
                    }
                }
            }
            #endregion

            #region Email
            if (string.IsNullOrWhiteSpace(usuario.Email))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Email deve ser informado.",
                    PropertyName = "Email"
                };
                erros.Add(error);
            }
            else if (!Regex.IsMatch(usuario.Email, @"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$"))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Email inválido.",
                    PropertyName = "Email"
                };
                erros.Add(error);
            }

            #endregion

            #region Senha
            if (string.IsNullOrWhiteSpace(usuario.Senha))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Senha deve ser informado.",
                    PropertyName = "Senha"
                };
                erros.Add(error);
            }
            else
            {
                usuario.Senha = usuario.Senha.Trim();
                if (usuario.Senha.Length < 5 || usuario.Senha.Length > 15)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Senha deve conter entre 5 e 15 caracteres.",
                        PropertyName = "Senha"
                    };
                    erros.Add(error);
                }
                else if (!VerificarSenhaValida(usuario.Senha))
                {
                    ErrorField error = new ErrorField()
                    {
                        PropertyName = "Senha",
                        Error        = "Senha deve conter pelo menos 1 letra maíscula e 1 número."
                    };
                    erros.Add(error);
                }
            }
            #endregion

            #region celular
            if (string.IsNullOrWhiteSpace(usuario.Celular))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Número de celular deve ser informado.",
                    PropertyName = "Celular"
                };
                erros.Add(error);
            }
            else
            {
                usuario.Celular =
                    usuario.Celular.Replace(" ", "")
                    .Replace("(", "")
                    .Replace(")", "")
                    .Replace("-", "");

                if (usuario.Celular.Length < 9 || usuario.Celular.Length > 15)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Número do celular deve conter entre 9 e 15 caracteres.",
                        PropertyName = "Celular"
                    };
                    erros.Add(error);
                }
            }
            #endregion

            #region Telefone
            if (string.IsNullOrWhiteSpace(usuario.Telefone))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Número de Telefone deve ser informado.",
                    PropertyName = "Telefone"
                };
                erros.Add(error);
            }
            else
            {
                usuario.Telefone =
                    usuario.Telefone.Replace(" ", "")
                    .Replace("(", "")
                    .Replace(")", "")
                    .Replace("-", "");

                if (usuario.Telefone.Length < 8 || usuario.Telefone.Length > 15)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Número de Telefone deve conter entre 8 e 15 caracteres.",
                        PropertyName = "Telefone"
                    };
                    erros.Add(error);
                }
            }

            #endregion

            #region CEP
            if (string.IsNullOrWhiteSpace(usuario.CEP))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "CEP deve ser informado.",
                    PropertyName = "CEP"
                };
                erros.Add(error);
            }
            else
            {
                usuario.CEP = usuario.CEP.Trim();
                usuario.CEP = usuario.CEP.Replace(".", "").Replace("-", "").Replace(",", "");
                if (usuario.CEP.Length != 8)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "CEP deve conter 8 caracteres",
                        PropertyName = "CEP"
                    };
                    erros.Add(error);
                }
            }
            #endregion

            #region Endereço
            if (string.IsNullOrWhiteSpace(usuario.Endereco))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Endereço deve ser informado.",
                    PropertyName = "Endereco"
                };
                erros.Add(error);
            }
            else
            {
                if (usuario.Endereco.Length > 100)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "limite de caracteres do endereço ultrapassado.",
                        PropertyName = "Endereco"
                    };
                    erros.Add(error);
                }
            }
            #endregion

            if (erros.Count != 0)
            {
                throw new PetShopException(erros);
            }


            using (PetContext pet = new PetContext())
            {
                pet.Usuario.Add(usuario);
                pet.SaveChanges();
            }
        }
        public void Atualizar(Animal animal)
        {
            #region Nome
            if (string.IsNullOrWhiteSpace(animal.Nome))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Nome deve ser informado.",
                    PropertyName = "Nome"
                };
                erros.Add(error);
            }
            else
            {
                animal.Nome = animal.Nome.Trim();
                if (animal.Nome.Length < 3 || animal.Nome.Length > 30)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Nome deve conter entre 3 e 30 caracteres.",
                        PropertyName = "Nome"
                    };
                    erros.Add(error);
                }
                else
                {
                    for (int i = 0; i < animal.Nome.Length; i++)
                    {
                        if (!char.IsLetter(animal.Nome[i]) && animal.Nome[i] != ' ')
                        {
                            ErrorField error = new ErrorField()
                            {
                                Error        = "Nome Inválido ou com muitos espaços. (OBS. Utilizar apenas um espaço por nome)",
                                PropertyName = "Nome"
                            };
                            break;
                        }
                    }
                }
            }
            #endregion

            #region EhCastrado
            if (string.IsNullOrWhiteSpace(animal.EhCastrado.ToString()))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Informe se o seu animal é castrado ou não.",
                    PropertyName = "EhCastrado"
                };
                erros.Add(error);
            }
            else
            {
                if (animal.EhCastrado.ToString().Length < 4 && animal.EhCastrado.ToString().Length > 5)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Informação sobre castração com número de caracteres excedido.",
                        PropertyName = "EhCastrado"
                    };
                    erros.Add(error);
                }
                else
                {
                    for (int i = 0; i < animal.EhCastrado.ToString().Length; i++)
                    {
                        if (!char.IsLetter(animal.EhCastrado.ToString()[i]) && animal.EhCastrado.ToString()[i] != ' ')
                        {
                            ErrorField error = new ErrorField()
                            {
                                Error        = "Gênero inválido ou número de espassos excedido.",
                                PropertyName = "Genero"
                            };
                            break;
                        }
                    }
                }
            }
            #endregion

            #region Cor
            if (string.IsNullOrWhiteSpace(animal.Cor.ToString()))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Informe a cor do seu animal.",
                    PropertyName = "Cor"
                };
                erros.Add(error);
            }
            else
            {
                if (animal.Cor.ToString().Length < 3 || animal.Cor.ToString().Length > 15)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Cor com número de caracteres excedido.",
                        PropertyName = "Cor"
                    };
                    erros.Add(error);
                }
                else
                {
                    for (int i = 0; i < animal.Cor.ToString().Length; i++)
                    {
                        if (!char.IsLetter(animal.Cor.ToString()[i]) && animal.Cor.ToString()[i] != ' ')
                        {
                            ErrorField error = new ErrorField()
                            {
                                Error        = "Cor inválida ou número de espassos excedido.",
                                PropertyName = "Cor"
                            };
                            break;
                        }
                    }
                }
            }
            #endregion

            #region Porte
            if (string.IsNullOrWhiteSpace(animal.Porte.ToString()))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Informe o Porte do seu animal.",
                    PropertyName = "Porte"
                };
                erros.Add(error);
            }
            else
            {
                if (animal.Porte.ToString().Length < 3 || animal.Porte.ToString().Length > 15)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Porte com número de caracteres excedido.",
                        PropertyName = "Porte"
                    };
                    erros.Add(error);
                }
                else
                {
                    for (int i = 0; i < animal.Porte.ToString().Length; i++)
                    {
                        if (!char.IsLetter(animal.Porte.ToString()[i]) && animal.Porte.ToString()[i] != ' ')
                        {
                            ErrorField error = new ErrorField()
                            {
                                Error        = "Porte inválido ou número de espassos excedido.",
                                PropertyName = "Porte"
                            };
                            erros.Add(error);
                            break;
                        }
                    }
                }
            }
            #endregion

            #region Observação
            if (string.IsNullOrWhiteSpace(animal.Observacao))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Informe uma observação sobre seu animal para que seja mais facil encontrá-lo.",
                    PropertyName = "Observacao"
                };
                erros.Add(error);
            }
            else
            {
                if (animal.Observacao.ToString().Length < 10 || animal.Observacao.ToString().Length > 255)
                {
                    ErrorField error = new ErrorField()
                    {
                        Error        = "Observação com número de caracteres excedido.",
                        PropertyName = "Observacao"
                    };
                    erros.Add(error);
                }
            }
            #endregion

            #region UsuarioID
            if (string.IsNullOrWhiteSpace(animal.UsuarioID.ToString()))
            {
                ErrorField error = new ErrorField()
                {
                    Error        = "Informe o ID do Dono do animal.",
                    PropertyName = "UsuarioID"
                };
                erros.Add(error);
            }
            #endregion

            if (erros.Count != 0)
            {
                throw new PetShopException(erros);
            }

            using (PetContext pet = new PetContext())
            {
                pet.Entry <Animal>(animal).State = System.Data.Entity.EntityState.Modified;
                pet.SaveChanges();
            }
        }