Ejemplo n.º 1
0
        private async Task <JobStatusProgress> GetProgressAsync(string jobID, bool isSync)
        {
            //No cache, so always get direct
            var jsProgress = new JobStatusProgress();
            //try to get from DB
            var jobView = isSync ? GetJobView(jobID): await GetJobViewAsync(jobID);

            if (jobView != null)
            {
                jsProgress.JobID   = jobView.JobID;
                jsProgress.Status  = jobView.Status;
                jsProgress.Error   = jobView.Error;
                jsProgress.Percent = jobView.Percent;
                jsProgress.Note    = jobView.Note;
                jsProgress.Data    = jobView.Data;
            }
            else
            {
                jsProgress.JobID      = jobID;
                jsProgress.ExistsInDB = false;
                jsProgress.Error      = "Job progress id: " + jobID + " not found!";
            }

            return(jsProgress);
        }
Ejemplo n.º 2
0
 //Set cached progress error
 public Task SetCachedProgressErrorAsync(JobStatusProgress jsProgress, string error)
 {
     jsProgress.Status  = JobStatus.Error;
     jsProgress.Error   = error;
     jsProgress.Updated = DateTime.Now;
     return(RedisDatabase.StringSetAsync(KeyPrefix + jsProgress.JobID.ToString(), JsonConvert.SerializeObject(jsProgress), flags: CommandFlags.FireAndForget));
 }
Ejemplo n.º 3
0
 public Task SetCachedProgressStatusAsync(JobStatusProgress jsProgress, JobStatus status)
 {
     //Update running/stop status only if it exists in DB
     jsProgress.Status  = status;
     jsProgress.Updated = DateTime.Now;
     return(RedisDatabase.StringSetAsync(KeyPrefix + jsProgress.JobID.ToString(), JsonConvert.SerializeObject(jsProgress), flags: CommandFlags.FireAndForget));
 }
Ejemplo n.º 4
0
        public async Task GetProgressAsyncTest()
        {
            var expected = new JobStatusProgress();

            var mockJobDAL = new Mock <IJobDAL>();

            mockJobDAL
            .Setup(ss => ss.GetProgressAsync(JobID))
            .ReturnsAsync(expected);

            var jobClient = new JobClient(mockJobDAL.Object);
            var actual    = await jobClient.GetProgressAsync(JobID);

            Assert.IsType <JobStatusProgress>(actual);
            Assert.Equal(expected, actual);
        }
Ejemplo n.º 5
0
        //Set Cached progress
        public Task SetCachedProgressAsync(string jobID, int?percent, string note, string data)
        {
            var jobStatusProgressString = RedisDatabase.StringGet(KeyPrefix + jobID.ToString());

            var jsProgress = new JobStatusProgress();

            if (!string.IsNullOrWhiteSpace(jobStatusProgressString))
            {
                jsProgress = JsonConvert.DeserializeObject <JobStatusProgress>(jobStatusProgressString);
            }
            else
            {
                //missing, then setup a new one, always status = running
                jsProgress.JobID  = jobID;
                jsProgress.Status = JobStatus.Running;
            }
            jsProgress.Percent = percent;
            jsProgress.Note    = note;
            jsProgress.Data    = data;
            jsProgress.Updated = DateTime.Now;

            return(RedisDatabase.StringSetAsync(KeyPrefix + jobID.ToString(), JsonConvert.SerializeObject(jsProgress), flags: CommandFlags.FireAndForget));
        }
Ejemplo n.º 6
0
        private async Task <JobStatusProgress> GetCachedProgressAsync(string jobID, bool isSync)
        {
            var jsProgress = new JobStatusProgress();

            var jobStatusProgressString = "";

            if (isSync)
            {
                jobStatusProgressString = RedisDatabase.StringGet(KeyPrefix + jobID.ToString());
            }
            else
            {
                jobStatusProgressString = await RedisDatabase.StringGetAsync(KeyPrefix + jobID.ToString());
            }

            if (!string.IsNullOrWhiteSpace(jobStatusProgressString))
            {
                jsProgress = JsonConvert.DeserializeObject <JobStatusProgress>(jobStatusProgressString);
                return(jsProgress);
            }

            return(null);
        }