Пример #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
                };

                _context.Curso.Add(curso);

                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };

                        _context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                var valor = await _context.SaveChangesAsync(); //Devuelve el número de operaciones que se realian sobre la base de datos

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso");
            }
        public async Task <IActionResult> Edit(int id, [Bind("CursoId,InstructorId")] CursoInstructor cursoInstructor)
        {
            if (id != cursoInstructor.CursoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cursoInstructor);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CursoInstructorExists(cursoInstructor.CursoId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CursoId"]      = new SelectList(_context.Curso, "Id", "Descripcion", cursoInstructor.CursoId);
            ViewData["InstructorId"] = new SelectList(_context.Instructor, "Id", "Cargo", cursoInstructor.InstructorId);
            return(View(cursoInstructor));
        }
Пример #3
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
                };

                if (request.ListaInstructor != null)
                {
                    foreach (var item in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor {
                            CursoId      = curso.CursoId,
                            InstructorId = item
                        };

                        context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                context.Curso.Add(curso);
                var valor = await context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso.");
            }
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid _cursoId = Guid.NewGuid();
                var  curso    = new Cursos {
                    CursosId         = _cursoId,
                    Titulo           = request.Titulo,
                    Descripcion      = request.Descripcion,
                    FechaPublicacion = request.FechaPublicacion
                };

                _context.Cursos.Add(curso);
                ////Validacion para tablas intermedias
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor {
                            CursosId     = _cursoId,
                            InstructorId = id
                        };
                        _context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                var valor = await _context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso");
            }
Пример #5
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = _context.Curso.Find(request.CursoId);

                if (curso == null)
                {
                    //throw new Exception("No se pudo encontrar el curso");
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new{ curso = "No se encontró el curso" });
                }

                curso.titulo           = request.titulo ?? curso.titulo;
                curso.descripcion      = request.descripcion ?? curso.descripcion;
                curso.FechaPublicacion = request.fechaPublicacion ?? curso.FechaPublicacion;

                //Para actualizar el precio del curso

                var precioEntidad = _context.Precio.Where(x => x.PrecioId == curso.PrecioId).FirstOrDefault();

                if (precioEntidad != null)
                {
                    precioEntidad.precioActual = request.precioActual ?? precioEntidad.precioActual;
                    precioEntidad.promocion    = request.precioPromocion ?? precioEntidad.promocion;
                }

                if (request.ListaInstructor != null)
                {
                    if (request.ListaInstructor.Count > 0)
                    {
                        var instructoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList();

                        //Para eliminar los instructores de este curso
                        foreach (var id in instructoresBD)
                        {
                            _context.CursoInstructor.Remove(id);
                        }

                        //Para agregar los instructores que esta ingresando el usuario
                        foreach (var id in request.ListaInstructor)
                        {
                            var nuevoInstructor = new CursoInstructor {
                                CursoId      = request.CursoId,
                                InstructorId = id
                            };

                            _context.CursoInstructor.Add(nuevoInstructor);
                        }
                    }
                }

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se guardaron los cambios en el curso");
            }
Пример #6
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                //Se agrega esta logica para ver si recibimos un guid del frontend, validar para no crear una nuevo
                Guid _cursoId = Guid.NewGuid();

                if (request.CursoId != null)
                {
                    _cursoId = request.CursoId ?? Guid.NewGuid();
                }
                //Inserta datos a la tabla Curso
                var curso = new Curso {
                    CursoId          = _cursoId,
                    Titulo           = request.Titulo,
                    Descripcion      = request.Descripcion,
                    FechaPublicacion = request.FechaPublicacion,
                    FechaCreacion    = DateTime.UtcNow //Que significa utc? Coodinated Universal Time (UTC) es una nomenclatura de tiempo stander
                };

                _context.Add(curso);

                //Inserta datos a la tabla CursoInstructor
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoIsntructor = new CursoInstructor {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };
                        _context.CursoInstructor.Add(cursoIsntructor);
                    }
                }

                //Insertar datos a la tabla Precio
                var precioEntidad = new Precio()
                {
                    CursoId         = _cursoId,
                    PrecioActual    = request.Precio,
                    PrecioPromocion = request.PrecioPromocion,
                    PrecioId        = Guid.NewGuid()
                };

                _context.Precio.Add(precioEntidad);

                var valor = await _context.SaveChangesAsync();//Devuelte el numero de operaciones que se esta realizando sobre la data en la db

                //Derrenpete estas insertando solo un curso y ningun instrcutor entonces el valor es 1
                //pero si se inserta un curso y ademas 3 instructor seria 4

                if (valor > 0)
                {
                    return(Unit.Value); //Es mandarle un flak una alerta ;
                }

                throw new Exception("No se Pudo Insertar el Curso");
            }
