Example #1
0
            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;
                }
            }
Example #2
0
            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;
                }
            }