コード例 #1
0
        public static string IsImportResourceAlreadyRunning(SPWeb web)
        {
            bool   isRunning       = false;
            Guid   jobId           = Guid.Empty;
            int    percentComplete = 0;
            string query           = "SELECT status, view_log.timerjobuid, epml_log.resulttext from vwQueueTimerLog view_log inner join EPMLIVE_LOG as epml_log on view_log.timerjobuid = epml_log.timerjobuid where siteguid='" + web.Site.ID + "' and webguid='" + web.ID + "' and jobtype=60";

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SqlConnection cn = new SqlConnection(CoreFunctions.getConnectionString(web.Site.WebApplication.Id)))
                {
                    try
                    {
                        cn.Open();
                        using (SqlCommand cmd = new SqlCommand(query, cn))
                        {
                            using (SqlDataReader dr = cmd.ExecuteReader())
                            {
                                if (dr.Read())
                                {
                                    // Status 0 = Not started, Status 1 = Running, Status 2 = Completed
                                    if (dr.GetInt32(0) != 2)
                                    {
                                        isRunning = true;
                                    }
                                    jobId           = dr.GetGuid(1);
                                    string jsonText = dr.GetString(2);

                                    try
                                    {
                                        JavaScriptSerializer jsSerializer   = new JavaScriptSerializer();
                                        ResourceImportResult resourceImport = jsSerializer.Deserialize <ResourceImportResult>(jsonText);
                                        percentComplete = resourceImport.PercentComplete;
                                    }
                                    catch
                                    { }
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        LoggingService.WriteTrace(Area.EPMLiveCore, Categories.EPMLiveCore.Webservice, TraceSeverity.Medium, ex.ToString());
                    }
                }
            });

            return(string.Format(@"<ResourceImporter Success=""{0}"" JobUid=""{1}"" PercentComplete=""{2}"" />", isRunning,
                                 jobId, percentComplete));
        }
コード例 #2
0
        public ResourceImporter(SPWeb spWeb, string data, bool isImportCancelled)
        {
            if (!spWeb.CurrentUser.IsSiteAdmin)
            {
                throw new Exception("You need to be a Site Collection Administrator in order to import resources.");
            }

            _spWeb          = spWeb;
            _fileId         = data;
            _dtResources    = new DataTable();
            _currentProcess = string.Empty;
            _act            = new Act(_spWeb);
            _isOnline       = _act.IsOnline;
            _dSMResult      = new ResourceImportResult();
        }
コード例 #3
0
        public void UpdateProgressTest_Run_Catch_When_resourceImporter_Isnull()
        {
            using (new SPEmulators.SPEmulationContext(SPEmulators.IsolationLevel.Fake))
            {
                ResourceImportJob resourceimportjob = new ResourceImportJob();

                using (TestCheck.OpenCloseConnections)
                {
                    ResourceImportResult res = new ResourceImportResult();
                    res.TotalRecords = 1;

                    //Act
                    new PrivateObject(resourceimportjob).Invoke("UpdateProgress", res);
                }
            }
        }
コード例 #4
0
        public void UpdateProgressTest()
        {
            using (new SPEmulators.SPEmulationContext(SPEmulators.IsolationLevel.Fake))
            {
                ResourceImportJob resourceimportjob = new ResourceImportJob();

                using (TestCheck.OpenCloseConnections)
                {
                    ShimResourceImportJob.AllInstances.IsImportCancelledGuid = (ins, gid) => { };
                    ShimSqlCommand.AllInstances.ExecuteNonQuery = (instance) => { return(0); };
                    ResourceImportResult res = new ResourceImportResult();
                    res.TotalRecords = 0;
                    ResourceImporter resimp = new ShimResourceImporter();
                    new PrivateObject(resourceimportjob).SetField("resourceImporter", resimp);

                    //Act
                    new PrivateObject(resourceimportjob).Invoke("UpdateProgress", res);
                }
            }
        }