コード例 #1
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));
            }
        }
コード例 #2
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));
        }
コード例 #3
0
        public async Task <ActionResult> Create(Logica.Models.BindingModels.MembersCreateBindingModel model)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser userInSession = await UserManager.FindByNameAsync(User.Identity.Name);

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

                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, EmailConfirmed = true
                };
                var result = await UserManager.CreateAsync(user, "Qwer1234*");

                if (result.Succeeded)
                {
                    ViewBag.Message = "This invitation was intended for " + model.Email + " is successful";
                    ViewBag.Success = true;

                    var _context = new DAL.Models.ProjectMVCEntities();

                    var aspNetUser = _context.AspNetUsers.Where(x => x.UserName.Equals(model.Email)).FirstOrDefault();
                    aspNetUser.TenantId = tenant.Id;
                    _context.SaveChanges();

                    var userResult = await UserManager.FindByNameAsync(model.Email);

                    if (userResult != null)
                    {
                        await UserManager.AddToRoleAsync(userResult.Id, "Member");

                        var code = await UserManager.GeneratePasswordResetTokenAsync(userResult.Id);

                        var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = userResult.Id, code = code }, protocol: Request.Url.Scheme);
                        await UserManager.SendEmailAsync(userResult.Id,
                                                         userInSession.UserName + " invited you to organization",
                                                         userInSession.UserName + " has invited you to collaborate on the organization: <a href=\"" + callbackUrl + "\">View invitation</a>");

                        return(View());
                    }
                }

                ViewBag.Message = "An error has occurred during the process";
            }

            return(View(model));
        }
コード例 #4
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));
            }
        }
コード例 #5
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));
            }
        }
コード例 #6
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));
        }
コード例 #7
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));
        }
コード例 #8
0
        public async Task <ActionResult> Create(Logica.Models.BindingModel.ProyectCreateBindingModel model)
        {
            try
            {
                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.Proyects proyects = new Logica.BL.Proyects();
                    proyects.CreateProyects(model.Title,
                                            model.Details,
                                            model.ExpectedCompletionDate,
                                            tenant.Id);
                }
                else
                {
                    return(Json(new Logica.Models.ViewModel.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.ViewModel.ResponseViewModel
                {
                    IsSuccessful = false,
                    Errors = new List <string> {
                        ex.Message
                    }
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #9
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));
        }