public async Task <ServiceResult> Update(int id, RadnikUpsertDto radnikDto) { if (!_dbContext.StacionarnaOdeljenja.Any(x => x.Id == radnikDto.StacionarnoOdeljenjeId)) { return(ServiceResult.NotFound($"Stacionarno odeljenje sa ID-em {radnikDto.StacionarnoOdeljenjeId} nije pronadjeno")); } var entity = await _dbContext.Radnici .Include(x => x.KorisnickiNalog) .Include(x => x.LicniPodaci) .FirstOrDefaultAsync(x => x.Id == id); if (entity == null) { return(ServiceResult.NotFound($"Radnik sa ID-em {id} nije pronadjen")); } await _korisnikService.Update(entity.KorisnickiNalogId, radnikDto.KorisnickiNalog); await _licniPodaciService.Update(entity.LicniPodaciId, radnikDto.LicniPodaci); await Task.Run(() => { entity.StacionarnoOdeljenjeId = radnikDto.StacionarnoOdeljenjeId; _dbContext.Update(entity); }); await _dbContext.SaveChangesAsync(); return(ServiceResult.OK(entity)); }
public async Task <ServiceResult> Insert(RadnikUpsertDto radnikDto) { if (!await _dbContext.StacionarnaOdeljenja.AnyAsync(x => x.Id == radnikDto.StacionarnoOdeljenjeId)) { return(ServiceResult.NotFound($"Stacionarno odeljenje sa ID-em {radnikDto.StacionarnoOdeljenjeId} nije pronadjeno")); } var licniPodaciResultTemp = await _licniPodaciService.Insert(radnikDto.LicniPodaci); if (!licniPodaciResultTemp.Succeeded) { return(ServiceResult.WithStatusCode(licniPodaciResultTemp.StatusCode, licniPodaciResultTemp.Message)); } var licniPodaciResult = licniPodaciResultTemp.Data as LicniPodaciDto; var korisnickiNalogResultTemp = await _korisnikService.Insert(radnikDto.KorisnickiNalog); if (!korisnickiNalogResultTemp.Succeeded) { return(ServiceResult.WithStatusCode(korisnickiNalogResultTemp.StatusCode, korisnickiNalogResultTemp.Message)); } var korisnickiNalogResult = korisnickiNalogResultTemp.Data as KorisnickiNalogDtoLL; var radnik = new Radnik { KorisnickiNalogId = korisnickiNalogResult.Id, LicniPodaciId = licniPodaciResult.Id, StacionarnoOdeljenjeId = radnikDto.StacionarnoOdeljenjeId }; await _dbContext.AddAsync(radnik); await _dbContext.SaveChangesAsync(); return(ServiceResult.OK(radnik)); }