コード例 #1
0
        public async Task <IActionResult> Index()
        {
            IdentityUser user = await _userManager.FindByIdAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            Logica.BL.Tenants tenants = new Logica.BL.Tenants();
            var tenant = tenants.GetTenants(user.Id).FirstOrDefault();

            Logica.BL.Projects projects = new Logica.BL.Projects();
            var result = await _userManager.IsInRoleAsync(user, "Admin") ?
                         projects.GetProjects(null, tenant.Id):
                         projects.GetProjects(null, tenant.Id, user.Id);

            var listProjects = result.Select(x => new Logica.Models.ViewModel.ProjectsIndexViewModel
            {
                Id        = x.Id,
                Title     = x.Title,
                Details   = x.Details,
                CreatedAt = x.CreatedAt,
                ExpectedCompletionDate = x.ExpectedCompletionDate,
                UpdateAt = x.UpdatedAt
            });

            listProjects = tenant.Plan.Equals("premium") ?
                           listProjects :
                           listProjects.Take(1).ToList();

            //ViewBag.listProjects = listProjects; more 1 models


            return(View(listProjects));// return view has  the same name of action
        }
コード例 #2
0
        public async Task <IActionResult> Index()
        {
            IdentityUser user = await _userManager.FindByIdAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            Logica.BL.Tenants tenants = new Logica.BL.Tenants();
            var tenant = tenants.GetTenants(user.Id).FirstOrDefault();

            Logica.BL.Projects projects = new Logica.BL.Projects();
            var result = await _userManager.IsInRoleAsync(user, "Admin") ?
                         projects.GetProjects(null, tenant.Id) :         //Aplica filtro si es admistrador
                         projects.GetProjects(null, tenant.Id, user.Id); // aplica filtro si es usuario invtado

            var listProjects = result.Select(x => new Logica.Models.ViewModel.ProjectsIndexViewModel
            {
                Id        = x.Id,
                Title     = x.Title,
                Details   = x.Details,
                CreatedAt = x.CreatedAt,
                ExpectedCompletionDate = x.ExpectedCompletionDate,
                UpdatedAt = x.UpdatedAt
            });

            listProjects = tenant.Plan.Equals("premium") ?
                           listProjects :
                           listProjects.Take(1).ToList();

            return(View(listProjects)); //retrona la vista igual que la accion
        }
コード例 #3
0
        public async Task <IActionResult> Index()
        {
            IdentityUser user = await _userManager.FindByIdAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            Logica.BL.Tenants tenants = new Logica.BL.Tenants();

            var tenent = tenants.GetTenants(user.Id).FirstOrDefault();

            Logica.BL.Projects projects = new Logica.BL.Projects();
            var result = await _userManager.IsInRoleAsync(user, "Admin") ?
                         projects.GetProjects(null, tenent.Id) :
                         projects.GetProjects(null, tenent.Id, user.Id);

            var listProject = result.Select(x => new Logica.Models.ViewModel.ProjectsIndexViewModel
            {
                Id        = x.Id,
                Title     = x.Title,
                Details   = x.Details,
                CreatedAt = x.CreatedAt,
                ExpectedCompletionDate = x.ExpectedCompletionDate,
                UpdatedAt = x.UpdatedAt
            });

            listProject = tenent.Plan.Equals("free") ?
                          listProject :
                          listProject.Take(1).ToList();

            return(View(listProject)); //Retorna a la vista que se llame igual que la accion
        }
コード例 #4
0
        // GET: Tasks
        public ActionResult Index(int?projectId)
        {
            Logica.BL.Tasks tasks     = new Logica.BL.Tasks();
            var             listTasks = tasks.GetTasks(projectId, null);

            var listTasksViewModel = listTasks.Select(x => new Logica.Models.ViewModels.TasksIndexViewModel
            {
                Id             = x.Id,
                Title          = x.Title,
                Details        = x.Details,
                ExpirationDate = x.ExpirationDate,
                IsCompleted    = x.IsCompleted,
                Effort         = x.Effort,
                RemainingWork  = x.RemainingWork,
                State          = x.States.Name,
                Activity       = x.Activities.Name,
                Priority       = x.Priorities.Name
            }).ToList();

            Logica.BL.Projects projects = new Logica.BL.Projects();
            var project = projects.GetProjects(projectId, null).FirstOrDefault();

            ViewBag.Project = project;

            return(View(listTasksViewModel));
        }
コード例 #5
0
 public IActionResult Delete(int?id)
 {
     Logica.BL.Projects projects = new Logica.BL.Projects();
     projects.DeleteProjects(id);
     return(RedirectToAction("Index"));
     //return RedirectToAction("Index","Project"); direcciona a otroa vista
 }