Пример #7
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid _cursoId = Guid.NewGuid();

                // crear el nuevo curso
                var curso = new Curso
                {
                    CursoId          = _cursoId,
                    Titulo           = request.Titulo,
                    Descripcion      = request.Descripcion,
                    FechaPublicacion = request.FechaPublicacion,
                    FechaCreacion    = DateTime.UtcNow
                };

                // agregar el curso a la DB
                this._context.Add(curso);

                // agregar los CursoInstructor relacionados a cada modelo Curso
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };

                        this._context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                // generar un nuevo precio para el curso recien creado
                var precioEntidad = new Precio
                {
                    CursoId      = _cursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid()
                };

                // agregar el precio a la DB
                this._context.Precio.Add(precioEntidad);

                // operation devuelve a lista de operaciones realizadas por la DB, un numero por cada operacion
                var operation = await this._context.SaveChangesAsync();

                // se verifica si la operacion de guardado fue exitosa
                if (operation > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el nuevo Curso");
            }
Пример #8
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="request"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            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
                };

                _cursosContext.Curso.Add(curso);


                //Instructores
                if (request.ListaInstructor != null)
                {
                    CursoInstructor cursoInstructor = null;
                    foreach (var id in request.ListaInstructor)
                    {
                        cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };

                        _cursosContext.CursoInstructor.Add(cursoInstructor);
                    }
                }


                //Precio
                var precioEntidad = new Precio
                {
                    CursoId      = _cursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid()
                };

                _cursosContext.Precio.Add(precioEntidad);


                var valor = await _cursosContext.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }


                throw new Exception("No se puede insertar el curso");
            }
Пример #9
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid cursoId = Guid.NewGuid();

                if (request.CursoId != null)
                {
                    cursoId = request.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 CursoInstructor
                        {
                            CursoId      = curso.CursoId,
                            InstructorId = id
                        };
                        context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                /* Agregar logica para insertar un precio del curso*/

                Precio precio = new Precio
                {
                    CursoId      = curso.CursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.PrecioPromocion,
                    PrecioId     = Guid.NewGuid()
                };

                context.Precio.Add(precio);

                var valor = await context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso");
            }
Пример #10
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid _cursoId = Guid.NewGuid();

                if (request.CursoId != null)
                {
                    _cursoId = request.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);

                // Validamos si hay instructores, en caso de haber, inserta
                if (request.ListInstructor != null)
                {
                    foreach (var id in request.ListInstructor)
                    {
                        var cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };

                        _context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                // Agregamos Precio
                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("No se pudo insertar el valor");
            }
Пример #11
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid cursoId = request.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 CursoInstructor
                        {
                            CursoId      = cursoId,
                            InstructorId = id
                        };

                        this._context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                var precioEntidad = new Precio
                {
                    CursoId      = cursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid()
                };

                this._context.Precio.Add(precioEntidad);



                // Devuelve la cantidad de transacciones que se realizaron.
                // Si se devuelve 0, ocurrio algun error.
                var valor = await _context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso.");
            }
        public async Task <IActionResult> Create([Bind("CursoId,InstructorId")] CursoInstructor cursoInstructor)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cursoInstructor);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CursoId"]      = new SelectList(_context.Curso, "Id", "Descripcion", cursoInstructor.CursoId);
            ViewData["InstructorId"] = new SelectList(_context.Instructor, "Id", "Cargo", cursoInstructor.InstructorId);
            return(View(cursoInstructor));
        }
Пример #13
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                // se agrega guid para obtener la clave que se insertará posterior a CursoInstructor
                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);

                // Llamar a ListaInstructor e insertar los instructores relacionados con el curso
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };

                        context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                // inserción de precio
                var precioEntidad = new Precio
                {
                    CursoId      = _cursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid()
                };

                context.Precio.Add(precioEntidad);

                // valor = 0, error. valor = 1, se realizó una transacción, valor = 2, dos transacciones
                var valor = await context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso");
            }
