public async Task <ServiceResult> Delete(int id)
        {
            var entity = await _dbContext.Radnici.FindAsync(id);

            if (entity == null)
            {
                return(ServiceResult.NotFound($"Radnik sa ID-em {id} nije pronadjen"));
            }

            await _licniPodaciService.Delete(entity.LicniPodaciId);

            await _korisnikService.Delete(entity.KorisnickiNalogId);

            await Task.Run(() => { _dbContext.Remove(entity); });

            return(ServiceResult.NoContent());
        }
示例#2
0
        public override async Task <ServiceResult> Delete(int id)
        {
            var user = await _authService.LoggedInUser();

            if (user == null)
            {
                return(ServiceResult.Unauthorized());
            }

            Pacijent pacijent        = null;
            bool     isAdministrator = await _authService.CurrentUserIsInRoleAsync(RoleType.Administrator);

            if (isAdministrator)
            {
                pacijent = await _dbContext.Pacijenti
                           .Include(x => x.KorisnickiNalog)
                           .FirstOrDefaultAsync(x => x.Id == id);
            }
            else
            {
                pacijent = await _dbContext.Pacijenti
                           .Include(x => x.KorisnickiNalog)
                           .FirstOrDefaultAsync(x => x.KorisnickiNalogId == user.Id);
            }

            if (pacijent == null)
            {
                return(ServiceResult.NotFound(isAdministrator ? $"Pacijent sa ID-em {id} nije pronadjen." : "Ovaj korisnicki nalog ne koristi ni jedan pacijent."));
            }

            await Task.Run(() =>
            {
                //Brisanje svih podataka vezanih za pacijenta
                var uputnice = _dbContext.Uputnice.Where(x => x.PacijentId == pacijent.Id);
                if (uputnice.Any())
                {
                    _dbContext.RemoveRange(uputnice);
                }
                var pregledi = _dbContext.Pregledi.Where(x => x.PacijentId == pacijent.Id);
                foreach (var pregled in pregledi)
                {
                    var lekarskoUverenje = _dbContext.LekarskaUverenja.FirstOrDefault(x => x.PregledId == pregled.Id);
                    if (lekarskoUverenje != null)
                    {
                        _dbContext.Remove(lekarskoUverenje);
                    }
                }

                if (pregledi.Any())
                {
                    _dbContext.RemoveRange(pregledi);
                }

                var zahtevi = _dbContext.ZahteviZaPregled.Where(x => x.PacijentId == pacijent.Id);
                if (zahtevi.Any())
                {
                    _dbContext.RemoveRange(zahtevi);
                }

                _dbContext.Remove(pacijent);
            });

            var korisnickiNalogDeleteResult = await _korisnikService.Delete(pacijent.KorisnickiNalogId);

            await _dbContext.SaveChangesAsync();

            return(ServiceResult.NoContent());
        }
 public Model.Korisnik Delete(int id)
 {
     return(_korisnikService.Delete(id));
 }
示例#4
0
 public void Delete(int id)
 {
     _korisnikService.Delete(id);
 }