public async Task <IActionResult> Create([FromBody] WorkLocationSaveDto resourceSave) { _auditTrailRepo.User = User; var activity = Validator.GenerateActivity(resourceSave, TransactionType.ADD); var validator = await _validator.Validate(resourceSave); if (validator.HasError) { await _auditTrailRepo.SaveFailedTrail(new AuditTrailFailedSaveDto() { Action = TransactionType.ADD, Activity = activity, ErrorMessage = validator.Message }); return(BadRequest(validator.Message)); } var workLocation = _mapper.Map <WorkLocation>(resourceSave); _crudPattern.Create(workLocation); if (!await _crudPattern.SaveChanges()) { return(BadRequest("Nothing has been Saved!")); } await _auditTrailRepo.SaveSuccessTrail(new AuditTrailSuccessSaveDto() { Action = TransactionType.ADD, Activity = activity }); return(StatusCode(201)); }
public async Task <ErrorValidator> Validate(WorkLocation entity, WorkLocationSaveDto resourceSave) { if (entity.Name != resourceSave.Name) { if (await isWorkLocationAlreadyExist(resourceSave.Name)) { return(new ErrorValidator("Work Location Name Already Existed")); } } if (entity.Name != resourceSave.Name && entity.CityId != resourceSave.CityId) { if (await isWorkLocationAndCityAlreadyExist(resourceSave.Name, resourceSave.CityId)) { return(new ErrorValidator("Work Location Name and City Already Existed")); } } if (entity.Barangay != resourceSave.Barangay) { if (await isBarangayAlreadyExist(resourceSave.Barangay)) { return(new ErrorValidator("Work Location Barangay Already Existed")); } } return(new ErrorValidator()); }
public async Task <IActionResult> Update([FromRoute] int id, [FromBody] WorkLocationSaveDto resourceSave) { _auditTrailRepo.User = User; var workLocation = await _crudPattern.Get(id); if (workLocation == null) { return(NotFound()); } var activity = Validator.GetDifferences(workLocation, _mapper.Map <WorkLocation>(resourceSave)); var validator = await _validator.Validate(workLocation, resourceSave); if (validator.HasError) { await _auditTrailRepo.SaveFailedTrail(new AuditTrailFailedSaveDto() { Action = TransactionType.EDIT, Activity = activity, ErrorMessage = validator.Message, }); return(BadRequest(validator.Message)); } _crudPattern.Update(resourceSave, workLocation); if (!await _crudPattern.SaveChanges()) { return(BadRequest("Nothing has been Saved!")); } await _auditTrailRepo.SaveSuccessTrail(new AuditTrailSuccessSaveDto() { Action = TransactionType.EDIT, Activity = activity }); return(Ok(workLocation)); }