Пример #14
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid _cursoId = Guid.NewGuid();

                if (request.CursoId != null)
                {
                    _cursoId = request.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);

                //lamar a la lista instructores
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };
                        _context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                //agregar logica del precio del curso
                var precioEntidad = new Precio {
                    CursoId      = _cursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid()
                };

                _context.Precio.Add(precioEntidad);

                var valor = await _context.SaveChangesAsync();//Devolver un estado de la transaccion 0 = no se hizo transacciones

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso");
            }
Пример #15
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await _context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    //throw new Exception("No se puede eliminar el curso");
                    throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" });
                }
                curso.Titulo           = request.Titulo ?? request.Titulo;
                curso.Descripcion      = request.Descripcion ?? request.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? request.FechaPublicacion;

                if (request.ListaInstructor != null)
                {
                }
                {
                    if (request.ListaInstructor.Count > 0)
                    {
                        /*Eliminar instructores actuales en la base de datos*/
                        var instructoresDB = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList();
                        foreach (var instructorEliminar in instructoresDB)
                        {
                            _context.CursoInstructor.Remove(instructorEliminar);
                        }
                        //Fin procedimiento

                        /*Procedimiento para agregar instructores provinientes del cliente*/
                        foreach (var ids in request.ListaInstructor)
                        {
                            var nuevoInstructor = new CursoInstructor
                            {
                                CursoId      = request.CursoId,
                                InstructorId = ids
                            };
                            _context.CursoInstructor.Add(nuevoInstructor);
                        }
                        //Fin del procedimiento
                    }
                }


                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se guardaron los cambios en el curso");
            }
Пример #16
0
            public async Task <Unit> Handle(Ejecutar request, CancellationToken cancellationToken)
            {
                Guid _cursoId = new Guid();

                var newCurso = new Curso()
                {
                    CursoId          = _cursoId,
                    Titulo           = request.Titulo,
                    Descripcion      = request.Descripcion,
                    FechaPublicacion = request.FechaPublicacion,
                    FechaDeCreacion  = DateTime.UtcNow
                };

                Context.curso.Add(newCurso);


                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor {
                            CursoId      = newCurso.CursoId,
                            InstructorId = id
                        };
                        Context.cursoInstructor.Add(cursoInstructor);
                    }
                }

                /*Logica para agregar el precio*/

                var precioEntidad = new Precio {
                    CursoId      = newCurso.CursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid(),
                };

                Context.precio.Add(precioEntidad);

                var result = await Context.SaveChangesAsync();

                if (result > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso");
            }
Пример #17
0
            //CancellationToken -> cuando el cliente cancela la transacción con el server.
            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
                };

                _context.Cursos.Add(curso);

                //Instructores del curso
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };
                        _context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                //Precio del curso
                var precioEntidad = new Precio
                {
                    CursoId      = _cursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid()
                };

                _context.Precios.Add(precioEntidad);

                //Devuelve un estado de la transacción 0- error al insertar, 1 o mayor a 1 -> transacción OK, numero de filas afectadas
                var valor = await _context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso");
            }
Пример #18
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 CursoInstructor
                        {
                            CursoId      = cursoId,
                            InstructorId = id
                        };
                        this.context.CursoInstructor.Add(cursoInstructor);
                    }
                }

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

                this.context.Precio.Add(precio);

                var valor = await context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new ManejadorExepcion(HttpStatusCode.InternalServerError, new { mensaje = "No se pudo Agregar el Curso" });
            }
Пример #19
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);

                // Graba los instructores del curso
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };
                        _context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                // Insertar precio del curso nuevo
                var precioEntidad = new Precio {
                    CursoId      = _cursoId,
                    PrecioActual = request.Precio,
                    Promocion    = request.Promocion,
                    PrecioId     = Guid.NewGuid()
                };

                _context.Precio.Add(precioEntidad);

                var valor = await _context.SaveChangesAsync();

                // valor = 0 es que no hubo transacción
                if (valor > 0)
                {
                    return(Unit.Value);  // y se termina la transacción
                }

                // Si se produce error, o sea, valor = 0
                throw new Exception("No se pudo insertar el curso.");
            }
