public async Task <IActionResult> Create(ViajeViewModel vm) { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var iterCmd = new ItinerarioCommand() { UsuarioID = _userManager.GetUserId(User) }; services.RegisterItinerarioAsync(iterCmd); var user = await _userManager.GetUserAsync(User); var iterID = user.Itinerarios.Last().ItinerarioID; for (int i = 0; i < vm.Motivo.Count; ++i) { if (vm.Motivo[i] is null) { vm.Motivo[i] = ""; } } for (int i = 0; i < vm.Country.Count(); i++) { var viajeCmd = new ViajeCommand(iterID, user.Id, vm.Country[i], vm.City[i], vm.Motivo[i], vm.Start[i], vm.End[i]); services.RegisterViajeAsync(viajeCmd); } services.CalculateDates(services.GetItinerario(iterID)); services.CreateItinerarioWorkflow(iterID, User.Claims.Where(x => x.Type == "Institucion").Single().Value); return(RedirectToAction("ViewTrips")); }
public async Task <IActionResult> GiveVisa() { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); var data = services.GetVisasUsuarioVisasPendiente(user); return(View(data)); }
public async Task <IActionResult> AuthorizePassport() { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); var data = services.GetUsuariosPendientePasaporte(user); return(View(data)); }
public async Task <IActionResult> ViewTrips() { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); var vm = new PendingTripViewModel(); vm.Users = services.GetItinerarioNotFinished(user) .Select(x => new TripViewModel(x.FechaInicio.Value, x.FechaFin.Value, x.Estado.ToString(), x.ItinerarioID)); vm.Visitants = services.GetViajesInvitadosNotFinished(user) .Select(x => new InvitationViewModel(x)); return(View(vm)); }
public async Task <IActionResult> AuthorizeTrip() { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); var vm = new PendingUserTripViewModel(); Estado state = Enum.Parse <Estado>($"PendienteAprobacion{User.Claims.Where(x => x.Type == "Institucion").Single().Value}"); vm.Users = services.GetItinerariosEstado(state, user) .Select(x => new UserTripViewModel(x.FechaInicio.Value, x.FechaFin.Value, x.Estado.ToString(), x.ItinerarioID, x.Usuario)); vm.Visitants = services.GetViajesInvitadosEstado(state, user) .Select(x => new InvitationViewModel(x)); return(View(vm)); }
public async Task <IActionResult> Invitation(InvitationViewModel vm) { WorkflowServices services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); int id = services.RegisterViajeInvitado(user.Id, vm.Name, vm.Procedencia, vm.Motivo, vm.End); if (id != -1) { services.CreateViajeInvitadoWorkflow(id, User.Claims.Where(x => x.Type == "Institucion").Single().Value); } return(RedirectToAction("Welcome")); }
public async Task <IActionResult> GiveVisa(string uID, int vID, int action, string motivo) { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); if (action == 0) { services.SetVisaToUser(uID, vID, user.Id); services.ManageActionVisa(uID, user.Id, vID, BizLogic.WorkflowManager.Action.Aprobar, motivo); } else if (action == 1) { services.ManageActionVisa(uID, user.Id, vID, BizLogic.WorkflowManager.Action.Rechazar, motivo); } return(RedirectToAction("GiveVisa")); }
public async Task <IActionResult> AuthorizePassport(string usuarioId, int action, int uType, string motivo) { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); if (action == 0) { services.SetPassportToUser(usuarioId); services.ManageActionPasaporte(usuarioId, user.Id, BizLogic.WorkflowManager.Action.Aprobar, motivo); } else if (action == 1) { services.ManageActionPasaporte(usuarioId, user.Id, BizLogic.WorkflowManager.Action.Rechazar, motivo); } else { services.ManageActionPasaporte(usuarioId, user.Id, BizLogic.WorkflowManager.Action.Cancelar, motivo); } return(Redirect("AuthorizePassport")); }
public async Task <IActionResult> AuthorizeTrip(int tripId, int action, int uType, string motivo) { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); if (uType == 0) { if (action == 0) { services.ManageActionAprobar(tripId, user.Id, motivo); } else if (action == 1) { services.ManageActionRechazar(tripId, user.Id, motivo); } else { services.CancelItinerario(tripId, user.Id, motivo); } } else { if (action == 0) { services.ManageActionAprobarViajeInvitado(tripId, user.Id, motivo); } else if (action == 1) { services.ManageActionRechazarViajeInvitado(tripId, user.Id, motivo); } else { services.CancelViajeInvitado(tripId, user.Id, motivo); } } return(Redirect("AuthorizeTrip")); }
public async Task <IActionResult> ViewTrips(int vId, int action, int uType) { var services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); var user = await _userManager.GetUserAsync(User); if (uType == 0) { if (action == 0) { services.CancelItinerario(vId, user.Id, "El usuario cancelo su viaje"); } else if (action == 1) { services.ContinuarItinerario(vId); } else { services.RealizarItinerario(vId); } } else { if (action == 0) { services.CancelViajeInvitado(vId, user.Id, "El usuario cancelo su viaje"); } else if (action == 1) { services.ContinuarViajeInvitado(vId); } else { services.RealizarViajeInvitado(vId); } } return(RedirectToAction("ViewTrips")); }
public async Task <IActionResult> Welcome() { AdminService _adminService = new AdminService(_context, _userManager, _getterUtils); WorkflowServices _workflowServices = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); WelcomeViewModel vm = new WelcomeViewModel(); var t = await _adminService.FillNotificationsAsync(); vm.UserPendings = t.UserPendings; vm.ViajesUpdated = t.ViajesUpdated; var notificationsList = new List <string>(); var InvitadosPropios = new List <string>(); var InvitadosAjenos = new List <string>(); if (vm.ViajesUpdated.Any()) { if (User.Claims.Where(c => c.Type == "Visa").Any()) { var data = vm.ViajesUpdated.Where(v => v.Estado == Estado.PendienteVisas && v.Usuario.Email != User.Identity.Name && !(v.Estado == Estado.Pendiente || v.Estado == Estado.Cancelado || v.Estado == Estado.PendienteRealizacion)) .ToList(); for (int i = 0; i < data.Count(); i++) { data[i].Update = 0; _workflowServices.UpdateItinerario(data[i], data[i]); notificationsList.Add($"Viaje del {data[i].FechaInicio} --> {data[i].FechaFin} tiene ahora estado {data[i].Estado}"); } } if (User.Claims.Where(c => c.Type == "Passport").Any()) { var data = vm.ViajesUpdated.Where(v => v.Estado == Estado.PendientePasaporte && v.Usuario.Email != User.Identity.Name && !(v.Estado == Estado.Pendiente || v.Estado == Estado.Cancelado || v.Estado == Estado.PendienteRealizacion)) .ToList(); for (int i = 0; i < data.Count(); i++) { data[i].Update = 0; _workflowServices.UpdateItinerario(data[i], data[i]); notificationsList.Add($"Viaje del {data[i].FechaInicio} --> {data[i].FechaFin} tiene ahora estado {data[i].Estado}"); } } if (User.HasClaim("Institucion", "JefeArea")) { var data = vm.ViajesUpdated.Where(v => v.Estado == Estado.PendienteAprobacionJefeArea && v.Usuario.Email != User.Identity.Name && !(v.Estado == Estado.Pendiente || v.Estado == Estado.Cancelado || v.Estado == Estado.PendienteRealizacion)) .ToList(); for (int i = 0; i < data.Count(); i++) { data[i].Update = 0; _workflowServices.UpdateItinerario(data[i], data[i]); notificationsList.Add($"Viaje del {data[i].FechaInicio} --> {data[i].FechaFin} tiene ahora estado {data[i].Estado}"); } } if (User.HasClaim("Institucion", "Decano")) { var data = vm.ViajesUpdated.Where(v => v.Estado == Estado.PendienteAprobacionDecano && v.Usuario.Email != User.Identity.Name && !(v.Estado == Estado.Pendiente || v.Estado == Estado.Cancelado || v.Estado == Estado.PendienteRealizacion)) .ToList(); for (int i = 0; i < data.Count(); i++) { data[i].Update = 0; _workflowServices.UpdateItinerario(data[i], data[i]); notificationsList.Add($"Viaje del {data[i].FechaInicio} --> {data[i].FechaFin} tiene ahora estado {data[i].Estado}"); } } if (User.HasClaim("Institucion", "Rector")) { var data = vm.ViajesUpdated.Where(v => v.Estado == Estado.PendienteAprobacionRector && v.Usuario.Email != User.Identity.Name && !(v.Estado == Estado.Pendiente || v.Estado == Estado.Cancelado || v.Estado == Estado.PendienteRealizacion)) .ToList(); for (int i = 0; i < data.Count(); i++) { data[i].Update = 0; _workflowServices.UpdateItinerario(data[i], data[i]); notificationsList.Add($"Viaje del {data[i].FechaInicio} --> {data[i].FechaFin} tiene ahora estado {data[i].Estado}"); } } var misViajes = vm.ViajesUpdated.Where(v => v.Usuario.Email == User.Identity.Name && (v.Estado == Estado.Pendiente || v.Estado == Estado.Cancelado || v.Estado == Estado.PendienteRealizacion)) .ToList(); if (misViajes.Count() != 0) { for (int i = 0; i < misViajes.Count(); i++) { misViajes[i].Update = 0; _workflowServices.UpdateItinerario(misViajes[i], misViajes[i]); } } } if (t.InvitadosUpdated.Any()) { var misInvitados = t.InvitadosUpdated.Where(vi => vi.Usuario.Email == User.Identity.Name && (vi.Estado == Estado.Pendiente || vi.Estado == Estado.Cancelado || vi.Estado == Estado.PendienteRealizacion)) .ToList(); if (misInvitados.Count != 0) { for (int i = 0; i < misInvitados.Count(); i++) { misInvitados[i].Update = 0; _workflowServices.UpdateViajeInvitado(misInvitados[i], misInvitados[i]); InvitadosPropios.Add($"Viaje del invitado {misInvitados[i].Nombre} con fecha {misInvitados[i].FechaLLegada} tiene ahora estado {misInvitados[i].Estado}"); } } var invitados = t.InvitadosUpdated.Where(vi => vi.Usuario.Email != User.Identity.Name).ToList(); if (invitados.Count != 0) { for (int i = 0; i < invitados.Count(); i++) { invitados[i].Update = 0; _workflowServices.UpdateViajeInvitado(invitados[i], invitados[i]); InvitadosAjenos.Add($"Viaje del invitado {invitados[i].Nombre} con fecha {invitados[i].FechaLLegada} tiene ahora estado {invitados[i].Estado}"); } } } vm.NotificationsList = notificationsList; vm.InvitadosPropios = InvitadosPropios; vm.InvitadosAjenos = InvitadosAjenos; return(View(vm)); }
public IActionResult ViajeInvitado(int id) { WorkflowServices services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); return(View(services.GetViajeInvitado(id))); }
public IActionResult Historial() { WorkflowServices services = new WorkflowServices(_context, _userManager, _getterUtils, _signInManager); return(View(services.GetHistorial())); }