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); } }
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); } }
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"); } }
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"); } }
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")); } }