Пример #20
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
                };

                _contextSeed.Curso.Add(curso);

                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };
                        _contextSeed.CursoInstructor.Add(cursoInstructor);
                    }
                }
                //agregar logica para insertar un precio del curso.

                var precioEntidad = new Precio
                {
                    CursoId         = _cursoId,
                    PrecioActual    = request.Precio,
                    PrecioPromocion = request.Promocion,
                    PrecioId        = Guid.NewGuid()
                };

                _contextSeed.Precio.Add(precioEntidad);

                //guardando en la BD (savechangesasync)
                var valor = await _contextSeed.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se puedo insertar el curso");
            }
Пример #21
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid _cursoId = Guid.NewGuid();
                var  crear    = new Curso
                {
                    CursoId          = _cursoId,
                    Titulo           = request.Titulo,
                    Descripcion      = request.Descripcion,
                    FechaPublicacion = request.FechaPublicacion
                };

                _context.Curso.Add(crear);
                if (request.ListaInstructor != null)
                {
                    foreach (var id in request.ListaInstructor)
                    {
                        var cursoInstructor = new CursoInstructor
                        {
                            CursoId      = _cursoId,
                            InstructorId = id
                        };
                        _context.CursoInstructor.Add(cursoInstructor);
                    }
                }

                //logica para insertar un prcio al curso creado
                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("No se Inserto el Curso");
            }
Пример #22
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso." });
                }

                curso.Titulo           = request.Titulo ?? curso.Titulo;
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;

                if (request.ListaInstructor != null && request.ListaInstructor.Any())
                {
                    var instructoresBD = context.CursoInstructor.Where(w => w.CursoId == request.CursoId).ToList();
                    foreach (var _instructor in instructoresBD)
                    {
                        context.CursoInstructor.Remove(_instructor);
                    }

                    foreach (var _instructorId in request.ListaInstructor)
                    {
                        var nuevoInstructor = new CursoInstructor {
                            CursoId      = request.CursoId,
                            InstructorId = _instructorId
                        };

                        context.CursoInstructor.Add(nuevoInstructor);
                    }
                }

                var valor = await context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el curso.");
            }
Пример #23
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await _context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" });
                }

                curso.Titulo           = request.Titulo ?? curso.Titulo;
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaCreacion    = DateTime.UtcNow;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;

                //Actualizar precio de curso
                var precioEntidad = _context.Precio.Where(x => x.CursoId.Equals(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 instructores existentes del curso
                        var instructoresDb = _context.CursoInstructor.Where(x => x.CursoId.Equals(request.CursoId)).ToList();
                        foreach (var itemInstructor in instructoresDb)
                        {
                            _context.CursoInstructor.Remove(itemInstructor);
                        }

                        // agregar instructores desde el cliente
                        foreach (var id in request.ListaInstructor)
                        {
                            var nuevoInstructor = new CursoInstructor {
                                CursoId      = request.CursoId,
                                InstructorId = id
                            };
                            _context.CursoInstructor.Add(nuevoInstructor);
                        }
                    }
                }

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                else
                {
                    throw new ManejadorExcepcion(HttpStatusCode.NotModified, new { mensaje = "No se guardaron los cambios en el curso" });
                }
            }
Пример #24
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await _context.Cursos.FindAsync(request.CursoId);

                if (curso == null)
                {
                    throw new ExceptionHandler(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" });
                }

                curso.Titulo           = request.Titulo ?? curso.Titulo;
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;

                //Actualizar precio curso
                var precioEntidad = _context.Precios.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.Precios.AddAsync(precioEntidad);
                }

                if (request.ListaInstructores != null)
                {
                    if (request.ListaInstructores.Count > 0)
                    {
                        //Eliminar los instructores actuales del curso.
                        var instructoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList();
                        foreach (var instructor in instructoresBD)
                        {
                            _context.CursoInstructor.Remove(instructor);
                        }
                        //Agregar instructores que vienen del cliente
                        foreach (var id in request.ListaInstructores)
                        {
                            var nuevoInstructor = new CursoInstructor
                            {
                                CursoId      = request.CursoId,
                                InstructorId = id
                            };
                            _context.CursoInstructor.Add(nuevoInstructor);
                        }
                    }
                }

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se guardaron los cambios en el curso.");
            }