コード例 #6
0
        public ActionResult Delete(int?id)
        {
            Logica.BL.Projects projects = new Logica.BL.Projects();
            projects.DeleteProjects(id);

            return(RedirectToAction("Index"));
        }
コード例 #7
0
        // GET: Projects
        public async Task <ActionResult> Index()
        {
            //Recupero el Usuario en sesion
            ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

            //Consulta la organizacion del usuario que esta ingresando al sistema
            Logica.BL.Tenants tenants = new Logica.BL.Tenants();
            var tenant = tenants.GetTenants(user.Id).FirstOrDefault();

            Logica.BL.Projects projects = new Logica.BL.Projects();

            var result = await UserManager.IsInRoleAsync(user.Id, "Admin") ?
                         projects.GetProjects(null, tenant.Id) :         //Si es admin consulta todos los proyectos de la organizacion
                         projects.GetProjects(null, tenant.Id, user.Id); //si es miembro consulta los projectos de la organizacion que le pertenezca

            var listprojects = result.Select(x => new Logica.Models.ViewModels.ProjectsIndexViewModel
            {
                Id      = x.Id,
                Title   = x.Title,
                Details = x.Details,
                ExpectedCompletionDate = x.ExpectedCompletionDate,
                CreatedAt = x.CreatedAt,
                UpdatedAt = x.UpdatedAt
            });

            listprojects = tenant.Plan.Equals("Premium") ?
                           listprojects :
                           listprojects.Take(1).ToList();

            return(View(listprojects));
        }
