Esempio n. 1
0
 public ReadFileResult ReadFile(string filePath)
 {
     try
     {
         int    partSize    = 1024;
         byte[] sizeSimbols = new byte[partSize];
         ulong  size        = 0;
         var    readFile    = new ReadFileResult()
         {
             Name = filePath
         };
         using (var binReader = new BinaryReader(File.Open(filePath, FileMode.Open)))
         {
             while (binReader.BaseStream.Position != binReader.BaseStream.Length)
             {
                 sizeSimbols = binReader.ReadBytes(partSize);
                 for (int x = 0; x < sizeSimbols.Length; x++)
                 {
                     size += sizeSimbols[x];
                 }
             }
             readFile.ByteSize = size;
         }
         return(readFile);
     }
     catch (Exception ex)
     {
         return(new ReadFileResult()
         {
             Name = filePath, ByteSize = 0, ErrorMessage = ex.Message
         });
     }
 }
Esempio n. 2
0
            public async Task <FilePart> GetNextPart(long requestedPartSize)
            {
                try
                {
                    int            partSize    = Convert.ToInt32(Math.Min(requestedPartSize, fileLength - streamPosition));
                    ReadFileResult partContent = await ReadFile(partSize).ConfigureAwait(false);

                    bool isLast = streamPosition + partSize >= fileLength;
                    var  part   = new FilePart(partContent.Content, partCount, streamPosition, partSize, partContent.Hash, isLast);
                    if (isLast)
                    {
                        HasMore = false;
                        fileHash.Finalize(ArrayPool <byte> .Shared.Rent(0), 0, 0);
                    }
                    else
                    {
                        streamPosition += partSize;
                        partCount      += 1;
                    }
                    return(part);
                }
                catch
                {
                    HasMore = false;
                    throw;
                }
            }
        //TODO: Сделать асинхронное чтение
        //TODO: Сделать окно с сообщением о загрузке
        /// <summary>
        /// Событие клика на начальную кнопку
        /// </summary>
        private void OpenFile()
        {
            ReadFileResult readFileResult = OpenAndReadFile();

            if (!readFileResult.IsSuccess)
            {
                MessageBox.Show(readFileResult.ErrorMessage);
                return;
            }

            CreateStatisticResult statisticResult = CreateStatisticResult.GetStatistic(
                readFileResult.MeasureDates,
                readFileResult.MeasureWindTypes,
                readFileResult.FirstInformationRow, readFileResult.SecondInformationRow, readFileResult.ThirdInformationRow);

            //TODO: Проверить на нормальность использования string заместо WindTypes
            IList <string> windTypes   = statisticResult.FileInformation.WindTypes.Select(_ => _.ToString()).ToList();
            IList <double> windChanges = WindChange.GetWindChangesValues(statisticResult.FileInformation.WindChanges);

            _mainWindowViewModel.AnalyzeCenterPage = new AnalyzeCenterPage(windTypes, windChanges);
            _mainWindowViewModel.CurrentCenterPage = _mainWindowViewModel.AnalyzeCenterPage;

            _mainWindowViewModel.MenuRightPage    = new MenuRightPage(statisticResult.FileInformation.FileInformationLabels);
            _mainWindowViewModel.CurrentRightPage = _mainWindowViewModel.MenuRightPage;

            _mainWindowViewModel.PeriodsLeftPage = new PeriodsLeftPage(statisticResult.FileInformation, statisticResult.PeriodInformations);
            _mainWindowViewModel.CurrentLeftPage = _mainWindowViewModel.PeriodsLeftPage;
        }
 static void Main(string[] args)
 {
  Task<ReadFileResult> task = Task<ReadFileResult>.Factory.StartNew(() =>
   {
      string url = "URL";
      return readFile(url));
   });
  ReadFileResult outcome = task.Result;
 }
Esempio n. 5
0
        /// <summary>
        /// 读取文件
        /// </summary>
        /// <param name="readFileParam"></param>
        /// <returns></returns>
        public static ReadFileResult ReadFile(ReadFileParameter readFileParam, IRemoteFileStorage proxy)
        {
            ManagerHelper.CheckNullReference(readFileParam, "readFileParam");
            if (proxy == null)
            {
                proxy = ServiceProxy;
            }
            ReadFileResult result = proxy.ReadFile(readFileParam);

            ManagerHelper.CheckUpdateResult(result);
            return(result);
        }
Esempio n. 6
0
        public ReadFileResult ReadFile(ReadFileParameter param)
        {
            ReadFileResult result = new ReadFileResult();

            try
            {
                result = ExecuteRemoteResult("ReadFile", param, result) as ReadFileResult;
            }
            catch (Exception e)
            {
                result.InnerException = CreateExceptionResult(result.InnerException, e.Message);
            }
            return(result);
        }
        private ReadFileResult GetReadResult()
        {
            string         dialogFilter = Resources.OpenFileDialogFilter;
            OpenFileDialog openDialog   = new OpenFileDialog()
            {
                Filter = dialogFilter
            };

            if (openDialog.ShowDialog() == true)
            {
                return(ReadFileResult.GetResult(openDialog.FileName));
            }

            return(ReadFileResult.EmptyResult);
        }
