public static CareTeamDto CareTeamToDto(CareTeam careTeam, Dictionary<string, IdentityRole> roles = null) { var careTeamDto = new CareTeamDto(); careTeamDto.InjectFrom(careTeam); careTeamDto.Patient = UserToDto(careTeam.Patient); careTeamDto.Providers = new List<UserDto>(); careTeamDto.Supporters = new List<UserDto>(); foreach (var provider in careTeam.Providers) { careTeamDto.Providers.Add(UserToDto(provider)); } foreach (var supporter in careTeam.Supporters) { careTeamDto.Supporters.Add(UserToDto(supporter)); } return careTeamDto; }
public async Task<IHttpActionResult> PostCareTeam(CareTeamBindingModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var patient = await userManager.FindByIdAsync(model.PatientId); if (patient == null) { return NotFound(); } List<ApplicationUser> providers = new List<ApplicationUser>(); foreach (string ProviderId in model.ProviderIds) { var provider = await userManager.FindByIdAsync(ProviderId); if (provider == null) { return NotFound(); } providers.Add(provider); } List<ApplicationUser> supporters = new List<ApplicationUser>(); foreach (string SupporterId in model.SupporterIds) { var supporter = await userManager.FindByIdAsync(SupporterId); if (supporter == null) { return NotFound(); } supporters.Add(supporter); } var careTeam = new CareTeam() { Id = Guid.NewGuid(), Name = model.Name, Active = false, Providers = providers, Supporters = supporters, Patient = patient }; db.CareTeam.Add(careTeam); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (CareTeamExists(careTeam.Id)) { return Conflict(); } else { throw; } } return Created("CareTeams/" + careTeam.Id, ToDto.CareTeamToDto(careTeam)); }