Exemplo n.º 1
0
        public async Task <ChunkData> ChunkDataDownload(string fileNameWithExt, object dataChuncked)
        {
            List <ChunkData> listResult = new List <ChunkData>();
            ChunkData        result     = new ChunkData();
            await Task.Run(() =>
            {
                listResult = this.ChunkDataPreparation(fileNameWithExt, dataChuncked);
                if (listResult.Count > 0)
                {
                    result          = listResult[0];
                    string chunkKey = listResult[0].ChunkKey;
                    for (int i = 0; i < listResult.Count; i++)
                    {
                        cacher.AddMinutes(chunkKey + "_" + (i + 1), listResult[i], listResult[i].ChunkTimeMinutes);
                    }
                }
            });

            return(result);
        }
Exemplo n.º 2
0
        public ChunkData ChunkDataUploadSvrSync(ChunkData chunk)
        {
            /*Gak dipake*/
            MemoryCacher cacher     = new MemoryCacher();
            ChunkData    result     = new ChunkData();
            string       savedchunk = string.Empty;
            object       checkchunk = null;

            //check apakah ada data chunk
            checkchunk           = cacher.GetValue(chunk.ChunkKey);
            result.ChunkCurrent  = chunk.ChunkCurrent;
            result.ChunkKey      = chunk.ChunkKey;
            result.ChunkMaxCount = chunk.ChunkMaxCount;
            result.FileName      = chunk.FileName;
            if (checkchunk != null)
            {
                //resultchunk =jika ada, data chunk lama + data terbaru
                savedchunk       = (string)checkchunk;
                result.DataChunk = savedchunk + chunk.DataChunk;
            }
            else
            {
                //resultchunk =jika tidak ada, data terbaru
                result.DataChunk = chunk.DataChunk;
            }
            //menghapus data chace
            cacher.Delete(chunk.ChunkKey);
            if (chunk.ChunkMaxCount == chunk.ChunkCurrent)
            {
                result.CompleteChunk = true;
            }
            else
            {
                result.CompleteChunk = false;
                //membuat chache data chace

                cacher.AddMinutes(result.ChunkKey, result.DataChunk, chunk.ChunkTimeMinutes);
            }
            return(result);
        }