public async Task <Unit> Handle(UpdateCartillaCommand request, CancellationToken cancellationToken) { TCartilla obj = _context.TCartilla.Find(request.CodCartilla); if (obj != null && obj.Estado == false) { throw new NotFoundException("Cartilla", request.CodCartilla); } else { obj.Detalle = _context.TCartillaDetalle.Where(t => t.CodCartilla.Equals(request.CodCartilla)).ToList(); obj = _mapper.Map <CartillaDto, TCartilla>(request.data, obj); var max = ""; foreach (var item in obj.Detalle) { if (string.IsNullOrEmpty(item.CodCartillaDet)) { item.CodCartillaDet = nextCod(max); max = nextCod(max); } } _context.TCartilla.Update(obj); await _context.SaveChangesAsync(cancellationToken); } return(Unit.Value); }
public async Task <CartillaDto> Handle(GetCartillaSoloQuery request, CancellationToken cancellationToken) { TCartilla obj = _context.TCartilla.Find(request.CodCartilla); if (obj != null && obj.Estado == false) { throw new NotFoundException("Cartilla", request.CodCartilla); } return(_mapper.Map <TCartilla, CartillaDto>(obj)); }
public async Task <CartillaDto> Handle(GetCartillaQuery request, CancellationToken cancellationToken) { TCartilla obj = _context.TCartilla.Find(request.CodCartilla); if (obj != null && obj.Estado == false) { throw new NotFoundException("Cartilla", request.CodCartilla); } obj.Detalle = _context.TCartillaDetalle .Where(t => t.Estado == true && t.CodCartilla.Equals(request.CodCartilla)) .ToHashSet(); return(_mapper.Map <TCartilla, CartillaDto>(obj)); }
public async Task <Unit> Handle(DeleteCartillaCommand request, CancellationToken cancellationToken) { TCartilla obj = _context.TCartilla.Find(request.CodCartilla); if (obj != null && obj.Estado == false) { throw new NotFoundException("Cartilla", request.CodCartilla); } else { obj.Estado = false; var list = _context.TCartillaDetalle.Where(t => t.CodCartilla.Equals(request.CodCartilla)); foreach (var item in list) { item.Estado = false; } _context.TCartilla.Update(obj); _context.TCartillaDetalle.UpdateRange(list); await _context.SaveChangesAsync(cancellationToken); } return(Unit.Value); }
public async Task <Unit> Handle(CreateCartillaCommand request, CancellationToken cancellationToken) { try{ TCartilla obj = _context.TCartilla.Find(request.data.CodCartilla); if (obj == null) { obj = _mapper.Map <CartillaDto, TCartilla>(request.data); string codigo = ""; foreach (var item in obj.Detalle) { codigo = nextCod(codigo); item.CodCartillaDet = codigo; } _context.TCartilla.Add(obj); } else if (obj.Estado == false) { obj.Estado = true; obj = _mapper.Map <CartillaDto, TCartilla>(request.data); string codigo = ""; foreach (var item in obj.Detalle) { codigo = nextCod(codigo); item.CodCartillaDet = codigo; } _context.TCartilla.Update(obj); } else { throw new Exception(String.Format("Codigo Cartilla '{0}' en uso", request.data.CodCartilla)); } await _context.SaveChangesAsync(cancellationToken); }catch (Exception ex) { throw ex; } return(Unit.Value); }