Пример #1
0
        public IHttpActionResult AcesPiesContents()
        {
            try
            {
                var stagingFilesContents = new ExtPartMappingTool.Models.ProcessFiles.Response.StagingDirectoryContent();
                Models.ProcessFiles.Response.PipelineStatus pipelineStatus;
                NetworkCredential NCredentials = GetNetworkCredential();
                using (new NetworkConnection(GetFileStoreHost(), NCredentials))
                {
                    //The Host Directroy
                    DirectoryInfo stagingDirectoryInfo = Directory.CreateDirectory(GetFileStoreHost());

                    //Individual Aces and Pies Directory
                    DirectoryInfo directoryAces = stagingDirectoryInfo.CreateSubdirectory(_Aces);
                    DirectoryInfo directoryPies = stagingDirectoryInfo.CreateSubdirectory(_Pies);


                    if (AcesPiesIsEmptyCheck())
                    {
                        throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                        {
                            ReasonPhrase = "Pies and Aces in Production are both empty"
                        });
                    }

                    //Get Name Files/Contents.
                    var fileNamesAces = directoryAces.EnumerateFiles().Select(x => x.Name).ToList();
                    var fileNamesPies = directoryPies.EnumerateFiles().Select(x => x.Name).ToList();

                    stagingFilesContents.FileNamesAces = fileNamesAces;
                    stagingFilesContents.FileNamesPies = fileNamesPies;


                    pipelineStatus = CheckPipelineStatus();
                    AssertStep(pipelineStatus, Models.Types.ProcessFilesStages.ProductionInit);

                    return(Ok(stagingFilesContents));
                }
            }
            catch (HttpResponseException ex)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public IHttpActionResult AcesPiesContents()
        {
            try
            {
                var stagingFilesContents = new ExtPartMappingTool.Models.ProcessFiles.Response.StagingDirectoryContent();
                Models.ProcessFiles.Response.PipelineStatus pipelineStatus;

                DirectoryInfo stagingDirectoryInfo = Directory.CreateDirectory(GetFileData());

                //Individual Aces and Pies Directory
                DirectoryInfo directoryAces = stagingDirectoryInfo.CreateSubdirectory(_Aces);
                DirectoryInfo directoryPies = stagingDirectoryInfo.CreateSubdirectory(_Pies);


                if (AcesPiesIsEmptyCheck(true))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        ReasonPhrase = "Pies and Aces in Staging are both empty"
                    });
                }

                //Get Name Files/Contents.
                var fileNamesAces = directoryAces.EnumerateFiles().Select(x => x.Name).ToList();
                var fileNamesPies = directoryPies.EnumerateFiles().Select(x => x.Name).ToList();

                stagingFilesContents.FileNamesAces = fileNamesAces;
                stagingFilesContents.FileNamesPies = fileNamesPies;


                pipelineStatus = CheckPipelineStatus();
                if (pipelineStatus.Active == false)
                {
                    if (!Helpers.ProcessFilePipelineTracker.InitiateFiles(fileNamesAces, fileNamesPies, true))
                    {
                        //if not successfull then we have no record and should not continue.
                        throw new Exception();
                    }
                }
                else if (pipelineStatus.ActiveStage != Models.Types.ProcessFilesStages.StagingInit)
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                    {
                        ReasonPhrase = "Process pipeline is already in use."
                    });
                }
                //before returning, initiate record of a pipline process in db


                return(Ok(stagingFilesContents));

                /*
                 * NetworkCredential NCredentials = GetNetworkCredential();
                 * using (new NetworkConnection(GetFileStoreHost(), NCredentials))
                 * {
                 *  //The Host Directroy
                 *  DirectoryInfo stagingDirectoryInfo = Directory.CreateDirectory(GetFileStoreHost());
                 *
                 *  //Individual Aces and Pies Directory
                 *  DirectoryInfo directoryAces = stagingDirectoryInfo.CreateSubdirectory(_Aces);
                 *  DirectoryInfo directoryPies = stagingDirectoryInfo.CreateSubdirectory(_Pies);
                 *
                 *
                 *  if (AcesPiesIsEmptyCheck(true))
                 *  {
                 *      throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                 *      {
                 *          ReasonPhrase = "Pies and Aces in Staging are both empty"
                 *      });
                 *  }
                 *
                 *  //Get Name Files/Contents.
                 *  var fileNamesAces = directoryAces.EnumerateFiles().Select(x => x.Name).ToList();
                 *  var fileNamesPies = directoryPies.EnumerateFiles().Select(x => x.Name).ToList();
                 *
                 *  stagingFilesContents.FileNamesAces = fileNamesAces;
                 *  stagingFilesContents.FileNamesPies = fileNamesPies;
                 *
                 *
                 *  pipelineStatus = CheckPipelineStatus();
                 *  if(pipelineStatus.Active == false)
                 *  {
                 *      if (!Helpers.ProcessFilePipelineTracker.InitiateFiles(fileNamesAces, fileNamesPies, true))
                 *      {
                 *          //if not successfull then we have no record and should not continue.
                 *          throw new Exception();
                 *      }
                 *  }
                 *  else if(pipelineStatus.ActiveStage != Models.Types.ProcessFilesStages.StagingInit)
                 *  {
                 *      throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                 *      {
                 *          ReasonPhrase = "Process pipeline is already in use."
                 *      });
                 *  }
                 *  //before returning, initiate record of a pipline process in db
                 *
                 *
                 *  return Ok(stagingFilesContents);
                 * }*/
            }
            catch (System.ComponentModel.Win32Exception ex)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    ReasonPhrase = "> from AcesPiesContents: " + ex.Message
                });
            }
            catch (HttpResponseException ex)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    ReasonPhrase = "> from AcesPiesContents: " + ex.Response.ReasonPhrase
                }); //throw;
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    ReasonPhrase = "> from AcesPiesContents: " + ex.Message
                }); //throw;
            }
        }