Пример #25
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await _context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    throw new ManejadorException(HttpStatusCode.NotFound, new { curso = "No se encontro el curso" });
                }
                curso.Titulo           = request.Titulo ?? curso.Titulo;
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;

                /* Actualizar el precio del curso */
                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.Promocion ?? 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 del curso en la base de datos*/
                        var InstructoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList();
                        foreach (var instructorEliminar in InstructoresBD)
                        {
                            _context.CursoInstructor.Remove(instructorEliminar);
                        }
                        /*Fin del procedimiento para eliminar Instructores*/
                        /*Procedimiento para agregar instructores que provienen del cliente*/
                        foreach (var id in request.ListaInstructor)
                        {
                            var nuevoInstructor = new CursoInstructor {
                                CursoId      = request.CursoId,
                                InstructorId = id
                            };
                            _context.CursoInstructor.Add(nuevoInstructor);
                        }
                    }
                }

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se guardaron los cambios en el curso paps");
            }
Пример #26
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    throw new ManejadorExepcion(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;

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

                if (precio != null)
                {
                    precio.PrecioActual = request.Precio ?? precio.PrecioActual;
                    precio.Promocion    = request.PrecioPromocion ?? precio.Promocion;
                }
                else
                {
                    precio = new Precio
                    {
                        PrecioId     = Guid.NewGuid(),
                        PrecioActual = request.Precio ?? 0,
                        Promocion    = request.PrecioPromocion ?? 0,
                        CursoId      = curso.CursoId
                    };
                    this.context.Precio.Add(precio);
                }

                if (request.ListaInstructor != null)
                {
                    if (request.ListaInstructor.Count > 0)
                    {
                        // Eliminar de la base de datos
                        var instructoresDB = this.context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList();
                        foreach (var instructorEliminar in instructoresDB)
                        {
                            this.context.CursoInstructor.Remove(instructorEliminar);
                        }

                        // Agregar los que vienen del cliente
                        foreach (var id in request.ListaInstructor)
                        {
                            var cursoInstructor = new CursoInstructor
                            {
                                CursoId      = request.CursoId,
                                InstructorId = id
                            };
                            this.context.CursoInstructor.Add(cursoInstructor);
                        }
                    }
                }

                //context.Curso.Update(curso);
                var valor = await context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new ManejadorExepcion(HttpStatusCode.InternalServerError, new { mensaje = "No se pudo Editar el Curso" });
            }
Пример #27
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var editar = await _context.Curso.FindAsync(request.CursoId);

                if (editar == null)
                {
                    //throw new Exception("El Curso no Existe");
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { curso = "No se encontro el curso" });
                }

                editar.Titulo           = request.Titulo ?? editar.Titulo;
                editar.Descripcion      = request.Descripcion ?? editar.Titulo;
                editar.FechaPublicacion = request.FechaPublicacion ?? editar.FechaPublicacion;

                //actualizar el precio del curso
                var precioentidad = _context.Precio.Where(x => x.CursoId == editar.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      = editar.CursoId
                    };
                    await _context.Precio.AddAsync(precioentidad);
                }
                ///fin


                if (request.ListaInstructor != null)
                {
                    if (request.ListaInstructor.Count > 0)
                    {
                        //Eliminar los instructores actuales de la base de
                        var instructorDB = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId);
                        foreach (var instructoreliminar in instructorDB)
                        {
                            _context.CursoInstructor.Remove(instructoreliminar);
                        }
                        //fin del procedimeiento para eliminar inst

                        //Agregar instructores que provienen del cliente
                        foreach (var id in request.ListaInstructor)
                        {
                            var nuevoinstructor = new CursoInstructor
                            {
                                CursoId      = request.CursoId,
                                InstructorId = id,
                            }; _context.CursoInstructor.Add(nuevoinstructor);
                            //fin
                        }
                    }
                }
                var valor = await _context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se Edito el Curso");
            }