Esempio n. 8
0
        /// <summary>
        /// 读取文件
        /// </summary>
        /// <param name="fileItem"></param>
        /// <param name="proxy"></param>
        /// <returns></returns>
        public static ReadFileResultItemData ReadFile(ReadFileItemData fileItem, IRemoteFileStorage proxy)
        {
            ReadFileResultItemData result = null;

            ManagerHelper.CheckNullReference(fileItem, "fileItem");
            if (fileItem.ReadCount > 0)
            {
                ReadFileParameter param = new ReadFileParameter();
                param.InputData.Add(fileItem);
                ReadFileResult itemResult = ReadFile(param, proxy);
                if (itemResult.RecordCount > 0)
                {
                    result = itemResult.ExecuteResult[0];
                }
            }
            return(result);
        }
Esempio n. 9
0
        void CallBackUpdateGrid(ReadFileResult result)
        {
            Action action = () =>
            {
                _filesSize.Insert(_filesSize.Count < 1 ? 0 : _filesSize.Count - 1, result);
                progress.Value  += 1;
                lbProcessed.Text = $"Обработано: {_filesSize.Count}";
            };

            if (InvokeRequired)
            {
                BeginInvoke((MethodInvoker)(() =>
                {
                    Invoke(action);
                }));
            }
            else
            {
                action();
            }
        }
        protected byte[] ReadFile(Guid fileID, Guid lockID, string clientFileName, int startPos, int bufferCount, out string error)
        {
            RemoteFileStorageService provider = new RemoteFileStorageService();
            ReadFileParameter        para     = new ReadFileParameter();
            ReadFileItemData         item     = new ReadFileItemData();

            para.InputData.Add(item);
            item.PhysicalFileID = fileID;
            item.ClientFileName = clientFileName;
            item.LockID         = lockID;
            item.Position       = startPos;
            item.ReadCount      = bufferCount;
            ReadFileResult result = provider.ReadFile(para);

            error = null;
            if (result != null)
            {
                if (result.Succeed)
                {
                    if (result.ExecuteResult.Count > 0)
                    {
                        ReadFileResultItemData itemResult = result.ExecuteResult[0];
                        if (itemResult != null)
                        {
                            return(itemResult.ReadData);
                        }
                    }
                    error = string.Format("不存在ID为:{0}的文件.", fileID);
                }
                else
                {
                    error = result.InnerException.ErrorMessage;
                }
            }
            else
            {
                error = "读取文件失败.";
            }
            return(null);
        }
Esempio n. 11
0
        public ReadFileResult ReadFile(ReadFileParameter readFileParam)
        {
            ReadFileResult result = new ReadFileResult();

            try
            {
                if (readFileParam != null)
                {
                    ReadFileResultItemDataCollection items = result.ExecuteResult;
                    foreach (ReadFileItemData itemParam in readFileParam.InputData)
                    {
                        ReadFileResultItemData item = this.ReadFileItem(itemParam, readFileParam.CurrentUserID, null);
                        items.Add(item);
                    }
                }
            }
            catch (Exception e)
            {
                Utils.BuilderExecuteResult(result, e);
            }
            return(result);
        }
Esempio n. 12
0
        private void OpenFile()
        {
            ReadFileResult readResult = GetReadResult();

            if (!readResult.IsSuccess)
            {
                MessageBox.Show(readResult.ErrorMessage);
                return;
            }

            CreateStatisticResult statisticResult = CreateStatisticResult.GetStatistic(
                readResult.MeasureDates, readResult.MeasureWindTypes, readResult.FirstInformationRow,
                readResult.SecondInformationRow, readResult.ThirdInformationRow);

            IList <string> windTypes   = statisticResult.FileInformation.WindTypes.Select(_ => _.ToString()).ToList();
            IList <double> windChanges = WindChange.GetWindChangesValues(statisticResult.FileInformation.WindChanges);

            MainWindowViewModel mainViewModel = MainWindowViewModel.GetInstance();

            mainViewModel.AnalyzeCenterPage.SetWindHeaders(windTypes);
            mainViewModel.AnalyzeCenterPage.SetWindValues(windChanges);
            mainViewModel.PeriodsLeftPage.SetInformations(fileInformation: statisticResult.FileInformation, periodInformation: statisticResult.PeriodInformations);
        }
Esempio n. 13
0
        public static List <ReadFileResult> GetSearchRequests(List <string> fileNames)
        {
            var result = new List <ReadFileResult>();

            foreach (var fileName in fileNames)
            {
                var fileResult = new ReadFileResult {
                    FileName = fileName, Requests = new List <SearchRequest>()
                };

                try
                {
                    using (var document = SpreadsheetDocument.Open(fileName, false))
                    {
                        var workbookPart = document.WorkbookPart;
                        var data         = workbookPart.WorksheetParts.First().Worksheet.Elements <SheetData>().First();
                        foreach (var row in data.Elements <Row>().Skip(1))
                        {
                            var cells = row.Elements <Cell>();
                            fileResult.Requests.Add(new SearchRequest
                            {
                                Id            = GetCellValue(cells.ElementAt(0), workbookPart),
                                Brand         = GetCellValue(cells.ElementAt(1), workbookPart),
                                OriginalPrice = GetCellValue(cells.ElementAt(4), workbookPart)
                            });
                        }
                        fileResult.Success = true;
                    }
                }
                catch
                {
                    fileResult.Success = false;
                }
                result.Add(fileResult);
            }
            return(result);
        }
 private static ReadFileResult readFile(string url)
 {           
   ReadFileResult r = new ReadFileResult();
   r.isSuccessFull = true;
   return r;
 }