Example #1
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid _CursoId = Guid.NewGuid();
                var  curso    = new Curso
                {
                    CursoId          = _CursoId,
                    Titulo           = request.Titulo,
                    Descripcion      = request.Descripcion,
                    FechaPublicacion = request.FechaPublicacion,
                    FechaCreacion    = DateTime.UtcNow
                };

                context.Curso.Add(curso);

                if (request.ListaInstructor == null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var _cursoInstructor = new Curso_Instructor
                        {
                            CursoId      = _CursoId,
                            InstructorId = id
                        };
                        context.Curso_Instructor.Add(_cursoInstructor);
                    }
                }

                var PrecioEntidad = new Precio
                {
                    CursoId      = _CursoId,
                    PrecioActual = request.precio,
                    Promocion    = request.promocion,
                    PrecioId     = Guid.NewGuid()
                };

                context.Precio.Add(PrecioEntidad);

                var valor = await context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("Error al ingresar el curso");
            }
Example #2
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    {
                        //throw new Exception("Curso no existe..!");
                        throw new ManejadorException(HttpStatusCode.NotFound, new { Mensaje = "No se encontro el curso" });
                    }
                }
                curso.Titulo           = request.Titulo ?? curso.Titulo;
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;
                curso.FechaPublicacion = DateTime.UtcNow;

                var precioEntidad = context.Precio.Where(x => x.CursoId == curso.CursoId).FirstOrDefault();

                if (precioEntidad != null)
                {
                    precioEntidad.Promocion    = request.Promocion ?? precioEntidad.Promocion;
                    precioEntidad.PrecioActual = request.Precio ?? precioEntidad.PrecioActual;
                }
                else
                {
                    precioEntidad = new Precio
                    {
                        PrecioId     = Guid.NewGuid(),
                        PrecioActual = request.Precio ?? 0,
                        Promocion    = request.Promocion ?? 0,
                        CursoId      = curso.CursoId
                    };
                    await context.Precio.AddAsync(precioEntidad);
                }

                if (request.ListaInstructor != null)
                {
                    if (request.ListaInstructor.Count > 0)
                    {
                        /*Eliminar los instructores actuales de la bd*/
                        var instructoresbd = context.Curso_Instructor
                                             .Where(x => x.CursoId == request.CursoId).ToList();
                        foreach (var InstructorEliminar in instructoresbd)
                        {
                            context.Curso_Instructor.Remove(InstructorEliminar);
                        }
                        /*Fin Eliminados*/

                        /*Agregar instructores que provienen del cliente*/
                        foreach (var ids in request.ListaInstructor)
                        {
                            var NuevoInstructor = new Curso_Instructor
                            {
                                CursoId      = request.CursoId,
                                InstructorId = ids
                            };
                            await context.Curso_Instructor.AddAsync(NuevoInstructor);
                        }
                    }
                }

                var resultado = await context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("Error al editar el curso");
            }