public async Task <Unit> Handle(ComiteCreateCommand request, CancellationToken cancellationToken) { try { if (request.data == null) { throw new Exception("falta Comite"); } ComiteDto nuevo = new ComiteDto(); string maxCod = _context.TComite.Max(r => r.CodComite); if (maxCod == null) { maxCod = "COM0000000001"; } else { int id = int.Parse(maxCod.Substring(3, 10)) + 1; maxCod = "COM" + id.ToString("D10"); } nuevo.CodComite = maxCod; nuevo.Fecha = request.data.Fecha; nuevo.Hora = request.data.Hora; nuevo.Fecha = request.data.Fecha; nuevo.CodTipoComite = request.data.CodTipoComite; nuevo.CodCategoria = request.data.CodCategoria; nuevo.CodPosicionGer = request.data.CodPosicionGer; nuevo.CodPosicionSup = request.data.CodPosicionSup; nuevo.Lugar = request.data.Lugar; nuevo.DetalleApertura = request.data.DetalleApertura; nuevo.CodSecretario = request.data.CodSecretario; nuevo.ResumenSalud = request.data.ResumenSalud; nuevo.ResumenSeguridad = request.data.ResumenSeguridad; nuevo.ResumenMedioAmbiente = request.data.ResumenMedioAmbiente; nuevo.ResumenComunidad = request.data.ResumenComunidad; nuevo.FechaCierre = request.data.FechaCierre; nuevo.HoraCierre = request.data.HoraCierre; nuevo.PlanAccion = request.data.PlanAccion; foreach (string persona in request.data.ListaParticipantes) { TListaParticipantesComiteDto participante = new TListaParticipantesComiteDto(); participante.CodPersona = persona; nuevo.ListaParticipantes.Add(participante); } var comite = _mapper.Map <ComiteDto, TComite>(nuevo); _context.TComite.Add(comite); await _context.SaveChangesAsync(cancellationToken); //var r2 = await _imagen.Upload(request.Files, maxCod, "TCOM"); var r2 = await _mediator.Send(new CreateListFilesCommand { File = request.Files, NroDocReferencia = maxCod, NroSubDocReferencia = maxCod, CodTablaRef = "TCOM" }); //var r3 = await _planAccion.Create(nuevo.PlanAccion, maxCod); nuevo.PlanAccion.ForEach(t => { t.docReferencia = maxCod; t.docSubReferencia = maxCod; }); var r3 = await _mediator.Send(new CreatePlanAccionCommand() { planes = nuevo.PlanAccion }); return(Unit.Value); } catch (Exception e) { throw e; } }
public async Task <Unit> Handle(ComiteUpdateCommand request, CancellationToken cancellationToken) { try { if (request.data == null) { throw new Exception("falta Comite"); } var comite = _context.TComite.Include(c => c.ListaParticipantes).First(t => t.CodComite.Equals(request.data.CodComite)); comite.Fecha = request.data.Fecha; comite.Hora = request.data.Hora; comite.Fecha = request.data.Fecha; comite.CodTipoComite = request.data.CodTipoComite; comite.CodCategoria = request.data.CodCategoria; comite.CodPosicionGer = request.data.CodPosicionGer; comite.CodPosicionSup = request.data.CodPosicionSup; comite.Lugar = request.data.Lugar; comite.DetalleApertura = request.data.DetalleApertura; comite.CodSecretario = request.data.CodSecretario; comite.ResumenSalud = request.data.ResumenSalud; comite.ResumenSeguridad = request.data.ResumenSeguridad; comite.ResumenMedioAmbiente = request.data.ResumenMedioAmbiente; comite.ResumenComunidad = request.data.ResumenComunidad; comite.FechaCierre = request.data.FechaCierre; comite.HoraCierre = request.data.HoraCierre; comite.ListaParticipantes = comite.ListaParticipantes.Where(l => l.Estado == true).ToList(); var interParticipantes = comite.ListaParticipantes.Select(x => x.CodPersona).Intersect(request.data.ListaParticipantes).ToList(); //update var leftParticipantes = request.data.ListaParticipantes.Except(comite.ListaParticipantes.Select(x => x.CodPersona)).ToList(); //new var rightParticipantes = comite.ListaParticipantes.Select(x => x.CodPersona).Except(request.data.ListaParticipantes).ToList(); //delete foreach (var CodPersona in interParticipantes) { var pm = comite.ListaParticipantes.First(t => t.CodPersona.Equals(CodPersona)); pm.Estado = true; } foreach (var CodPersona in leftParticipantes) { TListaParticipantesComiteDto participante = new TListaParticipantesComiteDto(); participante.CodPersona = CodPersona; var _participante = _mapper.Map <TListaParticipantesComiteDto, TListaParticipantesComite>(participante); comite.ListaParticipantes.Add(_participante); } foreach (var CodPersona in rightParticipantes) { var pm = comite.ListaParticipantes.First(t => t.CodPersona.Equals(CodPersona)); pm.Estado = false; } _context.TComite.Update(comite); await _context.SaveChangesAsync(cancellationToken); if (request.UpdateFiles != null) { foreach (var updateFile in request.UpdateFiles) { if (updateFile.Estado) { //var num2 = await _imagen.Update(updateFile); var num2 = await _mediator.Send(new UpdateFileCommand() { CorrelativoArchivos = updateFile.CorrelativoArchivos, Descripcion = updateFile.Descripcion }); } else { //var num3 = await _imagen.Delete(updateFile.correlativoArchivos.ToString()); var num3 = await _mediator.Send(new DeleteFileCommand() { CorrelativoArchivos = updateFile.CorrelativoArchivos }); } } } var updateList = new List <PlanVM>(); var createList = new List <PlanVM>(); if (request.data.PlanAccion != null && request.data.PlanAccion.Count() > 0) { foreach (var item in request.data.PlanAccion) { if (item.estado == false && item.codAccion > 0) { //var r3 = await _planAccion.Delete(item.codAccion.ToString()); var r3 = await _mediator.Send(new DeletePlanAccionCommand() { CodAccion = item.codAccion }); } else if (item.estado == true && item.codAccion > 0) { updateList.Add(item); } else if (item.codAccion < 0) { createList.Add(item); } } } //var r4 = await _planAccion.Create(createList, request.data.CodComite); createList.ForEach(t => { t.docReferencia = request.data.CodComite; t.docSubReferencia = request.data.CodComite; }); var r4 = await _mediator.Send(new CreatePlanAccionCommand() { planes = createList }); //var r5 = await _planAccion.Update(updateList); var r5 = await _mediator.Send(new UpdatePlanAccionCommand() { planes = updateList }); //var r6 = await _imagen.Upload(request.Files, request.data.CodComite, "TCOM"); var r6 = await _mediator.Send(new CreateListFilesCommand { File = request.Files, NroDocReferencia = request.data.CodComite, NroSubDocReferencia = request.data.CodComite, CodTablaRef = "TCOM" }); return(Unit.Value); } catch (Exception e) { throw e; } }