using CapacitacionAtesa.Model.Classes; using System; using System.Collections.Generic; using System.Text; using System.Web.Configuration; using Ultimus.Interfaces; using Ultimus.Interfaces.UltimusForm; using Ultimus.Interfaces.UltimusIntegration; using Ultimus.Utilitarios; namespace CapacitacionAtesa.Controllers { public class BaseController : BaseMvcController { UltimusLogs UltimusLogs = new UltimusLogs("BaseController"); public string co_solicitud { get { string ret = "0"; if (!string.IsNullOrEmpty(Request.QueryString["co_solicitud"])) ret = Request.QueryString["co_solicitud"]; return ret; } } public string tipoPase { get { string ret = "0"; if (!string.IsNullOrEmpty(Request.QueryString["tipo_pase"])) ret = Request.QueryString["tipo_pase"]; return ret; } } public void InitControllers() { try { ParametrosAplicacion ParametrosAplicacion = new ParametrosAplicacion(); #region QUERY STRING string QueryString = string.Format("&co_solicitud={0}", co_solicitud); #endregion #region MENU Boolean vLocal = false; Boolean.TryParse(WebConfigurationManager.AppSettings["ComplementBPM.local"].ToString(), out vLocal); List MenuList = ObtenerFormularios(Process, Step, UserID, TaskID, Incident, JobFunction, UserFullName, UserEmail, Supervisor, SupervisorFullName, TaskStatus, Version, StartTime, QueryString); if (MenuList == null) { if (vLocal || MenuList == null || MenuList.Count == 0) MenuList = new List { (new StepFormsList { FormName = "OFFLINE" }) }; } #endregion CargarViewState(MenuList, QueryString); ViewBag.WCFUrl = new ParametrosAplicacion().WCFUrl; ViewBag.CodigoSolicitud = co_solicitud; ViewBag.TipoPase = tipoPase; } catch (Exception ex) { UltimusLogs.Error(ex); } } public void InitImageStatus() { try { using (UltimusIntegrationAPIController UltimusIntegrationAPI = new UltimusIntegrationAPIController()) { if (!string.IsNullOrEmpty(Incident) && !string.IsNullOrEmpty(Version) && Incident != "0" && Version != "0") { string src = UltimusIntegrationAPI.GetIncidentImage(Process, Convert.ToInt32(Incident), Convert.ToInt32(Version)); ViewBag.ImageStatus = src; } } } catch (Exception ex) { UltimusLogs.Error(ex); } } protected Dictionary ObtenerVariables(UltimusIncident Tarea) { Dictionary ret = new Dictionary(); UltimusIntegrationAPIController UltimusIntegrationAPIController = new UltimusIntegrationAPIController(); string valor = string.Empty; string tipo_pase = string.Empty; string co_solicitud = "0"; if (Tarea.Incident > 0 && !string.IsNullOrEmpty(Tarea.TaskId)) { UltimusIntegrationAPIController.GetNodeValue(Tarea.User, Tarea.TaskId, "TaskData.Global.CodigoSolicitud", out valor); co_solicitud = valor; if (Tarea.Process == "Pase") { UltimusIntegrationAPIController.GetNodeValue(Tarea.User, Tarea.TaskId, "TaskData.Global.TipoPase", out tipo_pase); } } ret.Add("co_solicitud", string.IsNullOrEmpty(co_solicitud) ? "0" : co_solicitud); ret.Add("tipo_pase", string.IsNullOrEmpty(tipo_pase) ? "0" : tipo_pase); return ret; } protected List ObtenerFormularios(UltimusIncident Tarea, string QueryString) { return ObtenerFormularios(Tarea.Process, Tarea.Step, Tarea.User, Tarea.TaskId, Convert.ToString(Tarea.Incident), Tarea.JobFunction, Tarea.UserFullName, Tarea.UserEmail, Tarea.Supervisor, Tarea.SupervisorFullName, Convert.ToString(Tarea.Status), Convert.ToString(Tarea.Version), Convert.ToString(Tarea.StartTime), QueryString); } protected List ObtenerFormularios(string Process, string Step, string User, string TaskId, string Incident, string JobFunction, string UserFullName, string UserEmail, string Supervisor, string SupervisorFullName, string Status, string Version, string StartTime, string QueryString) { UltimusFormAPIController UltimusFormAPIController = new UltimusFormAPIController(); List menu = UltimusFormAPIController.ObtenerFormularios(Process, Step); if (menu == null || menu.Count == 0) throw new Exception(string.Format("No se encontró formularios en el BPMComplement para el proceso {0} en la etapa {1}", Process, Step)); foreach (StepFormsList StepFormsList in menu) { string OcultarMenu = "0"; string SoloLectura = "0"; StringBuilder ret = new StringBuilder(); Crypt crypt = new Crypt(); ret.AppendFormat(StepFormsList.FormPath); ret.AppendFormat("?UserID={0}", crypt.EncryptString(User)); ret.AppendFormat("&TaskID={0}", crypt.EncryptString(TaskId)); ret.AppendFormat("&Process={0}", crypt.EncryptString(Process)); ret.AppendFormat("&Step={0}", crypt.EncryptString(Step)); ret.AppendFormat("&Incident={0}", crypt.EncryptString(Incident)); ret.AppendFormat("&JobFunction={0}", crypt.EncryptString(JobFunction)); ret.AppendFormat("&UserFullName={0}", crypt.EncryptString(UserFullName)); ret.AppendFormat("&UserEmail={0}", crypt.EncryptString(UserEmail)); ret.AppendFormat("&Supervisor={0}", crypt.EncryptString(Supervisor)); ret.AppendFormat("&SupervisorFullName={0}", crypt.EncryptString(SupervisorFullName)); ret.AppendFormat("&TaskStatus={0}", crypt.EncryptString(Status)); ret.AppendFormat("&Version={0}", crypt.EncryptString(Version)); ret.AppendFormat("&StartTime={0}", crypt.EncryptString(StartTime)); ret.AppendFormat("&OcultarMenu={0}", crypt.EncryptString(OcultarMenu)); ret.AppendFormat("&SoloLectura={0}", crypt.EncryptString(SoloLectura)); ret.AppendFormat(QueryString); StepFormsList.FormPath = ret.ToString(); } return menu; } } }