Ejemplo n.º 1
0
        public async Task <HobbieViewModel> addHobbie(HobbieViewModel model)
        {
            await addHobbieValidation(model);

            try
            {
                var hobbie = new Hobbie()
                {
                    userId = model.userId,
                    hobbie = model.hobbie
                };
                await db.AddAsync(hobbie);

                var result = (await db.SaveChangesAsync()) > 0;
                if (!result)
                {
                    throw new Exception("Add hobbie null");
                }
                return(new HobbieViewModel
                {
                    id = hobbie.id,
                    userId = hobbie.userId,
                    hobbie = hobbie.hobbie
                });
            }
            catch (Exception ex)
            {
                log.error("Delete hobbie error  - {0}", ex: ex, model);
                return(null);
            }
        }
Ejemplo n.º 2
0
        public async Task <bool> updateHobbie(HobbieViewModel model)
        {
            await hobbieUpdateValidation(model);

            try
            {
                var hobbie = await db.hobbies.FirstOrDefaultAsync(c => c.id == model.id && c.userId == model.userId);

                if (hobbie == null)
                {
                    throw new Exception("Hobbie not found");
                }
                if (hobbie.hobbie == model.hobbie)
                {
                    return(true);
                }
                hobbie.hobbie = model.hobbie;
                return((await db.SaveChangesAsync()) > 0);
            }
            catch (Exception ex)
            {
                log.error("Delete hobbie error  - {0}", ex: ex, model);
                return(false);
            }
        }
Ejemplo n.º 3
0
 private async Task addHobbieValidation(HobbieViewModel model)
 {
     if (string.IsNullOrWhiteSpace(model.hobbie))
     {
         throw new InvalidDataException("Hobbie cannot be null or whitespace");
     }
     if (!(await db.users.AnyAsync(c => c.id == model.userId)))
     {
         throw new InvalidDataException("User not found");
     }
     if (await db.hobbies.AnyAsync(c => c.hobbie.ToLower().Trim() == model.hobbie.ToLower().Trim() && c.userId == model.userId))
     {
         throw new InvalidDataException($"Hobbie {model.hobbie} already exist in the record");
     }
 }
Ejemplo n.º 4
0
 private async Task hobbieUpdateValidation(HobbieViewModel model)
 {
     if (model.id <= 0)
     {
         throw new InvalidDataException("Invalid hobbie id");
     }
     if (model.userId <= 0)
     {
         throw new InvalidDataException("Invalid user id");
     }
     if (!(await db.hobbies.AnyAsync(c => c.id == model.id && c.id == model.id)))
     {
         throw new InvalidDataException($"Hobbie id {model.id} not found");
     }
     if (string.IsNullOrWhiteSpace(model.hobbie))
     {
         throw new InvalidDataException("Hobbie cannot be null or empty space");
     }
 }
Ejemplo n.º 5
0
        public async Task <JsonResponse> addHobbie([FromBody] HobbieViewModel model)
        {
            try
            {
                var result = await repository.addHobbie(model);

                if (result == null)
                {
                    return(JsonResponse.failed("Add hobbie failed, please try again"));
                }
                return(JsonResponse.success(data: result));
            }
            catch (InvalidDataException ex)
            {
                log.info("Invalid data found - {0}", ex.Message);
                return(JsonResponse.failed(message: ex.Message));
            }
            catch (Exception ex)
            {
                log.error("Add hobbie error - {0}", ex, model);
                return(JsonResponse.failed(message: "Failed to add hobbie"));
            }
        }