public bool GetAppDetail(string userID, string userDirectory, string appID, out QRSSenseAppDetail appDetail, out string errorMessage)
        {
            appDetail    = new QRSSenseAppDetail();
            errorMessage = "";
            try
            {
                RestClient client = conn.CreateRestClient("app/" + appID, userID, userDirectory, out restRequest);

                var response = client.Execute <QRSSenseAppDetail>(restRequest);

                if (response.IsSuccessful)
                {
                    appDetail = response.Data;
                }
                else
                {
                    errorMessage = response.ErrorMessage;
                }

                return(response.IsSuccessful);
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
                while (ex.InnerException != null)
                {
                    ex            = ex.InnerException;
                    errorMessage += " -> " + ex.Message;
                }
                return(false);
            }
        }
Пример #2
0
        public ActionResult GetReportsGrid(string idStream, string desStream)
        {
            ViewBag.idStream  = idStream;
            ViewBag.desStream = desStream;

            string          path  = Server.MapPath("~/cert/client.pfx");
            ReportViewModel model = new ReportViewModel();

            List <SenseApplication> publishedApps;
            List <SenseStream>      streams = new List <SenseStream>();

            string errorMessage = "";

            // Prendo gli stream di self-service e creo una lista
            QRSQlikAPI QRSqlikAPIMaster = new QRSQlikAPI(AmbitiUtility.GetAmbitoNode(GetCookie("AmbitoId"), GetCookie("NodeId")).Server, path);

            var ambito = AmbitiUtility.GetAmbitoById(GetCookie("AmbitoId"));

            QRSqlikAPIMaster.GetStreamsByCustomProperty(GetCookie("UserID"), GetCookie("UserDirectory"), "StreamType", "Self-Service", ambito.customproperty, out streams, out errorMessage);
            List <string> streamIdList = new List <string>();

            if (streams != null)
            {
                streamIdList = (from s in streams select s.Id).ToList();
            }
            //

            // Prendo le app pubblicate in self-service controllando che siano nella lista creata prima
            QlikAPI qlikAPIMaster = new QlikAPI(AmbitiUtility.GetAmbitoNode(GetCookie("AmbitoId"), GetCookie("NodeId")).Link, GetCookie("UserID"), GetCookie("UserDirectory"), path);

            if (qlikAPIMaster.GetPublishedAppsInSelectedStreams(streamIdList, out publishedApps))
            {
                foreach (var app in publishedApps)
                {
                    errorMessage = "";
                    QRSSenseAppDetail appDetail = new QRSSenseAppDetail();
                    //if (QRSqlikAPIMaster.GetAppDetail(ConfigurationManager.AppSettings["QlikUser"], ConfigurationManager.AppSettings["QlikUserDirectory"], app.AppId, out appDetail, out errorMessage))
                    if (QRSqlikAPIMaster.GetAppDetail(GetCookie("UserID"), GetCookie("UserDirectory"), app.AppId, out appDetail, out errorMessage))
                    {
                        app.OwnerUserName = appDetail.owner.name;
                    }
                }
                model = ReportViewModel.CreateReportViewModel(publishedApps, streams);
            }
            return(PartialView("ReportsGrid", model));
        }
Пример #3
0
        public ActionResult Detail(string AppName, string AppId, string StreamId, string AmbitoList, string StreamName, string dummy)
        {
            AppToPublishViewModel model = new AppToPublishViewModel();

            model.AppId      = AppId;
            model.AppName    = AppName;
            model.StreamName = StreamName;
            model.StreamID   = StreamId;

            ViewBag.AmbitoList = AmbitoList;

            string path = Server.MapPath("~/cert/client.pfx");

            QRSSenseAppDetail detail = new QRSSenseAppDetail();
            QRSSenseApp       newApp = new QRSSenseApp();

            // Prendo il nodo dei Report Distribuiti
            var ambito = AmbitiUtility.GetAmbitoById(new List <string>()
            {
                GetCookie("AmbitoId")
            }).FirstOrDefault();
            var distrNode = (from f in ambito.Nodes where f.NodeType == "D" select f).FirstOrDefault();
            //

            // Prendo le app pubblicate nel nodo dei Report Distribuiti
            List <SenseApplication> publishedApps;
            QlikAPI qlikAPIMaster = new QlikAPI(AmbitiUtility.GetAmbitoNode(GetCookie("AmbitoId"), distrNode.Id.ToString()).Link, GetCookie("UserID"), GetCookie("UserDirectory"), path);

            qlikAPIMaster.GetPublishedApps(out publishedApps);

            model.OverwriteRequired = false;
            // Controllo se c'è già un'app nello stream che si chiama così
            foreach (var publishedApp in publishedApps)
            {
                if (publishedApp.StreamID == StreamId && publishedApp.Name == AppName)
                {
                    model.OverwriteRequired = true;
                    model.AppToOverwriteId  = publishedApp.AppId;
                }
            }

            return(View("ToShare", model));
        }
Пример #4
0
        public ActionResult Detail(string AppName, string AppId, string StreamId, string AmbitoList, string StreamName, string AppOldName, string dummy)
        {
            AppToPublishViewModel model = new AppToPublishViewModel();

            model.AppId      = AppId;
            model.AppName    = AppName;
            model.StreamName = StreamName;
            model.StreamID   = StreamId;
            model.AppOldName = AppOldName;

            ViewBag.AmbitoList = AmbitoList;

            string path = Server.MapPath("~/cert/client.pfx");

            QRSSenseAppDetail detail = new QRSSenseAppDetail();
            QRSSenseApp       newApp = new QRSSenseApp();

            // Prendo la lista delle app pubblicate
            List <SenseApplication> publishedApps;
            QlikAPI qlikAPIMaster = new QlikAPI(AmbitiUtility.GetAmbitoNode(GetCookie("AmbitoId"), GetCookie("NodeId")).Link, GetCookie("UserID"), GetCookie("UserDirectory"), path);

            qlikAPIMaster.GetPublishedApps(out publishedApps);

            model.OverwriteRequired = false;
            // Controllo se c'è già un'app nello stream che si chiama così
            foreach (var publishedApp in publishedApps)
            {
                if (publishedApp.StreamID == StreamId && publishedApp.Name == AppName)
                {
                    model.OverwriteRequired = true;
                    model.AppToOverwriteId  = publishedApp.AppId;
                }
            }

            return(View("ToPublish", model));
        }