コード例 #8
0
        public ActionResult GetProject(int?id)
        {
            try
            {
                Logica.BL.Projects projects = new Logica.BL.Projects();
                var project = projects.GetProjects(id, null).FirstOrDefault();

                var projectDetailsViewModel = new Logica.Models.ViewModels.ProjectsDetailsViewModel
                {
                    Details = project.Details,
                    ExpectedCompletionDateString = project.ExpectedCompletionDate == null ? string.Empty : project.ExpectedCompletionDate.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                    Title           = project.Title,
                    CreatedAtString = project.CreatedAt == null ? string.Empty : project.CreatedAt.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                    UpdatedAtString = project.UpdatedAt == null ? string.Empty : project.UpdatedAt.Value.ToString("yyyy-MM-dd HH:mm:ss")
                };

                return(Json(new
                {
                    IsSuccessful = true,
                    Data = projectDetailsViewModel
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new Logica.Models.ViewModels.ResponseViewModel
                {
                    IsSuccessful = false,
                    Errors = new List <string> {
                        ex.Message
                    }
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #9
0
        public IActionResult Delete(int?id)
        {
            Logica.BL.Projects projects = new Logica.BL.Projects();
            projects.DeleteProjects(id);
            return(RedirectToAction("Index"));

            //puedo redireccionar a acciones de otros controladores
        }
コード例 #10
0
        public IActionResult Calendar(int?projectId)
        {
            Logica.BL.Projects projects = new Logica.BL.Projects();
            var project = projects.GetPojects(projectId, null).FirstOrDefault();

            ViewBag.Project = project;
            return(View());
        }
コード例 #11
0
        public IActionResult Edit(Logica.Models.BindingModel.ProjectsEditBindingModel model)
        {
            if (ModelState.IsValid)
            {
                Logica.BL.Projects project = new Logica.BL.Projects();
                project.UpdateProjects(model.Id, model.Title, model.Details, model.ExpectedCompletionDate);

                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
コード例 #12
0
        public IActionResult Edit(int?id)
        {
            Logica.BL.Projects projects = new Logica.BL.Projects();
            var project             = projects.GetProjects(id, null).FirstOrDefault();
            var projectBindingModel = new Logica.Models.BindingModel.ProjectsEditBindingModel
            {
                Id      = project.Id,
                Details = project.Details,
                Title   = project.Title,
                ExpectedCompletionDate = project.ExpectedCompletionDate
            };

            return(View(projectBindingModel));
        }
コード例 #13
0
        // GET: Projects
        public async Task <ActionResult> GetProjects()
        {
            try
            {
                //Recupero el Usuario en sesion
                ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

                //Consulta la organizacion del usuario que esta ingresando al sistema
                Logica.BL.Tenants tenants = new Logica.BL.Tenants();
                var tenant = tenants.GetTenants(user.Id).FirstOrDefault();

                Logica.BL.Projects projects = new Logica.BL.Projects();

                var result = await UserManager.IsInRoleAsync(user.Id, "Admin") ?
                             projects.GetProjects(null, tenant.Id) :         //Si es admin consulta todos los proyectos de la organizacion
                             projects.GetProjects(null, tenant.Id, user.Id); //si es miembro consulta los projectos de la organizacion que le pertenezca

                var listprojects = result.Select(x => new Logica.Models.ViewModels.ProjectsIndexViewModel
                {
                    Id      = x.Id,
                    Title   = x.Title,
                    Details = x.Details,
                    ExpectedCompletionDatestring = x.ExpectedCompletionDate == null ? string.Empty : x.ExpectedCompletionDate.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                    CreatedAtstring = x.CreatedAt == null ? string.Empty : x.CreatedAt.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                    UpdatedAtstring = x.UpdatedAt == null ? " " : x.UpdatedAt.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                }).ToList();

                listprojects = tenant.Plan.Equals("Premium") ?
                               listprojects :
                               listprojects.Take(1).ToList();

                return(Json(new
                {
                    Data = listprojects,
                    IsSuccessful = true
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new Logica.Models.ViewModels.ResponseViewModel
                {
                    IsSuccessful = false,
                    Errors = new List <string> {
                        ex.Message
                    }
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #14
0
        public ActionResult Details(int?id)
        {
            Logica.BL.Projects projects = new Logica.BL.Projects();
            var project = projects.GetProjects(id, null).FirstOrDefault();

            var projectDetailsViewModel = new Logica.Models.ViewModels.ProjectsDetailsViewModel
            {
                Title   = project.Title,
                Details = project.Details,
                ExpectedCompletionDate = project.ExpectedCompletionDate,
                CreatedAt = project.CreatedAt,
                UpdatedAt = project.UpdatedAt
            };

            return(View(projectDetailsViewModel));
        }
コード例 #15
0
        public async Task <IActionResult> Create(ProyectoFinalClases.Logica.Models.BindingModel.ProjectsCreateBindingModel model)
        {
            if (ModelState.IsValid)
            {
                IdentityUser user = await _userManager.FindByIdAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value);

                Logica.BL.Tenants tenants = new Logica.BL.Tenants();
                var Tenant = tenants.GetTenants(user.Id).FirstOrDefault();

                Logica.BL.Projects projects = new Logica.BL.Projects();
                projects.CreateProjects(model.Title, model.Details, model.ExpectedCompletionDate, Tenant.Id);

                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
コード例 #16
0
        public IActionResult Detail(int id)
        {
            Logica.BL.Projects projects = new Logica.BL.Projects();
            var result = projects.GetProjects(id, null).FirstOrDefault();

            var projectEditModel = new Logica.Models.ViewModel.ProjectsIndexViewModel
            {
                Id      = result.Id,
                Details = result.Details,
                Title   = result.Title,
                ExpectedCompletionDate = result.ExpectedCompletionDate.Value,
                CreatedAt = result.CreatedAt,
                UpdatedAt = result.UpdatedAt
            };

            return(View(projectEditModel));
        }
コード例 #17
0
        // GET: Projects
        public async Task <ActionResult> GetProjects()
        {
            try
            {
                ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

                Logica.BL.Tenants tenants = new Logica.BL.Tenants();
                var tenant = tenants.GetTenants(user.Id).FirstOrDefault();

                Logica.BL.Projects projects = new Logica.BL.Projects();

                var result = await UserManager.IsInRoleAsync(user.Id, "Admin") ?
                             projects.GetProjects(null, tenant.Id) :
                             projects.GetProjects(null, tenant.Id, user.Id);

                var listProjects = result.Select(x => new Logica.Models.ViewModels.ProjectsIndexViewModel
                {
                    Id      = x.Id,
                    Title   = x.Title,
                    Details = x.Details,
                    ExpectedCompletionDateString = x.ExpectedCompletionDate == null ? string.Empty : x.ExpectedCompletionDate.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                    CreatedAtString = x.CreatedAt == null ? string.Empty : x.CreatedAt.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                    UpdatedAtString = x.UpdatedAt == null ? string.Empty : x.UpdatedAt.Value.ToString("yyyy-MM-dd HH:mm:ss")
                }).ToList();

                listProjects = tenant.Plan.Equals("Premium") ?
                               listProjects :
                               listProjects.Take(1).ToList();

                return(Json(new
                {
                    Data = listProjects,
                    IsSuccessful = true
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new Logica.Models.ViewModels.ResponseViewModel
                {
                    IsSuccessful = false,
                    Errors = new List <string> {
                        ex.Message
                    }
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #18
0
        public async Task <ActionResult> ProjectsCreate(Logica.Models.BindingModels.ProjectsCreateBindingModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Recupero el Usuario en sesion
                    ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

                    //Consulta la organizacion del usuario que esta ingresando al sistema
                    Logica.BL.Tenants tenants = new Logica.BL.Tenants();
                    var tenant = tenants.GetTenants(user.Id).FirstOrDefault();;

                    Logica.BL.Projects projects = new Logica.BL.Projects();
                    projects.CreateProjects(model.Title,
                                            model.Details,
                                            model.ExpectedCompletionDate,
                                            tenant.Id);
                }
                else
                {
                    return(Json(new Logica.Models.ViewModels.ResponseViewModel
                    {
                        IsSuccessful = false,
                        Errors = ModelState.Values.SelectMany(x => x.Errors).Select(e => e.ErrorMessage).ToList()
                    }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new
                {
                    IsSuccessful = true
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new Logica.Models.ViewModels.ResponseViewModel
                {
                    IsSuccessful = false,
                    Errors = new List <string> {
                        ex.Message
                    }
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #19
0
        // GET: UserProjects
        public async Task <ActionResult> Index(int?projectId)
        {
            ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

            Logica.BL.Tenants tenants = new Logica.BL.Tenants();
            var tenant = tenants.GetTenants(user.Id).FirstOrDefault();

            Logica.BL.Projects projects = new Logica.BL.Projects();
            var project = projects.GetProjects(projectId, null, null).FirstOrDefault();

            Logica.BL.AspNetUsers aspNetUsers = new Logica.BL.AspNetUsers();
            var listUsers = aspNetUsers.GetUsers(tenant.Id);

            Logica.BL.UserProjects userProjects = new Logica.BL.UserProjects();
            var listUsersProject = userProjects.GetUsersProject(projectId);

            var listUsersResult = (from _users in listUsers
                                   where !listUsersProject.Select(x => x.UserId).Contains(_users.Id)
                                   select new Logica.Models.ViewModels.Users
            {
                Id = _users.Id,
                Email = _users.Email,
                UserName = _users.UserName
            }).ToList();

            var listUsersProjectResult = listUsersProject.Select(x => new Logica.Models.ViewModels.Users
            {
                Id       = x.UserId,
                Email    = x.AspNetUsers.Email,
                UserName = x.AspNetUsers.UserName
            }).ToList();

            var listUserProjectsIndexViewModel = new Logica.Models.ViewModels.UserProjectsIndexViewModel
            {
                Users        = listUsersResult,
                UsersProject = listUsersProjectResult
            };

            ViewBag.Project = project;

            return(View(listUserProjectsIndexViewModel));
        }
コード例 #20
0
        public async Task <ActionResult> Create(Logica.Models.BindingModels.ProjectsCreateBindingModel model)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

                Logica.BL.Tenants tenants = new Logica.BL.Tenants();
                var tenant = tenants.GetTenants(user.Id).FirstOrDefault();

                Logica.BL.Projects projects = new Logica.BL.Projects();
                projects.CreateProjects(model.Title,
                                        model.Details,
                                        model.ExpectedCompletionDate,
                                        tenant.Id);

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
コード例 #21
0
        public async Task <ActionResult> ProjectsCreate(Logica.Models.BindingModels.ProjectsCreateBindingModel model)
        {
            if (ModelState.IsValid)
            {
                //Recupero el Usuario en sesion
                ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

                //Consulta la organizacion del usuario que esta ingresando al sistema
                Logica.BL.Tenants tenants = new Logica.BL.Tenants();
                var tenant = tenants.GetTenants(user.Id).FirstOrDefault();;

                Logica.BL.Projects projects = new Logica.BL.Projects();
                projects.CreateProjects(model.Title,
                                        model.Details,
                                        model.ExpectedCompletionDate,
                                        tenant.Id);

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
コード例 #22
0
        public ActionResult Edit(Logica.Models.BindingModels.ProjectsEditBindingModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Logica.BL.Projects projects = new Logica.BL.Projects();
                    projects.UpdateProjects(model.Id,
                                            model.Title,
                                            model.Details,
                                            model.ExpectedCompletionDate);
                }
                else
                {
                    return(Json(new Logica.Models.ViewModels.ResponseViewModel
                    {
                        IsSuccessful = false,
                        Errors = ModelState.Values.SelectMany(m => m.Errors).Select(e => e.ErrorMessage).ToList()
                    }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new
                {
                    IsSuccessful = true
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new Logica.Models.ViewModels.ResponseViewModel
                {
                    IsSuccessful = false,
                    Errors = new List <string> {
                        ex.Message
                    }
                }, JsonRequestBehavior.AllowGet));
            }
        }