public PushResponse Process(PushRequest pRequest) { Loggers.Debug(new DebugLogInfo() { Message = pRequest.ToJSON() }); PushResponse response; switch (pRequest.PlatForm) { case 1: AndroidRequestHandler handler1 = new AndroidRequestHandler(); response = handler1.Process(pRequest); break; case 2: IOSRequestHandler handler2 = new IOSRequestHandler(); response = handler2.Process(pRequest); break; default: response = new PushResponse(); response.ResultCode = 100; response.Message = "错误的平台,只支持Android和IOS"; break; } return(response); }
protected override void HandlePushRequest(PushRequest message, List <int> candidates) { var ncandidates = candidates.Take((int)TestedHostsCount).ToList(); int instanceId = Helpers.RandomNumberGenerator.GetInstanceRandomNumber(); LeastFullAuction pushAuction = new LeastFullAuction(instanceId, message.SenderId, ncandidates, StrategyActionType.PushAction); Console.WriteLine($"\tMaster: Initiate a Push Auction of Host#{message.SenderId} with #{instanceId}"); foreach (var candidateHostId in ncandidates) { if (candidateHostId == 0) { throw new NotImplementedException(); } PushLoadAvailabilityRequest request = new PushLoadAvailabilityRequest(candidateHostId, this.MachineId, message.SelectedContainerLoadInfo, instanceId, pushAuction.Owner); CommunicationModule.SendMessage(request); //Console.WriteLine($"+\n\tSending Message for Host #{candidateHostId} and Auction #{auctionId}"); } if (_currentAuction != null) { throw new NotImplementedException(); } //Auctions.Add(pushAuction); Used = message.SenderId; _currentAuction = pushAuction; }
public ActionResult Push(PushRequest pushRequest) { var user = this.AllorsUser ?? Singleton.Instance(this.AllorsSession).Guest; var response = new PushResponseBuilder(this.AllorsSession, user, pushRequest, Group); return(this.JsonSuccess(response.Build())); }
private async Task <IActionResult> ExecutePush(string userId, PushRequest request) { if (!ModelState.IsValid) { return(BadRequest()); } try { if (!string.IsNullOrEmpty(request.ChannelId)) { await pushService.Push(request.ChannelId, request.Payload, request.Options); } else if (null != request.ChannelOptions) { await pushService.Push(userId, request.ChannelOptions, request.Payload, request.Options); } return(StatusCode(201)); } catch (PushConfigurationNotFoundException) { return(NotFound()); } catch (PushPartiallyFailedException ex) { await HandleFailures(userId, ex); return(StatusCode(201)); } catch (PushFailedException ex) { await HandleFailures(userId, ex); throw; } }
public override async Task <Null> Broadcast(PushRequest request, ServerCallContext context) { var count = await Frontend.PushService.Pusher.SendMessageToAll(request); logger.LogInformation($"{count} broadcasted message : {request.PushMessage}"); return(new Null()); }
public static string PostPackagePushRequest(PushRequest pushRequest) { string requestID = string.Empty; try { using (var client = new HttpClient()) { string url = pushRequest.InstanceUrl + pushRequest.ApiVersion + SFDCPushRequestUrl; var request = new HttpRequestMessage(HttpMethod.Post, url); request.Headers.Add("Authorization", "Bearer " + pushRequest.AccessToken); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); PackagePushRequest pr = new PackagePushRequest(); if (pushRequest.ScheduledStartTime != null && pushRequest.ScheduledStartTime != DateTime.MinValue) { pr.ScheduledStartTime = pushRequest.ScheduledStartTime; } pr.PackageVersionId = pushRequest.PackageVersionId; string jsonbody = JsonConvert.SerializeObject(pr); request.Content = new StringContent(jsonbody, Encoding.UTF8, "application/json"); var response = client.SendAsync(request).Result; requestID = response.Content.ReadAsStringAsync().Result; } } catch (Exception) { throw; } return(requestID); }
public async void WorkspaceNewObject() { var administrator = new Users(this.Session).GetUser("administrator"); await this.SignIn(administrator); var uri = new Uri(@"Database/Push", UriKind.Relative); var pushRequest = new PushRequest { NewObjects = new[] { new PushRequestNewObject { T = "Build", NI = "-1" }, } }; var response = await this.PostAsJsonAsync(uri, pushRequest); var pushResponse = await this.ReadAsAsync <PushResponse>(response); this.Session.Rollback(); var build = (Build)this.Session.Instantiate(pushResponse.NewObjects[0].I); Assert.Equal(new Guid("DCE649A4-7CF6-48FA-93E4-CDE222DA2A94"), build.Guid); Assert.Equal("Exist", build.String); }
public PushRequest PushRequest() { var data = new PushRequest { newObjects = new List <PushRequestNewObject>(), objects = new List <PushRequestObject>() }; foreach (var newSessionObject in this.newSessionObjectById.Values) { var objectData = newSessionObject.SaveNew(); if (objectData != null) { data.newObjects.Add(objectData); } } foreach (var sessionObject in this.sessionObjectById.Values) { var objectData = sessionObject.Save(); if (objectData != null) { data.objects.Add(objectData); } } return(data); }
public PushRespose Reject(string caseNum) { string hatsHost = ConfigurationManager.AppSettings["hats_host"]; if (hatsHost.IsNullOrEmpty()) { throw new Exception("缺少hats_host配置节"); } var rejectCase = new PublicMortgageDto() { CaseNum = caseNum, Status = 2 }; var resquestBody = new PushRequest() { RequestData = rejectCase.ToHatsString() }; var request = new HttpItem() { URL = string.Format("{0}/api/BaseAuditPush/AddBaseAuditByPublic", hatsHost), Method = "post", ContentType = "application/json;charset=utf-8", Postdata = resquestBody.ToJson(), Accept = "text/json", PostEncoding = Encoding.UTF8 }; var httpResult = new HttpHelper().GetHtml(request); return(Newtonsoft.Json.JsonConvert.DeserializeObject <PushRespose>(httpResult.Html)); }
public HttpResponseMessage Post(PushRequest req) { HttpResponseMessage message = null; try { // schedule the sending of the push notification var ci = _orchardServices.ContentManager.Create("BackgroundPush"); var part = ci.As <MobilePushPart>(); part.DevicePush = req.DevType; part.PushSent = false; part.TestPush = !req.Prod; part.TestPushToDevice = false; part.TextPush = req.Text; part.ToPush = true; part.UseRecipientList = false; // set external url on a dedicated field on this content item var urlField = ci.Parts.FirstOrDefault(x => x.PartDefinition.Name == "BackgroundPush").Fields.FirstOrDefault(x => x.Name == "ExternalUrl"); (urlField as TextField).Value = req.ExternalUrl; // force publish of content item to start scheduled task that will send push notifications ci.VersionRecord.Published = false; _orchardServices.ContentManager.Publish(ci); message = new HttpResponseMessage(System.Net.HttpStatusCode.OK); message.Content = new StringContent("OK"); } catch (Exception ex) { Logger.Error(ex, "ExternalPushController - Error starting asynchronous thread to send push notifications."); message = new HttpResponseMessage(System.Net.HttpStatusCode.InternalServerError); message.Content = new StringContent(ex.Message); } return(message); }
public async Task <IActionResult> Post([FromBody] PushRequest pushRequest) { pushRequest.Message = pushRequest.Message; var message = await _webPushService.SendNotificationForUser(1, pushRequest.Message); return(new CreatedResult("", message)); }
private void HandlePushRequest(PushRequest message, List <int> candidates) { var ncandidates = candidates.Take(calculateCountFromPercent(candidates.Count, TestedHostsCount)).ToList(); Auction pushAuction = CreateAuctionInstance(PushAuctionType, message.SenderId, ncandidates, StrategyActionType.PushAction); foreach (var candidateHostId in ncandidates) { if (candidateHostId == 0) { throw new NotImplementedException(); } PushLoadAvailabilityRequest request = new PushLoadAvailabilityRequest(candidateHostId, this.MachineId, message.SelectedContainerLoadInfo, pushAuction.InstanceId, pushAuction.Owner); CommunicationModule.SendMessage(request); //Console.WriteLine($"+\n\tSending Message for Host #{candidateHostId} and Auction #{auctionId}"); } if (_masterState.Auction != null) { throw new NotImplementedException(); } //Auctions.Add(pushAuction); //_masterState.CurrentAction = MasterCurrentAction.PushAuction; _masterState.CurrentHost = message.SenderId; _masterState.Auction = pushAuction; }
public object Any(PushRequest request) { //Check if the Api Key provided by client match the key in app.config if (request.ApiKey == Settings.ApiKey) { foreach (var pushNotification in request.Notifications) { switch (pushNotification.Provider) { case Provider.Apple: //NOTE: Apple Notification Payload has 256 chars limit. PushBroker.QueueNotification(new AppleNotification().ForDeviceToken(pushNotification.PushId).WithCustomItem("data", HttpUtility.UrlDecode(pushNotification.Data))); break; case Provider.Android: PushBroker.QueueNotification(new GcmNotification().ForDeviceRegistrationId(pushNotification.PushId) .WithJson(HttpUtility.UrlDecode(pushNotification.Data))); break; case Provider.WindowsPhone: PushBroker.QueueNotification(new WindowsPhoneRawNotification().ForEndpointUri(new Uri(pushNotification.PushId)) .WithRaw(HttpUtility.UrlDecode(pushNotification.Data))); break; } } return(new PushResponse() { Result = request.Notifications.Length + " notifications encoded" }); } throw new HttpError(HttpStatusCode.Unauthorized, "Invalid Api Key"); }
/// <summary> /// 接收推送消息 /// </summary> /// <param name="xml">请求消息</param> /// <param name="configData">configData</param> /// <returns>处理结果</returns> public static PushResult ReceivePushMessage(string xml, ConfigData configData) { PushRequest pushRequest = new PushRequest { Xml = xml, EncodingAESKey = configData.EncodingAESKey, ComponentVerifyTicket = configData.component_verify_ticket_key, ValidityTime = DateTime.Now.AddDays(1) }; XElement doc = XElement.Parse(pushRequest.Xml); var encry = doc.Element("Encrypt").GetString(); string encodingAESKey = pushRequest.EncodingAESKey; string appid = string.Empty; var xmlContent = Cryptography.AES_decrypt(encry, encodingAESKey, ref appid); PushResult pushResult = TenpayUtil.ConvertToPushRequest(xmlContent); if (pushResult.InfoType == "component_verify_ticket") { // 写入缓存 //Redis.SetRedis(pushRequest.ComponentVerifyTicket, pushResult.ComponentVerifyTicket, pushRequest.ValidityTime); pushResult.IsSucceed = !string.IsNullOrEmpty(pushRequest.ComponentVerifyTicket); } else { pushResult.IsSucceed = false; pushResult.Message = $"暂不处理类型{pushResult.InfoType}"; } return(pushResult); }
/// <summary> /// - Broadcast to all devices /// - Broadcast to one device type /// - Send to a targeted device /// - Broadcast to all devices with a different alert for each type /// </summary> /// <param name="alert">The message to be pushed</param> /// <param name="deviceTypes">use null for broadcast</param> /// <param name="deviceId">use null for broadcast or deviceTypes must contain 1 element that distinguishes this deviceId</param> /// <param name="deviceAlerts">per device alert messages and extras</param> /// <param name="customAudience">a more specific way to choose the audience for the push. If this is set, deviceId is ignored</param> /// <returns></returns> public BaseResponse Push(String alert, IList <DeviceType> deviceTypes = null, String deviceId = null, IList <BaseAlert> deviceAlerts = null, Audience customAudience = null) { var request = new PushRequest(CreatePush(alert, deviceTypes, deviceId, deviceAlerts, customAudience)); var response = request.ExecuteAsync(); return(response.Result); }
public void PushMessage(LoggingSessionInfo loggingSessionInfo, dynamic paramter) { DynamicInterfaceBLL dynamicInterfaceBLL = new DynamicInterfaceBLL(loggingSessionInfo); var eventList = dynamicInterfaceBLL.getEventList(new ReqData <getActivityListEntity>() { common = new ReqCommonData() { customerId = loggingSessionInfo.ClientID }, special = new getActivityListEntity() { type = "new", page = 1, pageSize = 5 } }); if (eventList.ItemList != null && eventList.ItemList.Length > 0) { int channelID = 0; string message = ""; PrepareMessage(loggingSessionInfo, paramter, out channelID, out message); PushUserBasicBLL pushUserBasicBLL = new PushUserBasicBLL(loggingSessionInfo); PushUserBasicEntity[] pushUserBasicEntity = pushUserBasicBLL.Query(new JIT.Utility.DataAccess.Query.IWhereCondition[] { new JIT.Utility.DataAccess.Query.EqualsCondition() { FieldName = "IsDelete", Value = "0" } , new JIT.Utility.DataAccess.Query.EqualsCondition() { FieldName = "CustomerId", Value = loggingSessionInfo.ClientID } , new JIT.Utility.DataAccess.Query.DirectCondition() { Expression = "Plat<>'Android'" } }, null); string json = ""; foreach (var item in pushUserBasicEntity) { PushRequest pRequest2 = RequestBuilder.CreateIOSUnicastNotificationRequest(1, channelID, item.DeviceToken, message); var request = pRequest2.Request.DeserializeJSONTo <JdSoft.Apple.Apns.Notifications.Notification>(); request.Payload.CustomItems.Add("EventUrl", new string[] { "http://o2oapi.aladingyidong.com/HtmlApps/html/public/xiehuibao/activity.html?customerId=" + loggingSessionInfo.ClientID + "&type=new" }); pRequest2.Request = request.ToJSON(); json = "{\"pRequest\":" + pRequest2.ToJSON() + "}"; ThreadPool.QueueUserWorkItem(new WaitCallback(SendHttpRequest), json); } //var response2 = SendHttpRequest(url, method, json); } else { SendMarketingMessageBLL.log.WriteEntry("无新活动", System.Diagnostics.EventLogEntryType.Information); } }
public static NotificationEntity ToNotificationEntity(this PushRequest request) { return(new NotificationEntity { Username = request.Username, NoteText = request.Text, NoteTitle = request.Title }); }
public async Task <ActionResult> Put([FromBody] PushRequest request) { if (!ModelState.IsValid) { return(new BadRequestResult()); } var result = await _notificationsService.SendNotification(request.ToNotificationEntity()); return(new JsonResult(result.ToNotificationStatusResponse())); }
public PushRequest PushRequest() { var data = new PushRequest { NewObjects = this.newSessionObjectById.Select(v => v.Value.SaveNew()).ToArray(), Objects = this.sessionObjectById.Select(v => v.Value.Save()).Where(v => v != null).ToArray() }; return(data); }
public void AdministratorRemoveMany() { // Arrange var administrator = new People(this.Session).FindBy(M.Person.UserName, Users.AdministratorUserName); var c1a = new C1Builder(this.Session) .Build(); var c1b = new C1Builder(this.Session) .Build(); var c1c = new C1Builder(this.Session) .Build(); c1a.AddC1C1One2Many(c1b); c1a.AddC1C1One2Many(c1c); this.Session.Derive(); this.Session.Commit(); var saveRequest = new PushRequest { Objects = new[] { new PushRequestObject { I = c1a.Id.ToString(), V = c1a.Strategy.ObjectVersion.ToString(), Roles = new List <PushRequestRole> { new PushRequestRole { T = "C1C1One2Many", R = new [] { c1c.Id.ToString() } } } } } }; var controller = new DatabaseController { AllorsSession = this.Session, AllorsUser = administrator }; // Act var jsonResult = (JsonResult)controller.Push(saveRequest); var saveResponse = (PushResponse)jsonResult.Data; // Assert this.Session.Rollback(); saveResponse.HasErrors.ShouldBeFalse(); c1a.C1C1One2Manies.ShouldNotBeSameAs(new[] { c1b }); }
public async Task <PushResponse> Push(PushRequest pushRequest) { var uri = new Uri("Database/Push", UriKind.Relative); var response = await this.Client.PostAsJsonAsync(uri, pushRequest); response.EnsureSuccessStatusCode(); var pushResponse = await response.Content.ReadAsAsync <PushResponse>(); return(pushResponse); }
protected Dictionary <string, Alert> CheckAppleRequest(PushRequest request) { var dicLanguage = JsonConvert.DeserializeObject <Dictionary <string, Alert> >(request.Payload); // 푸시 발송 시 영어는 기본 if (dicLanguage.ContainsKey("English") == false) { return(null); } return(dicLanguage); }
private Dictionary <string, AndroidNotification> CheckGoogleRequest(PushRequest request) { var dicLanguage = JsonConvert.DeserializeObject <Dictionary <string, AndroidNotification> >(request.Payload); // 푸시 발송 시 영어는 기본 if (dicLanguage.ContainsKey("English") == false) { return(null); } return(dicLanguage); }
public void AdministratorNewSetNewOne() { // Arrange var administrator = new People(this.Session).FindBy(M.Person.UserName, Users.AdministratorUserName); this.Session.Commit(); var saveRequest = new PushRequest { NewObjects = new[] { new PushRequestNewObject { NI = "-1", T = "C1", Roles = new List <PushRequestRole> { new PushRequestRole { T = "C1C1One2One", S = "-1" } } } } }; var controller = new DatabaseController { AllorsSession = this.Session, AllorsUser = administrator }; // Act var jsonResult = (JsonResult)controller.Push(saveRequest); var saveResponse = (PushResponse)jsonResult.Data; // Assert this.Session.Rollback(); saveResponse.HasErrors.ShouldBeFalse(); saveResponse.NewObjects.Length.ShouldEqual(1); var newObject = saveResponse.NewObjects[0]; var newId = newObject.NI; var id = newObject.I; newId.ShouldEqual("-1"); var c1 = (C1)this.Session.Instantiate(id); c1.ShouldNotBeNull(); c1.C1C1One2One = c1; }
public override async Task <PushResponse> Push(PushRequest request, ServerCallContext context) { if (await pusher.SendMessage(request.TargetUserId, request)) { return(new PushResponse { Result = PushResponse.Types.ResultType.Ok }); } return(new PushResponse { Result = PushResponse.Types.ResultType.NotExist }); }
public HttpRequestMessage Convert(PushRequest request, Dictionary <string, string> headers) { return(Convert(new Request { Headers = headers, ContentBody = request.ContentBody, ContentType = request.ContentType, MethodVerb = request.MethodVerb, ServiceType = request.ServiceType, SoapAction = request.SoapAction, Url = request.Url })); }
public async Task Create(PushRequest pushRequest) { var client = await clientFactory(); var json = JsonConvert.SerializeObject(pushRequest); var res = await client.PostAsync($"api/{userId}/push", new StringContent(json, Encoding.UTF8, "application/json")); if (!res.IsSuccessStatusCode) { throw new DigitPushServiceException($"Push creation request resulted in {res.StatusCode}."); } }
public void AdministratorSetUnit() { // Arrange var administrator = new People(this.Session).FindBy(M.Person.UserName, Users.AdministratorUserName); var c1a = new C1Builder(this.Session) .WithC1AllorsString("c1") .WithI1AllorsString("i1") .WithI12AllorsString("i12") .Build(); this.Session.Derive(); this.Session.Commit(); var pushRequest = new PushRequest { Objects = new[] { new PushRequestObject { I = c1a.Id.ToString(), V = c1a.Strategy.ObjectVersion.ToString(), Roles = new List <PushRequestRole> { new PushRequestRole { T = "C1AllorsString", S = "new c1" } } } } }; var controller = new DatabaseController { AllorsSession = this.Session, AllorsUser = administrator }; // Act var jsonResult = (JsonResult)controller.Push(pushRequest); var pushResponse = (PushResponse)jsonResult.Data; // Assert this.Session.Rollback(); pushResponse.HasErrors.ShouldBeFalse(); c1a.C1AllorsString.ShouldEqual("new c1"); }
protected override bool SendPushRequest() { var containerLoadInfo = GetToBeRemovedContainerLoadInfo(); if (containerLoadInfo != null) { _hostState.CurrentAction = HostCurrentAction.Pushing; PushRequest m = new PushRequest(0, this.MachineId, LoadManager.GetPredictedHostLoadInfo(), containerLoadInfo); CommunicationModule.SendMessage(m); return(true); } else { return(false); } }
public async Task PushAsync(string collection, string bucket, string @object, string text, string locale = null) { using (var session = this.CreateSession()) { var request = new PushRequest(text, locale); await this.RequestWriter.WriteOkAsync(session , "PUSH" , collection , bucket , @object , request.Text , request.Locale ); } }