Пример #28
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await _context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { curso = "No se encontro el curso" });
                }

                curso.Titulo           = request.Titulo ?? curso.Titulo;
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;

                // Actulizar Precio del Curso
                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)
                    {
                        var instrucoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId);
                        // Eliminados todos los Instructores que estan en la base
                        foreach (var instructor in instrucoresBD)
                        {
                            _context.CursoInstructor.Remove(instructor);
                        }

                        // Insertamos todos los instructores nuevos traidos desde el front
                        foreach (var ids in request.ListaInstructor)
                        {
                            var nuevoInstructor = new CursoInstructor
                            {
                                CursoId      = request.CursoId,
                                InstructorId = ids
                            };

                            _context.CursoInstructor.Add(nuevoInstructor);
                        }
                    }
                }

                var result = await _context.SaveChangesAsync();

                if (result > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se guardaron los cambios en el curso");
            }
Пример #29
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await Context.curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    //throw new Exception("No se puede eliminar el curso");

                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { curso = "El curso no existe" });
                }

                curso.Titulo           = request.Titulo ?? curso.Titulo;
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;
                curso.FechaDeCreacion  = DateTime.UtcNow;

                /*Actualizar el precio del curso*/

                var cursoPrecio = Context.precio.Where(curso => curso.CursoId == request.CursoId).FirstOrDefault();

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

                    await Context.precio.AddAsync(precioEntidad);
                }

                if (request.ListaInstructor != null && request.ListaInstructor.Count > 0)
                {
                    var instructoresBD = Context.cursoInstructor.Where(x => x.CursoId == request.CursoId).ToList();

                    /*Elimina los instructores actuales del curso en la base de datos*/
                    foreach (var instructoresEliminar in instructoresBD)
                    {
                        Context.cursoInstructor.Remove(instructoresEliminar);
                    }

                    /*Procedimiento para agregar a los nuevos instructores del cliente*/
                    foreach (var instructorId in request.ListaInstructor)
                    {
                        var nuevoInstructor = new CursoInstructor {
                            CursoId      = request.CursoId,
                            InstructorId = instructorId
                        };

                        Context.cursoInstructor.Add(nuevoInstructor);
                    }
                }

                var result = await Context.SaveChangesAsync();

                if (result > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se guardaron los cambios en el curso.");
            }
Пример #30
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var curso = await _context.Curso.FindAsync(request.CursoId);

                if (curso == null)
                {
                    throw new ManejadorException(HttpStatusCode.NotFound, new {
                        mensaje = "No se encontro el curso"
                    });
                }

                curso.Titulo           = request.Titulo ?? curso.Titulo; // El operador ??  => lo que hace es validar si esta varibale(request.Titulo  es indifinida o null pone el valor que se le asigne a la rderecha
                curso.Descripcion      = request.Descripcion ?? curso.Descripcion;
                curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion;
                curso.FechaCreacion    = DateTime.UtcNow;

                /*Actualizar el precio del curso*/
                var precioEntidad = _context.Precio.Where(x => x.CursoId == curso.CursoId).FirstOrDefault();

                if (precioEntidad != null)
                {
                    precioEntidad.PrecioPromocion = request.PrecioPromocion ?? precioEntidad.PrecioPromocion;
                    precioEntidad.PrecioActual    = request.Precio ?? precioEntidad.PrecioPromocion;
                }
                else  //En caso no tenga precio se ingresara el precio
                {
                    precioEntidad = new Precio {
                        PrecioId        = Guid.NewGuid(),
                        PrecioActual    = request.Precio ?? 0,
                        PrecioPromocion = request.PrecioPromocion ?? 0,
                        CursoId         = curso.CursoId
                    };
                    await _context.Precio.AddAsync(precioEntidad);
                }


                if (request.ListaInstructor != null)
                {
                    if (request.ListaInstructor.Count > 0)
                    {
                        /*Eliminar  los instructores actuales  del curso en la base de datos*/

                        //Esto devuleve un arreglo de codigos guid de instructor que estan en la db
                        var instructoresDB = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList();
                        foreach (var instructoEliminar in instructoresDB)
                        {
                            _context.CursoInstructor.Remove(instructoEliminar);
                        }

                        /*Procedimento para agregar instructores que viene del cliente*/
                        foreach (var id in request.ListaInstructor)
                        {
                            var nuevoInstructor = new CursoInstructor {
                                CursoId      = request.CursoId,
                                InstructorId = id
                            };
                            _context.CursoInstructor.Add(nuevoInstructor);
                        }
                    }
                }

                var valor = await _context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se pudieron guardar los cambios al curso");
            }