public async Task <IActionResult> Create([FromBody] SaveServiceProviderResource resource) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var sp = _mapper.Map <SaveServiceProviderResource, ServiceProvider>(resource); sp.UserId = await GetUserId(); var spDetails = await _repository.GetServiceProviderByUserAsync(sp.UserId); if (spDetails.Any()) { return(BadRequest("You can not add more than one service provider")); } sp.IsAvailable = true; sp.ServiceProviderRequestsStatusId = (int)ServiceProviderStatusType.Submitted; _repository.Add(sp); await _unitOfWork.CompleteAsync(); var result = _mapper.Map <ServiceProvider, ServiceProviderResource>(sp); return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex.ToString())); } }
public async Task <IActionResult> UpdateServiceProviderAvailability([FromBody] SaveServiceProviderResource resource) { var sp = await _repository.GetServiceProviderAsync(await GetServiceProviderId()); if (sp == null) { return(NotFound()); } sp.IsAvailable = resource.IsAvailable; await _unitOfWork.CompleteAsync(); var result = _mapper.Map <ServiceProvider, SaveServiceProviderResource>(sp); return(Ok(result)); }
public async Task <IActionResult> Update(int id, [FromBody] SaveServiceProviderResource resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var sp = await _repository.GetServiceProviderAsync(id); if (sp == null) { return(NotFound()); } sp = _mapper.Map(resource, sp); sp.UserId = await GetUserId(); await _unitOfWork.CompleteAsync(); var result = _mapper.Map <SaveServiceProviderResource, ServiceProvider>(resource); return(Ok(result)); }
public async Task <IActionResult> UpdateServiceProvidersRequestsStatus(int spId, [FromBody] SaveServiceProviderResource resource) { var sp = await _repository.GetServiceProviderAsync(spId); if (sp == null) { return(NotFound()); } sp.ServiceProviderRequestsStatusId = resource.ServiceProviderRequestsStatusId; await _unitOfWork.CompleteAsync(); if (sp.ServiceProviderRequestsStatusId == (int)ServiceProviderStatusType.Approved) { await _userManager.AddToRoleAsync(sp.ApplicationUser, "Captain"); } var result = _mapper.Map <ServiceProvider, SaveServiceProviderResource>(sp); return(Ok(result)); }