public void SyncronizeContacts() { if (this.Membership == null) { this.RequestMembership(); } if (this.Contacts == null) { this.RequestContacts(); } this.Contacts.NotNull(); this.Membership.NotNull(); foreach (Contact kvp in this.Contacts) { if (kvp.IsMessengerUser == false) { continue; } if (this.Membership.Count == 0) { continue; } kvp.MemberRole = ( from ms in this.Membership where (ms.MemberRole == MemberRole.Allow || ms.MemberRole == MemberRole.Block) && ms.PassportName == kvp.PassportName select ms.MemberRole ).First(); } //Agora que temos ambos! //Vamos 'unir' os desgraçados!!! PackageRequest[] request = new PackageRequest[] { new PrivacySettingsRequest(true), new SyncronizeContactsRequest(this.Contacts), new EditUserPropertiesRequest(UserProperties.MFN, this.Account), }; Dictionary <int, PackageTransaction> response = this.socket.SendRangeAndBlock(request); syncContacts = true; }
static IEnumerator MonitorPackageUpdate(PackageRequest owner, string gitUrl, string packageName) { Debug.Log($"Checking for updates for {packageName}..."); var request = UnityEditor.PackageManager.Client.Add(gitUrl); while (!request.IsCompleted) { yield return(null); } if (request.Error != null) { Debug.LogError($"Error code {request.Error.message}: {request.Error.message}"); } Debug.Log($"Latest version: {request.Result.version}"); yield break; }
IEnumerable <ICommandOutput> CopyOpenWrap(PackageDescriptor projectDescriptor, IDirectory projectDirectory) { var packageManager = Services.ServiceLocator.GetService <IPackageManager>(); var repositoryOptions = FolderRepositoryOptions.AnchoringEnabled; if (projectDescriptor.UseSymLinks) { repositoryOptions |= FolderRepositoryOptions.UseSymLinks; } var projectRepository = new FolderRepository(projectDirectory.GetDirectory("wraps"), repositoryOptions) { Name = "Project repository" }; packageManager.AddProjectPackage(PackageRequest.Any("openwrap"), new[] { Environment.SystemRepository }, projectDescriptor, projectRepository, PackageAddOptions.Default | PackageAddOptions.Anchor | PackageAddOptions.Content).ToList(); yield return(new GenericMessage("Project repository initialized.")); }
public async Task <IActionResult> SendMessages([FromBody] PackageRequest packageRequest) { if (ModelState.IsValid) { var res = new PackageResponse { Send = new List <ResponseMsg> { new ResponseMsg { Id = 1, MsgErrorCode = "test" }, new ResponseMsg { Id = 2, ServerId = "1", Value = "test" } } }; return(Ok(res)); } return(BadRequest(ErrorResponse.GetError(ErrorCodes.BAD_XML))); }
static void CheckForUpdatesDemo() { var owner = new PackageRequest(); EditorCoroutineUtility.StartCoroutine(MonitorPackageUpdate(owner, gitUrlDemo, "Graphene Demo"), owner); }
static void CheckForUpdatesComponents() { var owner = new PackageRequest(); EditorCoroutineUtility.StartCoroutine(MonitorPackageUpdate(owner, gitUrlCore, "Graphene Components"), owner); }
private void Authenticate(IPEndPoint host, int attemptsP) { this.socket = new MessengerSocket(host) { AutoFlush = false }; //Agora que estamos ligados ao Notification Server vamos começar o processo de autenticação!!! #region Request //Request this Data! PackageRequest[] request = new PackageRequest[] { new VersionRequest(), new MachineInfoRequest(this.Account), new AuthenticationRequest(this.Account) }; //Get responses from the server! Dictionary <int, PackageTransaction> responses = this.socket.SendRangeAndBlock(request); #endregion #region Parse Responses if Any //Agora que temos as respostas vamos verificar se estão correctas! //Seja em quantidade, seja em 'qualidade'... if (responses.Count != 3) { throw new MessengerException("Unable to receive one or more responses from the server"); } //Responses! VersionResponse version = responses[request[0].TransactionID].Response as VersionResponse; MachineInfoResponse machine = responses[request[1].TransactionID].Response as MachineInfoResponse; AuthenticationResponse authentication = responses[request[2].TransactionID].Response as AuthenticationResponse; //Verificar se recebemos as respostas certas! version.NotNull <VersionResponse, MessengerProtocolException>("Unexpected response"); machine.NotNull <MachineInfoResponse, MessengerProtocolException>("Unexpected response"); if (authentication == null) { //Vamos ver se fomos redirecionados para outro servidor! DispatchServerRedirectionResponse redirection = responses[request[2].TransactionID].Response as DispatchServerRedirectionResponse; redirection.NotNull <DispatchServerRedirectionResponse, MessengerProtocolException>("Unexpected response"); //Caso tenhamos sido redireccionados novamente! //Vamos tentar autenticação ai! if (attemptsP >= 0) { this.Authenticate(redirection.Host, attemptsP - 1); } return; } //Verificar se é uma versão suportada do protocolo! version.Protocols.MustContainElement <string, MessengerProtocolException>("MSNP15", "Unsupported Protocol"); //Verificar se o nosso cliente ainda é aceitável! if ((request[1] as MachineInfoRequest).ClientVersion < machine.MinimumSafeVersion) { //Ignore! We are not a client! We are just the libraries! //throw new Exception("Unsupported client"); } #endregion //Como chegamos até aqui //Temos confiança que podemos prosseguir com a autenticação! #region Request Credentials //Vamos obter as nossas credenciais! //E neste caso vamos obter credencias para todos os serviços! PassportRequest pr = new PassportRequest(this.Account, this.Password, authentication.Policy); this.Credentials = pr.RequestCredentials(); #endregion //Agora que temos as credenciais! //Vamos POR FIM tentar o 'passo final' de autenticação #region Validade Credentials const string authDomain = "messengerclear.live.com"; if (!this.Credentials.ContainsKey(authDomain)) { throw new MessengerAuthenticationException("Could not retrieve Credentials"); } string securityToken = this.Credentials[authDomain].SecurityToken; string binarySecret = this.Credentials[authDomain].BinarySecret; securityToken.NotEmpty <MessengerAuthenticationException>("Could not retrieve Credentials"); binarySecret.NotEmpty <MessengerAuthenticationException>("Could not retrieve Credentials"); string finalTicket = MessengerSocket.CalculateMBIResponse(binarySecret, authentication.Nonce); #endregion #region Final Request request = new PackageRequest[] { new AuthenticationRequest(true, string.Format("{0} {1}", securityToken, finalTicket)) }; //Get response from the server! responses = this.socket.SendRangeAndBlock(request); #endregion #region Final Parse Responses If Any //Agora que temos as respostas vamos verificar se estão correctas! //Seja em quantidade, seja em 'qualidade'... if (responses.Count != 1) { throw new MessengerException("Unable to receive response from the server"); } //Responses! AuthenticationAchievedResponse authenticatedGranted = responses[request[0].TransactionID].Response as AuthenticationAchievedResponse; authenticatedGranted.NotNull <AuthenticationAchievedResponse, MessengerProtocolException>("Unexpected response"); #endregion //Hacker lingo! //We are in! }
private void tbWeight_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { try { if (string.IsNullOrWhiteSpace(tbWeight.Text.Trim())) { MessageBox.Show("请录入重量!"); tbWeight.Focus(); return; } decimal weight = 0; decimal.TryParse(tbWeight.Text.Trim(), out weight); if (weight <= 0) { MessageBox.Show("录入重量必须大于0!"); tbWeight.Focus(); return; } curWeight = Util.ConvertGToJin(weight); //if (curWeight<downWeight) //{ // MessageBox.Show("重量不能小于浮动下限"); // return; //} //if (curWeight>upWeight) //{ // MessageBox.Show("重量不能大于浮动上限"); // return; //} tbWeight.Enabled = false; PackageRequest request = new PackageRequest(); request.packTaskDetailId = curTaskDetailId; request.processUser = UserInfo.RealName; request.weight = curWeight; request.packTaskCode = taskCode; request.outboundTaskCode = curOutStockCode; request.skuCode = curSkuCode; request.createUser = UserInfo.RealName; request.updateUser = UserInfo.RealName; request.partnerCode = UserInfo.PartnerCode; request.partnerName = UserInfo.PartnerName; PackageResponse response = client.Execute(request); if (!response.IsError) { curPackageCode = response.result; PrintDocument document = new PrintDocument(); document.DefaultPageSettings.PaperSize = new PaperSize("Custum", 270, 180); #if (!DEBUG) PrintDialog dialog = new PrintDialog(); document.PrintPage += new PrintPageEventHandler(this.pd_PrintPage); dialog.Document = document; #else PrintPreviewDialog dialog = new PrintPreviewDialog(); document.PrintPage += new PrintPageEventHandler(this.pd_PrintPage); dialog.Document = document; #endif try { document.Print(); } catch (Exception exception) { MessageBox.Show("打印异常" + exception); document.PrintController.OnEndPrint(document, new PrintEventArgs()); } //打印,加载下一个 ClearForm(); tbWeight.Text = ""; ShowDetail(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { tbWeight.Enabled = true; tbWeight.Focus(); } } }
protected override IEnumerable <ICommandOutput> ExecuteCore() { var targetDescriptor = HostEnvironment.GetOrCreateScopedDescriptor(Scope ?? string.Empty); yield return(VerifyDescriptor(targetDescriptor)); yield return(VerifyProjectRepository()); yield return(SetupEnvironmentForAdd()); var sourceRepositories = GetSourceRepositories(); if (Project && System) { var sysToAdd = new List <PackageIdentifier>(); using (ChangeMonitor(targetDescriptor)) { foreach (var m in PackageManager.AddProjectPackage(PackageRequest, sourceRepositories, targetDescriptor.Value, HostEnvironment.ProjectRepository, AddOptions)) { yield return(ToOutput(m)); ParseSuccess(m, sysToAdd.Add); } foreach (var identifier in sysToAdd) { foreach (var m in PackageManager.AddSystemPackage(PackageRequest.Exact(identifier.Name, identifier.Version), sourceRepositories, HostEnvironment.SystemRepository)) { yield return(ToOutput(m)); } } } } else if (Project) { using (ChangeMonitor(targetDescriptor)) { foreach (var m in PackageManager.AddProjectPackage(PackageRequest, sourceRepositories, targetDescriptor.Value, HostEnvironment.ProjectRepository, AddOptions)) { yield return(ToOutput(m)); } } } else if (System) { foreach (var m in PackageManager.AddSystemPackage(PackageRequest, sourceRepositories, HostEnvironment.SystemRepository, AddOptions)) { yield return(ToOutput(m)); } } if (_packageNotFound) { var hit = false; foreach (var m in PackageManager.ListPackages(sourceRepositories, Name)) { if (!hit) { yield return(new Info("Did you mean one of the following package?", Name)); hit = true; } yield return(ToOutput(m)); } } if (ShouldUpdateDescriptor) { TrySaveDescriptorFile(targetDescriptor); } }
public PackageResponse SendAndBlock <T>(PackageRequest request) { return(this.SendAndBlock <T>(request, this.Timeout)); }
private void btnPackageRequest_Click_OLD(object sender, EventArgs e) { if (HCPACS4.AdobeConfig.DELETE_FROM_FTP) { MessageBox.Show("Beware Delete From FTP"); } log.Info("Begin ACS4 ingestion process..."); int numFilesDropped = 0; int numFilesIngested = 0; ACS4ApiResponse builtInCatalogRaw = null; Dictionary <string, ACS4CatalogResourceMapItem> mapBuiltInCatalog = null; IEnumerable <ACS4Catalog> builtInCatalog = null; ACS4ApiResponse eCtbCatalogRaw = null; Dictionary <string, ACS4CatalogResourceMapItem> eCtbCatalogMap = null; IEnumerable <ACS4Catalog> eCtbCatalog = null; List <List <HCPACS4.FileIO.HCPFileInfo> > allDroppedFiles = new List <List <HCPACS4.FileIO.HCPFileInfo> >(); var dbRunLog = new ACS4Ingest.RunLog(); dbRunLog.StartTimeUtc = System.DateTime.UtcNow; dbRunLog.BatchSize = HCPACS4.AdobeConfig.BATCH_SIZE; dbRunLog.Insert(); // check for any files on drop folders var dropFolders = ACS4Ingest.ConfigFtpDropFolder.Query("SELECT * FROM ConfigFtpDropFolder WHERE Enabled = 1"); foreach (var dropFolder in dropFolders) { try { log.Info(String.Format("List dropped epubs for {0} from {1}{2}", dropFolder.Alias, dropFolder.FtpHost, dropFolder.FtpRemotePath)); var ftpDrop = new DropFolder(dropFolder.Id, dropFolder.Alias, dropFolder.FtpHost, dropFolder.FtpUser, dropFolder.FtpPassword, dropFolder.FtpRemotePath, dropFolder.Enabled); var droppedFiles = ftpDrop.ListFiles(".epub"); var dbFileStats = new ACS4Ingest.DropFolderStat(); dbFileStats.RunLogId = dbRunLog.Id; dbFileStats.DropFolderId = dropFolder.Id; dbFileStats.EpubCount = droppedFiles.Count; dbFileStats.Insert(); numFilesDropped += droppedFiles.Count; log.Info(String.Format("{0} epubs found at {1}{2}", droppedFiles.Count, dropFolder.FtpHost, dropFolder.FtpRemotePath)); } catch (Exception ex) { log.Error(String.Format("Exception listing files for {0} from {1}{2}", dropFolder.Alias, dropFolder.FtpHost, dropFolder.FtpRemotePath), ex); } } dbRunLog.NumFilesDropped = numFilesDropped; dbRunLog.Update(); if (numFilesDropped == 0) { log.Info(String.Format("No epubs to process, exiting job.")); return; } /** Get ACS4 catalogs **/ try { // Get ACS4 Built In Distributor catalog to know if an asset already exists in ACS4 system log.Info(String.Format("Fetching ACS4 Built In Distributor catalog...")); builtInCatalogRaw = eCTB.FetchCatalog(HCPACS4.AdobeConfig.ACS_ECTB_BUILTIN_DISTRIBUTORID, HCPACS4.AdobeConfig.ACS_ECTB_BUILTIN_SECRET_KEY); if (!builtInCatalogRaw.IsError()) { builtInCatalog = HCPUtils.ParseACS4Catalog(builtInCatalogRaw.ResponseBody); mapBuiltInCatalog = HCPUtils.MapIsbnToACS4Resource(builtInCatalog); log.Info(String.Format("ACS4 Built In Distributor fetched successfully with {0} records", builtInCatalog.Count())); } else { log.Error(String.Format("Error Fetching ACS4 Built In Distributor : {0} - {1}", builtInCatalogRaw.ErrorCode, builtInCatalogRaw.ErrorMessage)); } // Get eCTB catalog - to know if epub has already been assigned distribution rights within eCTB distributor log.Info(String.Format("Fetching eCtb Distributor catalog...")); eCtbCatalogRaw = eCTB.FetchCatalog(HCPACS4.AdobeConfig.ACS_ECTB_DISTRIBUTORID, HCPACS4.AdobeConfig.ACS_ECTB_SECRET_KEY); if (!eCtbCatalogRaw.IsError()) { eCtbCatalog = HCPUtils.ParseACS4Catalog(eCtbCatalogRaw.ResponseBody); eCtbCatalogMap = HCPUtils.MapIsbnToACS4Resource(eCtbCatalog); log.Info(String.Format("eCtb Distributor fetched successfully with {0} records", eCtbCatalog.Count())); } else { log.Error(String.Format("Error Fetching eCtb Distributor : {0} - {1}", eCtbCatalogRaw.ErrorCode, eCtbCatalogRaw.ErrorMessage)); } dbRunLog.InitialCountBuiltInCatalog = builtInCatalog.Count(); dbRunLog.InitialCounteCtbCatalog = eCtbCatalog.Count(); dbRunLog.Update(); } catch (Exception ex) { log.Error("Exception fetching ACS4 catalog(s)", ex); } /** Get the files and begin processing **/ if (!builtInCatalogRaw.IsError() && !eCtbCatalogRaw.IsError() && numFilesDropped > 0) { // Download the files from FTP List <HCPFileInfo> fetchedFiles = new List <HCPFileInfo>(); foreach (var dropFolder in dropFolders) { log.Info(String.Format("Downloading files from {0}{1} ...", dropFolder.FtpHost, dropFolder.FtpRemotePath)); string savePath = String.Format(@"{0}\{1}", HCPACS4.AdobeConfig.LOCAL_STAGING_PATH.TrimEnd('\\'), dropFolder.Alias); var ftpDrop = new DropFolder(dropFolder.Id, dropFolder.Alias, dropFolder.FtpHost, dropFolder.FtpUser, dropFolder.FtpPassword, dropFolder.FtpRemotePath, dropFolder.Enabled); var files = ftpDrop.DownloadFiles(".epub", savePath, HCPACS4.AdobeConfig.BATCH_SIZE, HCPACS4.AdobeConfig.DELETE_FROM_FTP); log.Info(String.Format("Downloaded {0} files from {1}{2} ...", files.Count, dropFolder.FtpHost, dropFolder.FtpRemotePath)); foreach (var f in files) { f.DropFolderAlias = dropFolder.Alias; f.DropFolderId = dropFolder.Id; } fetchedFiles.AddRange(files); } // load / analyze / package epub files foreach (var f in fetchedFiles) { bool existsBuiltInCatalog = false; bool existsEctbDistributionRights = false; bool galleyAttemptingToOverwriteNonGalley = false; Epub epub = new Epub(f.FullName, f.DropFolderAlias); var dbLog = new ACS4Ingest.IngestionLog(); dbLog.RunLogId = dbRunLog.Id; dbLog.EpubFileName = f.FileName; dbLog.Isbn = epub.Isbn; dbLog.FileSize = epub.FileSizeBytes; dbLog.ArchivePath = f.FileArchivePath; dbLog.DropFolderId = f.DropFolderId; dbLog.IsbnFromFileName = epub.IsbnFromFileName; dbLog.IsbnFromOpf = epub.IsbnFromOpf; dbLog.OpfIdentifier = epub.OpfIdentifier; dbLog.IsCorrupt = epub.CorruptFile; dbLog.EnteredDateUtc = System.DateTime.UtcNow; dbLog.Insert(); /** PreFlight Checks **/ /** TODO: * Needs some refactoring: * move to function * log to IngestionErrors table accomodate 1 to many to multiple to table **/ if (epub.CorruptFile) { log.Info(String.Format("FailedPreFlightCheck {0} : {1}", "CorruptFile", epub.FullName)); dbLog.Ingested = false; dbLog.IsValidPreCheck = false; dbLog.PreCheckError = "CorruptFile"; dbLog.Update(); continue; } if (epub.IsbnFromFileName != epub.IsbnFromOpf) { log.Info(String.Format("FailedPreFlightCheck {0} : {1}", "IsbnMismatchFileNameOpf", epub.FullName)); dbLog.IsbnFromOpf = epub.IsbnFromOpf; dbLog.Ingested = false; dbLog.IsValidPreCheck = false; dbLog.PreCheckError = "IsbnMismatchFileNameOpf"; dbLog.Update(); continue; } if (epub.InvalidDocType) { log.Info(String.Format("FailedPreFlightCheck {0} : {1}", "InvalidDocType", epub.FullName)); dbLog.Ingested = false; dbLog.IsValidPreCheck = false; dbLog.PreCheckError = "InvalidDocType"; dbLog.Update(); continue; } // TODO: Zero in on this size restriction - 50 MB for now if (epub.FileSizeBytes > HCPACS4.AdobeConfig.MAX_FILE_SIZE) { log.Info(String.Format("FailedPreFlightCheck {0} : {1}", "FileTooLarge", epub.FullName)); dbLog.Ingested = false; dbLog.IsValidPreCheck = false; dbLog.PreCheckError = "FileTooLarge"; dbLog.Update(); continue; } // lookup to see if isbn exists in Built In Catalog // ACS4 does not work on isbn13, it will happily ingest the same isbn several times ACS4CatalogResourceMapItem mappedBuiltInCatalog; //TODO: using Isbn //if (mapBuiltInCatalog.TryGetValue(epub.IsbnFromOpf, out mappedBuiltInCatalog)) if (mapBuiltInCatalog.TryGetValue(epub.Isbn, out mappedBuiltInCatalog)) { epub.ACS4Guid = mappedBuiltInCatalog.Guid; existsBuiltInCatalog = true; if (epub.IsGalley && !mappedBuiltInCatalog.IsGalley) { galleyAttemptingToOverwriteNonGalley = true; } } // See if book is already assigned to eCTB Distributor if (eCtbCatalog.Any(i => i.resource == epub.ACS4Guid)) { existsEctbDistributionRights = true; } dbLog.IsValidPreCheck = true; dbLog.IngestType = existsBuiltInCatalog ? "update" : "add"; /* Abort ingest if this file is a galley and existing is a non Galley */ if (galleyAttemptingToOverwriteNonGalley) { log.Info(String.Format("IngestAborted {0} : {1}", "GalleyCannotOverwriteNonGalley", epub.FullName)); dbLog.Ingested = false; dbLog.IsValidPreCheck = false; dbLog.PreCheckError = "GalleyCannotOverwriteNonGalley"; dbLog.Update(); continue; } PackageRequest package = new PackageRequest(epub); PackageRequestResponse packageResponse = package.SendRequest(); log.Info(String.Format("{0} : {1} : {2}", (bool)packageResponse.Ingested ? "INGESTED" : "NOT INGESTED", epub.FullName, packageResponse.Ingested ? null : String.Format("{0} : {1}", packageResponse.ErrorCode, packageResponse.ErrorMessage))); // assign to eCTB distributor if does not already exists ACS4ApiResponse rightsReqResponse = null; if ((bool)packageResponse.Ingested && !existsEctbDistributionRights) { // assign the book to the eCTB distributor ManageDistributionRights rightsReq = new ManageDistributionRights(HCPACS4.AdobeConfig.ACS_ECTB_DISTRIBUTORID, packageResponse.ACS4Guid); rightsReqResponse = rightsReq.AssignRights(); rightsReq = null; numFilesIngested++; } dbLog.PackageHttpResponseCode = (int)packageResponse.HttpStatusCode; dbLog.Ingested = (bool)packageResponse.Ingested; dbLog.ACS4Guid = packageResponse.ACS4Guid; dbLog.FileSize = epub.FileSizeBytes; dbLog.PackageResponse = packageResponse.ResponseBody; dbLog.PackageErrorCode = packageResponse.IsError() ? packageResponse.ErrorCode : null; //TODO: Ensure we truncate to 256 dbLog.PackageErrorMessage = packageResponse.IsError() ? String.IsNullOrEmpty(packageResponse.ErrorMessage) ? null : packageResponse.ErrorMessage.Substring(0, 256) : null; dbLog.PackageErrorMessage = packageResponse.IsError() ? packageResponse.ErrorMessage : null; if (rightsReqResponse != null) { dbLog.DistributionRightsAssigned = !rightsReqResponse.IsError(); dbLog.DistributionRightsErrorCode = rightsReqResponse.IsError() ? rightsReqResponse.ErrorCode : null; //TODO: Ensure we truncate to 256 dbLog.DistributionRightsErrorMessage = rightsReqResponse.IsError() ? String.IsNullOrEmpty(rightsReqResponse.ErrorMessage) ? rightsReqResponse.ErrorMessage.Substring(0, 256) : null : null; dbLog.DistributionRightsErrorMessage = rightsReqResponse.IsError() ? rightsReqResponse.ErrorMessage : null; } dbLog.EnteredDateUtc = System.DateTime.UtcNow; //dbLog.Insert(); dbLog.Update(); dbLog = null; package = null; packageResponse = null; rightsReqResponse = null; } } else { log.Info(String.Format("Nothing to do, exiting job.")); } dbRunLog.NumFilesIngested = numFilesIngested; dbRunLog.EndTimeUtc = System.DateTime.UtcNow; dbRunLog.Update(); log.Info(String.Format("Total files ingested {0}", numFilesIngested)); log.Info("End ACS4 ingestion process"); MessageBox.Show("Done"); }