Beispiel #1
0
        public async Task <Animel> UpdateAnimelAsync(Animel animel)
        {
            var animals = await GetAnimelsAsync();

            Animel dbAnimal;

            if (animel.Id.HasValue)
            {
                dbAnimal = animals.FirstOrDefault(x => x.Id == animel.Id);
            }
            else
            {
                dbAnimal = new Animel
                {
                    Id = (animals.Any() ? animals.Select(x => x.Id).Max() : 0) + 1
                };
                animals.Add(dbAnimal);
            }

            dbAnimal.Name     = animel.Name;
            dbAnimal.Quantity = animel.Quantity;

            await File.WriteAllTextAsync(databaseFileName, JsonConvert.SerializeObject(animals));

            return(dbAnimal);
        }
        public async Task <ActionResult> UpdateAnimelCatlogAsync([FromBody] Animel animel)
        {
            var errors = await animelRepo.ValidateAsync(animel);

            foreach (var error in errors)
            {
                ModelState.AddModelError(error.Key, error.Value);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var updatedAnimel = await animelRepo.UpdateAnimelAsync(animel);

            if (updatedAnimel == null)
            {
                return(StatusCode(500));
            }
            return(Ok(updatedAnimel));
        }
Beispiel #3
0
        public async Task <IEnumerable <KeyValuePair <string, string> > > ValidateAsync(Animel animel)
        {
            List <KeyValuePair <string, string> > errors = new List <KeyValuePair <string, string> >();
            var animals = await GetAnimelsAsync();

            // check name is not already exist
            var query = animals.Where(x => x.Name.ToLower() == animel.Name.ToLower());

            if (animel.Id.HasValue)
            {
                query = query.Where(x => x.Id != animel.Id);
            }

            if (query.Any())
            {
                errors.Add(new KeyValuePair <string, string>("Name", $"Animel name {animel.Name} is already exsits"));
            }

            return(errors);
        }