private void _InviteRequestNotification(Message message) { InviteRequest inviteRequest = message.Inviterequest; Console.WriteLine("收到了来自用户的邀请:" + inviteRequest.Srcuserid.ToString()); ClientInfo.rival_user.userID = inviteRequest.Srcuserid; int userid = inviteRequest.Srcuserid; User src_user; ClientInfo.online_users.TryGetValue(userid, out src_user); string name = src_user.username; bool has_user = false; foreach (KeyValuePair <int, User> pair in ClientInfo.online_users) { if (pair.Key == ClientInfo.rival_user.userID) { ClientInfo.rival_user.username = pair.Value.username; has_user = true; } } if (!has_user) { Console.WriteLine("该用户不在线!"); return; } ClientInfo.send_invite_user.Enqueue(ClientInfo.rival_user); }
public async Task HummClient_Throws_On_NonSuccess_Response() { var handler = new MockHttpHandler ( (clientRequest) => { return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest))); } ); var config = new HummClientConfiguration() { BaseApiUrl = new Uri("https://integration-pos.shophumm.com.au/webapi/v1/Test/"), MerchantId = "30299999", DeviceId = "d555", PosVersion = "1.0", DeviceKey = "1234567890", HttpClient = new HttpClient(handler) }; var client = new HummClient(config); var request = new InviteRequest() { MobileNumber = "0400000", PurchaseAmount = 10.01M, OperatorId = "Automated" }; _ = await client.InviteAsync(request); }
public IActionResult Invite([FromRoute] int groupId, [FromBody] InviteRequest request) { var userId = Request.GetUserId(); _userFacade.Invite(userId, request.InvitedId, groupId, MemberRole.Teacher); return(Ok()); }
public async Task <IHttpActionResult> InviteToJoinMyCompany(Invite inviteDetail) { if (inviteDetail == null) { throw new HttpResponseException(HttpStatusCode.BadRequest); } if (inviteDetail.ToUserId <= 0) { throw new HttpResponseException(HttpStatusCode.BadRequest); } User user = await db.Users.SingleOrDefaultAsync(c => c.UserName == User.Identity.Name); if (user == null) { throw new HttpResponseException(HttpStatusCode.BadRequest); } if (!User.Identity.IsAuthenticated) { throw new HttpResponseException(HttpStatusCode.Unauthorized); } if (user.Company == null) { throw new HttpResponseException(HttpStatusCode.BadRequest); } Guid inviteCode = Guid.NewGuid(); string webSiteUrl = System.Configuration.ConfigurationManager.AppSettings["WebSiteUrl"]; string emailContent = " You have been invited by {0} to join." + "<br><br>" + "Please click below link to register and join."; emailContent = string.Format(emailContent, user.FirstName + " (" + user.Email + ")"); string apiKey = SENDGRID_API_KEY; SendGridClient sendGridClient = new SendGridClient(apiKey, "https://api.sendgrid.com"); EmailAddress emailSender = new EmailAddress("*****@*****.**", "Cervitt"); String subject = "Invitation to Join Company on Cervitt."; EmailAddress emailRecipient = new EmailAddress(inviteDetail.EmailAddress); Content content = new Content("text/html", emailContent); SendGridMessage mail = MailHelper.CreateSingleEmail(emailSender, emailRecipient, subject, "", emailContent); dynamic response = sendGridClient.SendEmailAsync(mail); InviteRequest inviteRequest = new InviteRequest(); inviteRequest.InviteType = 2; inviteRequest.Processed = false; inviteRequest.InviteDate = DateTime.Now; inviteRequest.InviteCode = inviteCode; inviteRequest.InviteFromCompanyId = user.Company.ID; inviteRequest.InviteFromUserId = user.Id; inviteRequest.InviteToUserId = inviteDetail.ToUserId; inviteRequest.InviteToEmailAddress = null; inviteRequestService.Insert(inviteRequest); return(Ok("true")); }
public async Task HummClient_CreateKey_SetsDeviceKey_On_Success() { int requestCount = 0; var handler = new MockHttpHandler ( (clientRequest) => { requestCount++; if (requestCount <= 1) { return(GetSuccessfulCreateKeyResponse()); } return(GetSuccessfulInviteResponse()); } ); var client = CreateMockedClient(handler); var response = await client.CreateKeyAsync(new CreateKeyRequest() { DeviceToken = "ABC123", PosVendor = "Yort", OperatorId = "Yort", AutoUpdateClientToken = true }); //Confirm key changed by making another call //that needs the returned key to gen valid sig var request = new InviteRequest() { MobileNumber = "0400000", PurchaseAmount = 10.01M, OperatorId = "Automated" }; var response2 = await client.InviteAsync(request); Assert.AreEqual(RequestStates.Success, response.Status); }
public async Task HummClient_Sets_Default_UserAgent() { string sentUserAgent = null; var handler = new MockHttpHandler ( (clientRequest) => { sentUserAgent = clientRequest.Headers.UserAgent.ToString(); return(GetSuccessfulInviteResponse()); } ); var config = new HummClientConfiguration() { BaseApiUrl = new Uri("https://integration-pos.shophumm.com.au/webapi/v1/Test/"), MerchantId = "30299999", DeviceId = "d555", PosVersion = "1.0", DeviceKey = "1234567890", HttpClient = new HttpClient(handler) }; var client = new HummClient(config); var request = new InviteRequest() { MobileNumber = "0400000", PurchaseAmount = 10.01M, OperatorId = "Automated" }; var response = await client.InviteAsync(request); Assert.AreEqual("Yort.Humm.Instore/" + typeof(HummClientConfiguration).Assembly.GetName().Version.ToString(), sentUserAgent); }
public async Task <IActionResult> RescindInvite([FromBody] InviteRequest request) { var currentUser = await _userManager.FindByNameAsync(User.Identity.Name); if (!ModelState.IsValid) { return(BadRequest()); } var league = await _fantasyCriticService.GetLeagueByID(request.LeagueID); if (league.HasNoValue) { return(BadRequest()); } if (league.Value.LeagueManager.UserID != currentUser.UserID) { return(Unauthorized()); } Result result = await _fantasyCriticService.RescindInvite(league.Value, request.InviteEmail); if (result.IsFailure) { return(BadRequest(result.Error)); } return(Ok()); }
public IActionResult RequestInvite(InviteRequestModel requestModel) { //if already logged in, redirect to home if (!CurrentUser.IsVisitor()) { return(R.Fail.Result); } //check if the email being requested is already a regsitered user var user = _userService.GetByUserInfo(requestModel.Email); if (user != null) { return(R.Fail.With("error", T("A user with this email is already registered")).Result); } //do we already have a request with this email var inviteRequest = _inviteRequestService.FirstOrDefault(x => x.Email == requestModel.Email); if (inviteRequest == null) { inviteRequest = new InviteRequest() { Email = requestModel.Email, CreatedOn = DateTime.UtcNow }; _inviteRequestService.Insert(inviteRequest); RaiseEvent(NamedEvent.InvitationRequested, requestModel.Email); } return(R.Success.Result); }
public void Invite() { var request = new InviteRequest(GeneralRequests.Invite); request.Parse(); Assert.Equal("test", request.ChannelName); Assert.Equal("spyguy", request.UserName); }
public async Task <IActionResult> SendInvites(string[] phones, string message) { InviteRequest request = new InviteRequest() { Phones = phones, Message = message }; return(await Post <InviteRequest, InviteResponse>(request)); }
public async Task InviteAsync_Validates_MobileNumber_NotOverLength() { var client = CreateTestClient(); var request = new InviteRequest() { MobileNumber = "01234567890", PurchaseAmount = 0 }; _ = await client.InviteAsync(request); }
public async Task InviteAsync_Validates_MobileNumber_NotEmpty() { var client = CreateTestClient(); var request = new InviteRequest() { MobileNumber = String.Empty, PurchaseAmount = 0 }; _ = await client.InviteAsync(request); }
public async Task <Core.Models.Result.Result> Invite(InviteRequest inviteRequest) { _logger.LogInformation($"Adding new invite"); ValidationResult validationResult = _inviteRequestValidator.Validate(inviteRequest); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid {nameof(InviteToGroupRequest)} model"); return(Result.Fail(validationResult.ToResultError()).ToOldResult()); } return((await AddInvite(inviteRequest.Email, inviteRequest.RoleId, inviteRequest.GroupId, inviteRequest.GroupRoleId)).ToOldResult()); }
public void _InviteRequest(int userid) { InviteRequest invite = new InviteRequest(); invite.Dstuserid = userid; invite.Srcuserid = ClientInfo.self_user.userID; Message message = new Message(); message.Type = BombplaneProto.Type.InviteRequest; message.Inviterequest = invite; Console.WriteLine("dstuserid:" + message.Inviterequest.Dstuserid.ToString()); NetworkClient.Generate_Package(message); }
public long Insert(InviteRequest request) { if (request == null) { return(0); } if (string.IsNullOrEmpty(request.InviteToEmailAddress)) { return(0); } db.InviteRequests.Add(request); db.SaveChangesAsync(); return(request.Id); }
public void RequestBase_Validates_PosVersion_Oversize() { var request = new InviteRequest() { DeviceId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_DeviceId"), MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"), PosVersion = "0123456789012345678901234567890123456789012345678901234567890123456789", MobileNumber = "04000000", PurchaseAmount = 10, OperatorId = "Yort" }; request.Validate(); }
public void RequestBase_Validates_DeviceId_Not_Empty() { var request = new InviteRequest() { DeviceId = String.Empty, MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"), PosVersion = "1.0", MobileNumber = "04000000", PurchaseAmount = 10, OperatorId = "Yort" }; request.Validate(); }
public void InviteRequest_Validates_Ok_When_Valid() { var request = new InviteRequest() { OperatorId = "Yort", DeviceId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_DeviceId"), MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"), PosVersion = "1.0", MobileNumber = "0123456789", PurchaseAmount = 10 }; request.Validate(); }
public async Task <ActionResult> ContragentRegistration([FromBody] InviteRequest request, [FromServices] IInviteService inviteService) { var codeAndEmail = request.InviteClientRequest.Xin + ">" + HttpContext.User.Identity.Name; var code = inviteService.GenerateCode(codeAndEmail); var callbackUrl = Url.Action("GetInformationByInviteCode", "Registration", new { email = request.InviteClientRequest.Email, code }, protocol: HttpContext.Request.Scheme); callbackUrl = callbackUrl.Replace("api/Registration/GetInformationByInviteCode", "auth/registration"); var response = await inviteService.RegisterContrager(request, callbackUrl, User.Identity.Name); return(Json(ApiResponse.Success(response))); }
public Task <Result> Invite(InviteRequest inviteRequest) { _logger.LogInformation($"Adding new invite"); ValidationResult validationResult = _inviteRequestValidator.Validate(inviteRequest); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid {nameof(InviteToGroupRequest)} model"); return(Task.FromResult(Result.Fail(validationResult.Errors))); } Result canInviteResult = CanInvite(inviteRequest.Email); if (canInviteResult.Failure) { return(Task.FromResult(Result.Fail(canInviteResult.Errors))); } if (inviteRequest.RoleId != null) { Result globalRoleExists = GlobalRoleExists(inviteRequest.RoleId); if (globalRoleExists.Failure) { return(Task.FromResult(Result.Fail(globalRoleExists.Errors))); } } if (inviteRequest.GroupId != null) { Result isGroupInviteValid = IsGroupInviteValid(inviteRequest.GroupId, inviteRequest.GroupRoleId); if (isGroupInviteValid.Failure) { return(Task.FromResult(Result.Fail(isGroupInviteValid.Errors))); } } InviteEntity inviteEntity = new InviteEntity( email: inviteRequest.Email, token: StringUtils.GenerateToken(), status: Data.Enums.Entity.InviteStatuses.Pending, roleId: inviteRequest.RoleId, groupId: inviteRequest.GroupId, groupRoleId: inviteRequest.GroupRoleId, expiresAt: DateTimeOffset.UtcNow.Add(_identityManagementEndpoints.InviteValidForTimeSpan)); return(AddInvite(inviteEntity)); }
public async Task <IActionResult> InvitePlayer([FromBody] InviteRequest request) { var currentUser = await _userManager.FindByNameAsync(User.Identity.Name); if (!ModelState.IsValid) { return(BadRequest()); } var league = await _fantasyCriticService.GetLeagueByID(request.LeagueID); if (league.HasNoValue) { return(BadRequest()); } if (league.Value.LeagueManager.UserID != currentUser.UserID) { return(Unauthorized()); } foreach (var year in league.Value.Years) { var leagueYear = await _fantasyCriticService.GetLeagueYear(league.Value.LeagueID, year); if (leagueYear.Value.PlayStatus.PlayStarted) { return(BadRequest("You can't add a player to a league that has already started playing")); } } FantasyCriticUser inviteUser = await _userManager.FindByEmailAsync(request.InviteEmail); if (inviteUser is null) { string baseURL = $"{Request.Scheme}://{Request.Host.Value}"; await _emailSender.SendInviteEmail(request.InviteEmail, league.Value, baseURL); } Result result = await _fantasyCriticService.InviteUser(league.Value, request.InviteEmail); if (result.IsFailure) { return(BadRequest(result.Error)); } return(Ok()); }
public async Task <IActionResult> Add([FromBody] InviteRequest inviteRequest) { if (!ModelState.IsValid) { return(BadRequest()); } Result result = await _inviteService.Invite(inviteRequest); if (result.Failure) { ModelState.AddErrors(result); return(BadRequest(ModelState)); } return(Ok(new EmptyResult())); }
public async Task InviteAsync_Throws_When_Disposed() { var client = CreateTestClient(); client.Dispose(); var request = new InviteRequest() { MerchantId = "30299999", DeviceId = "d555", OperatorId = "test_operator", PosVersion = "123", MobileNumber = "0400000000", PurchaseAmount = 100M }; _ = await client.InviteAsync(request); }
public async Task <IHttpActionResult> GetInviteByCode(string code) { Invite invite = new Invite(); if (!string.IsNullOrEmpty(code)) { Guid inviteCode = Guid.Parse(code); InviteRequest inviteRequest = await db.InviteRequests.SingleOrDefaultAsync(c => c.InviteCode == inviteCode && !c.Processed); if (inviteRequest != null) { invite = new Invite { EmailAddress = inviteRequest.InviteToEmailAddress, ToUserId = 0 }; } } return(Ok(invite)); }
public async Task CreateContraget(InviteRequest request) { using (var rep = new Repository <Contragent>(_provider)) { var contragent = rep.Get(u => u.Xin == request.InviteClientRequest.Xin && u.Type == request.InviteClientRequest.ContragentType).FirstOrDefault(); if (contragent != null) { throw new SmartcontractException("Пользователь с таким сочетанием ИИН/БИН и email уже существует в системе"); } contragent = new Contragent() { Type = request.InviteClientRequest.ContragentType, Xin = request.InviteClientRequest.Xin, FullName = request.InviteClientRequest.FullName, }; contragent.UniqueId = GenerateContragentUniqueId(contragent); rep.Insert(contragent); rep.Commit(); } }
public async Task HummClient_Exception_On_NonSuccess_Includes_Response_Content() { var handler = new MockHttpHandler ( (clientRequest) => { return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest) { Content = new StringContent("Unrecognised fields in request") })); } ); var config = new HummClientConfiguration() { BaseApiUrl = new Uri("https://integration-pos.shophumm.com.au/webapi/v1/Test/"), MerchantId = "30299999", DeviceId = "d555", PosVersion = "1.0", DeviceKey = "1234567890", HttpClient = new HttpClient(handler) }; var client = new HummClient(config); string responseContent = null; var request = new InviteRequest() { MobileNumber = "0400000", PurchaseAmount = 10.01M, OperatorId = "Automated" }; try { _ = await client.InviteAsync(request); } catch (HttpRequestException ex) { responseContent = (string)ex.Data["ResponseContent"]; } Assert.AreEqual("Unrecognised fields in request", responseContent); }
public void Writes_Full_Request_When_Passed_Base_Type() { var sigGen = new Hmac256SignatureGenerator("dy33vQhksVsv"); var writer = new SignedRequestWriter(sigGen); RequestBase request = new InviteRequest() { MerchantId = "30299999", DeviceId = "d555", OperatorId = "test_operator", PosVersion = "123", MobileNumber = "0400000000", PurchaseAmount = 100M }; var result = writer.WriteRequest(request); Assert.AreEqual("{\"x_mobile\":\"0400000000\",\"x_purchase_amount\":10000,\"x_merchant_id\":\"30299999\",\"x_device_id\":\"d555\",\"x_firmware_version\":\"123\",\"x_operator_id\":\"test_operator\",\"signature\":\"e8045e8fdd521d9da2b4cd0c00f816680e9ec4d85bddab95c839d91f170f9deb\"}", result); Assert.IsTrue(result.Contains("e8045e8fdd521d9da2b4cd0c00f816680e9ec4d85bddab95c839d91f170f9deb")); }
public void RequestBase_Validates_Max_TrackingItems() { var request = new InviteRequest() { DeviceId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_DeviceId"), MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"), PosVersion = "1.0", MobileNumber = "04000000", PurchaseAmount = 10, OperatorId = "Yort", TrackingData = new Dictionary <string, string>() }; for (int cnt = 0; cnt < 1000010; cnt++) { request.TrackingData.Add("Key" + cnt.ToString(), cnt.ToString()); } request.Validate(); }
public async Task <bool> RegisterContrager(InviteRequest request, string url, string emailSender) { using (var repository = new Repository <User>(_provider)) { var profileManager = new ProfileManager(_provider); var notificationSettingsRep = new Repository <NotificationSettings>(repository); request.InviteClientRequest.ContragentType = request.InviteClientRequest.IsJuridic ? ContragentTypeEnum.Legal : request.InviteClientRequest.ContragentType; await profileManager.CreateContraget(request); var message = $"Пользователь {request.SenderFullName}, {request.SenderXin} приглашает Вас участвовать в двухстороннем подписании электронных документов в системе Smartcontract.kz. Комментарий от отправителя:{request.InviteClientRequest.Comment}. Для завершения регистрации, пожалуйста, перейдите по следующей ссылке <a href='{url}'>smartcontract.kz</a>"; _emailService.SendEmail(request.InviteClientRequest.Email, "Приглашение на smartcontract.kz", message); message = $"Вы отправили приглашение пользователю {request.InviteClientRequest.FullName}, {request.InviteClientRequest.Xin} на email {request.InviteClientRequest.Email}, со следующим комментарием: «{request.InviteClientRequest.Comment}»."; var notificationSettingsSender = notificationSettingsRep.Get(x => x.User.Email == emailSender).Single(); if (notificationSettingsSender.InviteSend) { _emailService.SendEmail(emailSender, "Вы отправили приглашение на Smartcontract.kz", message); } return(true); } }
/// <summary> /// Removes the specified invite request. /// </summary> /// <param name="userId">User who is removing the invite request</param> /// <param name="inviteRequestId">Invite request to be removed</param> /// <returns>True if the invite request is removed, false otherwise</returns> public Task <OperationStatus> RemoveInviteRequest(long userId, int inviteRequestId) { var operationStatus = new OperationStatus(); try { // Find the invite request entity in database. InviteRequest inviteRequest = _inviteRequestRepository.GetItem(ir => ir.InviteRequestID == inviteRequestId, "InviteRequestContent"); // Check invite request is not null this.CheckNotNull(() => new { inviteRequest }); var userRole = _userRepository.GetUserRole(userId, inviteRequest.InviteRequestContent.CommunityID); if (userRole >= UserRole.Moderator) { inviteRequest.IsDeleted = true; inviteRequest.DeletedByID = userId; inviteRequest.DeletedDate = DateTime.UtcNow; _inviteRequestRepository.Update(inviteRequest); _inviteRequestRepository.SaveChanges(); operationStatus.Succeeded = true; } else { operationStatus = OperationStatus.CreateFailureStatus(Resources.NoPermissionInviteRequestMessage); } } catch (Exception) { // TODO: Add exception handling logic here. operationStatus.Succeeded = false; operationStatus.CustomErrorMessage = true; operationStatus.ErrorMessage = Resources.UnknownErrorMessage; } return(Task.FromResult(operationStatus)); }
public void InviteCommand(InviteRequest inviteRequest) { _invitationBusiness.Invite(User.Identity.Name, inviteRequest.ProjectKey, inviteRequest.User); }