public async Task Select_ProyectoSeleccionados()
        {
            using (context)
            {
                //Arrange

                var controller = new SolicitudesController(context);
                controller.ControllerContext.HttpContext = solicitudContext;
                String[] ids = new string[1] {
                    "1"
                };

                SelectedProyectosForSolicitudViewModel proyectos = new SelectedProyectosForSolicitudViewModel {
                    IdsToAdd = ids
                };

                // Act

                var result = controller.SelectProyectosForSolicitud(proyectos);

                // Assert
                var viewResult = Assert.IsType <RedirectToActionResult>(result);
                Assert.Equal(viewResult.ActionName, "Create");
                var resultadoproyectos = viewResult.RouteValues.Values.First();
                Assert.Equal(proyectos.IdsToAdd, resultadoproyectos);
            }
        }
        public async Task Select_NoProyectoSeleccionados()
        {
            using (context)
            {
                //Arrange

                var controller = new SolicitudesController(context);
                controller.ControllerContext.HttpContext = solicitudContext;
                var proyectosesperados = new Proyecto[2]
                {
                    new Proyecto {
                        ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 70000, Interes = null, MinInversion = 50, Nombre = "POCHOLO RULES", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = null
                    },
                    new Proyecto {
                        ProyectoId = 2, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = null, MinInversion = 50, Nombre = "GRE-GYM", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = null
                    }
                };
                //Areas y Tipos que se espera que se retornen

                var tiposEsperados = new TiposInversiones[1] {
                    new TiposInversiones {
                        Nombre = "Crowdfunding"
                    }
                };
                var areasEsperadas = new Areas[1] {
                    new Areas {
                        Nombre = "TIC"
                    }
                };

                SelectedProyectosForSolicitudViewModel proyectos = new SelectedProyectosForSolicitudViewModel {
                    IdsToAdd = null
                };

                // Act

                var result = controller.SelectProyectosForSolicitud(proyectos);

                // Assert
                var viewResult = Assert.IsType <ViewResult>(result);
                SelectProyectosForSolicitudViewModel model = viewResult.Model as SelectProyectosForSolicitudViewModel;
                //Comprobamos los proyectos devueltos
                Assert.Equal(proyectosesperados, model.proyectos, Comparer.Get <Proyecto>((p1, p2) => p1.Nombre == p2.Nombre &&
                                                                                          p1.Importe == p2.Importe && p1.MinInversion == p2.MinInversion && p1.Progreso == p2.Progreso && p1.ProyectoId == p2.ProyectoId));
                //Comprobamos las areas y tipos devueltos
                Assert.Equal(tiposEsperados, model.Tipos, Comparer.Get <TiposInversiones>((p1, p2) => p1.Nombre == p2.Nombre));
                Assert.Equal(areasEsperadas, model.areas, Comparer.Get <Areas>((p1, p2) => p1.Nombre == p2.Nombre));
            }
        }
Exemple #3
0
        // GET: Solicitudes/Create
        public IActionResult Create(SelectedProyectosForSolicitudViewModel selectedProyectos)
        {
            Proyecto proyecto;
            int      id;
            SolicitudesCreateViewModel solicitud = new SolicitudesCreateViewModel();

            solicitud.Solicitudes = new List <SolicitudCreateViewModel>();
            Trabajador trabajador = _context.Users.OfType <Trabajador>().FirstOrDefault <Trabajador>(u => u.UserName.Equals(User.Identity.Name));

            if (selectedProyectos.IdsToAdd == null)
            {
                ModelState.AddModelError("ProyectoNoSeleccionado", "Por favor, selecciona un proyecto para poder crear la solicitud");
            }
            else if (selectedProyectos.IdsToAdd.Length == 0)
            {
                ModelState.AddModelError("ProyectoNoSeleccionado", "Por favor, selecciona un proyecto para poder crear la solicitud");
            }
            else
            {
                foreach (string ids in selectedProyectos.IdsToAdd)
                {
                    id       = int.Parse(ids);
                    proyecto = _context.Proyecto.Include(m => m.Rating).Where(m => m.RatingId == null).FirstOrDefault <Proyecto>(p => p.ProyectoId.Equals(id));
                    solicitud.Solicitudes.Add(new SolicitudCreateViewModel()
                    {
                        FechaSolicitud = DateTime.Now,
                        solicitud      = new Solicitud()
                        {
                            Proyecto = proyecto, Trabajador = trabajador
                        }
                    });
                }
            }

            solicitud.SecondSurname = trabajador.Apellido2;
            solicitud.FirstSurname  = trabajador.Apellido1;
            solicitud.Name          = trabajador.Nombre;


            ViewBag.Estados    = new SelectList(Enum.GetNames(typeof(StartGrow.Models.Estados)));
            ViewBag.Rating     = new SelectList(_context.Rating.Select(c => c.Nombre).Distinct());
            ViewBag.Trabajador = trabajador;

            return(View(solicitud));
        }
Exemple #4
0
        public IActionResult SelectProyectosForSolicitud(SelectedProyectosForSolicitudViewModel selectedproyectos)
        {
            if (selectedproyectos.IdsToAdd != null)
            {
                return(RedirectToAction("Create", selectedproyectos));
            }


            ModelState.AddModelError(string.Empty, "Debes seleccionar al menos 1 proyecto para publicar");

            SelectProyectosForSolicitudViewModel selectProyecto = new SelectProyectosForSolicitudViewModel();

            selectProyecto.areas     = _context.Areas;
            selectProyecto.Tipos     = _context.TiposInversiones;
            selectProyecto.proyectos = _context.Proyecto.Include(m => m.Rating).Include(m => m.ProyectoAreas).
                                       ThenInclude <Proyecto, ProyectoAreas, Areas>(p => p.Areas).Include(p => p.ProyectoTiposInversiones).
                                       ThenInclude <Proyecto, ProyectoTiposInversiones, TiposInversiones>(p => p.TiposInversiones).Where(m => m.RatingId == null);
            return(View(selectProyecto));
        }