// 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)); } }
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)); }
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)); }
// 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)); } }
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)); } }
// 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)); }
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)); }
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)); } }
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)); }