private void Sender(ServiceCode service, string from, string to, string subject, string message) { var messageRequest = new MessageRequestModel() { From = from, To = to, Message = message, Subject = subject, Brand = _xnotifiSettings.Value.Brand }; var gateway = GetGateway(service); gateway.Password = _generator.Decrypt(gateway.Password).Result; var application = GetCreateApplication(_xnotifiSettings.Value.Brand, _xnotifiSettings.Value.ClientId); var messager = (_xnotifiSettings.Value.Development)? "Local Dev." : _messageAdapter.Send(messageRequest, gateway); var requestLog = new RequestModel() { ApplicationId = application.ApplicationId, GatewayId = gateway.GatewayId, Service = ServiceCode.Email, Recipients = 1, Cost = 0.00m, Response = messager, DateCreated = DateTime.UtcNow }; _requestService.Create(requestLog); }
public async Task SendMessage_Happy() { var message = new MessageRequestModel { Text = "banaismailde", ToUserName = "******" }; var messageService = new Mock <IMessageService>(); var controller = new MessagesController(messageService.Object); var userName = "******"; var user = new ClaimsPrincipal(new GenericIdentity(userName)); controller.ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { User = user } }; OkResult result = await controller.Post(message) as OkResult; messageService.Verify(x => x.SendMessage(userName, message.ToUserName, message.Text)); Assert.NotNull(result); }
public async Task <ActionResult <MessageRequestModel> > CreateMessage([FromBody] MessageRequestModel model) { var sha256 = SHA256.Create(); var hashBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(model.Message)); var hash = BitConverter.ToString(hashBytes).Replace("-", string.Empty).ToLower(); model.Digest = hash; if (!await this._repo.HashExistsAsync(hash)) { this._logger.LogInformation("Storing new message into data storage: {0}.", model.Message); var dto = this._mapper.Map <HashDto>(model); await this._repo.AddHashAsync(dto); if (!await this._repo.SaveChangesAsync()) { throw new DataException("Hash cannot be saved to database."); } } this._logger.LogInformation("Request succeeded for message {0}.", model.Message); return(this.Ok(model)); }
// POST api/<controller> public async Task <IHttpActionResult> messagerequest(MessageRequestModel MM) { try { ResultClassToken result = new ResultClassToken(); var userdata = ApiMessage.messagerequest(MM); if (userdata != null) { result.Code = (int)HttpStatusCode.OK; result.Msg = ap.Success; } else { result.Code = (int)HttpStatusCode.NonAuthoritativeInformation; result.Msg = ap.GlobalError; } if (updatetoken) { result.AccessToken = accessToken; } else { result.AccessToken = ""; } return(Ok(result)); } catch (Exception ex) { throw ex; } }
public async Task <MessageResponseModel> Post(MessageRequestModel model) { var messageIds = new List <Guid>(); foreach (var channelId in model.ChannelIds) { var dbModel = new Message { MessageId = Guid.NewGuid(), FromChannelId = User.Identity.Name, ChannelId = channelId, Delivered = false, MessageString = model.MessageString, Type = model.Type, ExpiresAt = DateTime.UtcNow.AddDays(1), CreatedAt = DateTime.UtcNow }; await _messageRepository.SaveMessageAsync(dbModel); await _messageHubContext.Clients.Group(channelId).SendAsync("broadcast", dbModel); messageIds.Add(dbModel.MessageId); } return(new MessageResponseModel { MessageIds = messageIds }); }
public async Task <IActionResult> Post([FromBody] MessageRequestModel message) { string sendingUserName = User.Identity.Name; await _messageService.SendMessage(sendingUserName, message.ToUserName, message.Text); return(Ok()); //return Created(); }
public IActionResult Push([FromBody] MessageRequestModel model) { ReturnResult result = new ReturnResult(); messageService.Push(model.Topic, model.Content); result.ReturnMsg = messageService.ReturnMsg; result.Status = messageService.IsSuccess ? "ok" : "error"; return(Json(result)); }
public ResponseModel SendMessage(MessageRequestModel message) { var _sessionid = _distributedCache.GetString(message.UserId); if (string.IsNullOrWhiteSpace(_sessionid)) { _sessionid = _assistantService.CreateSession(_assistantId).Result.SessionId; _distributedCache.SetString(message.UserId, _sessionid, new DistributedCacheEntryOptions() { SlidingExpiration = new TimeSpan(00, 4, 00) }); } var messageObj = new IBM.Watson.Assistant.v2.Model.MessageInput() { Text = message.Text }; MessageContextSkills skills = new MessageContextSkills(); MessageContextSkill skill = new MessageContextSkill { UserDefined = new Dictionary <string, object>() }; if (message.ContextVariables != null) { foreach (var item in message.ContextVariables) { skill.UserDefined.Add(item.Key, item.Value); } } skills.Add("main skill", skill); var MessageContext = new IBM.Watson.Assistant.v2.Model.MessageContext() { Global = new MessageContextGlobal() { System = new MessageContextGlobalSystem() { UserId = message.UserId, Timezone = "GMT3" } }, Skills = skills }; var result = _assistantService.Message(_assistantId, _sessionid, messageObj, MessageContext); var response = Newtonsoft.Json.JsonConvert.DeserializeObject <ResponseModel>(result.Response); return(response); }
/// <summary> /// Recebe uma mensagem da Blip e envia para o Watson /// </summary> /// <param name="message">Padrão da mensagem que a Blip envia</param> /// <returns></returns> public async Task <string> PostAsync(MessageViewModel message) { message.Content = message.Content.Replace("\n", " ").Replace("\t", " ").Replace("\r", " "); //O Watson espera algumas variaveis de contexto que podemos informar para facilitar o fluxo da conversa. Dictionary <string, string> contextVariables = new Dictionary <string, string> { { "cpf_usuario", null }, { "nome_usuario", null }, { "telefone_usuario", null } }; MessageRequestModel messageRequestWatson = new MessageRequestModel() { Text = message.Content, UserId = "UserId_" + message.From.Split('@')[0].TrimStart('5'), ContextVariables = contextVariables }; var retorno = _watsonBot.SendMessage(messageRequestWatson); //Pausa no fluxo do Watson para buscar uma informação na API, depois volta para o Watson if (retorno.Output.Actions != null && retorno.Output.Actions.Any()) { foreach (var item in retorno.Output.Actions) { switch (item.Name) { case "actionNameABC": break; case "actionNameXYZ": if (retorno.Output.Generic != null && retorno.Output.Generic.Any()) { //Envia uma mensagem para a Blip (WhatsApp) await SendMessageBlip(message, retorno); } contextVariables.Add("novaVariavel", "lorem ipsum"); messageRequestWatson.ContextVariables = contextVariables; retorno = _watsonBot.SendMessage(messageRequestWatson); break; } } } await SendMessageBlip(message, retorno); return(""); }
public IActionResult Pull([FromBody] MessageRequestModel model) { ReturnJsonResult <Message> result = new ReturnJsonResult <Message>(); LockControl.mutex.WaitOne(); Message message = messageService.Pull(model.Topic); LockControl.mutex.ReleaseMutex(); result.ReturnMsg = messageService.ReturnMsg; result.Status = messageService.IsSuccess ? "ok" : "error"; result.Result = message; return(Json(result)); }
public string Send(MessageRequestModel message, GatewayModel gateway) { var serviceUrl = gateway.ServiceUrl .Replace("#username", gateway.Username) .Replace("#password", gateway.Password) .Replace("#from", message.From) .Replace("#to", message.To) .Replace("#subject", message.Subject) .Replace("#message", message.Message) .Replace("#brand", message.Brand); return(XNotifiRequest.Send(serviceUrl)); }
public async Task <IHttpActionResult> SendMessage(MessageRequestModel request) { try { _messageQueue.Send(request.Message, MessageQueueTransactionType.Automatic); //Get the message that has been send to the queue. return(await Task.FromResult(Created(_privateQueue, request))); } catch (Exception e) { return(BadRequest($"{e}")); } }
public MessageResponseModel Send(string clientId, string accessKey, ServiceCode service, string from, string to, string message, string subject = "", string brand = "") { var model = new MessageRequestModel() { ClientId = clientId, AccesssKey = accessKey, Service = service, From = from, To = to, Message = message, Subject = subject, Brand = brand }; return(Messager(model)); }
public HttpResponseMessage Get([FromUri] MessageRequestModel model) { if (model == null) { model = new MessageRequestModel(); } var access = UserRights.V2Login(Db, Request); if (access.HasErrors) { return(Request.CreateErrorResponse(access.ErrorCode, access.ErrorMessage)); } var result = MessageLayer.GetMessagesFromData(CmsDb, access.Session.record_id, model); return(Request.CreateResponse(HttpStatusCode.OK, result)); }
/// <summary> /// Get chat conversation list based on the sender and receiver id. /// </summary> /// <param name="requestModel"> /// SenderId: Current loggedin UserId /// ReceiverId: Selected User's UserId from chat box. /// </param> /// <returns>Return list of conversations</returns> public ApiResponse GetChatList(MessageRequestModel requestModel) { ApiResponse response = new ApiResponse(); var chatList = GetEntityList <Message>("GetChatList", new List <SearchValueData> { new SearchValueData { Name = "SenderId", Value = requestModel.SenderId.ToString() }, new SearchValueData { Name = "ReceiverId", Value = requestModel.ReceiverId.ToString() } }); response = Common.GenerateResponse(Resource.Success, StatusCodes.StatusCode200, true); response.Data = chatList.OrderBy(q => q.CreatedDate); return(response); }
public async Task SendAsync(MessageRequestModel model) { var messageIds = new List <Guid>(); foreach (var channelId in model.ChannelIds) { var dbModel = new Message { MessageId = Guid.NewGuid(), FromChannelId = Context.User.Identity.Name, ChannelId = channelId, Delivered = false, MessageString = model.MessageString, Type = model.Type, ExpiresAt = DateTime.UtcNow.AddDays(1), CreatedAt = DateTime.UtcNow }; await _messageRepository.SaveMessageAsync(dbModel); messageIds.Add(dbModel.MessageId); } }
public async Task SeenMessageShouldGenerateHashButNotSaveToDatabase() { var message = "foo"; var expectedHash = "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"; var saved = false; var repo = new Mock <IServiceRepository>(); repo.Setup(r => r.HashExistsAsync(It.IsAny <string>())).ReturnsAsync(true); repo.Setup(r => r.SaveChangesAsync()).Callback(() => saved = true).ReturnsAsync(true); var mapper = this.GetConfiguredMapper(); var logger = Mock.Of <ILogger <MessageController> >(); var request = new MessageRequestModel(message); var controller = new MessageController(repo.Object, mapper, logger); var response = await controller.CreateMessage(request); var objectResult = Assert.IsType <OkObjectResult>(response.Result); var result = Assert.IsType <MessageRequestModel>(objectResult.Value); Assert.Equal(expectedHash, result.Digest); Assert.False(saved); }
public MessageResponseModel Send(MessageRequestModel model) { return(Messager(model)); }
public ActionResult <List <MessageOutputModel> > GetFromTo(MessageRequestModel request) { RecipientType messageType = (RecipientType)request.MessageType; return(_repository.GetMessagesFromTo(request.SenderId, request.RecipientId, messageType)); }
public ActionResult <List <MessageOutputModel> > GetDialogue(MessageRequestModel request) { return(_repository.GetDialogue(request.SenderId, request.RecipientId)); }
public static MessageResponseModel GetMessagesFromData(IbaCmsDbContext cmsDb, decimal ibaUserId, MessageRequestModel model) { var result = new MessageResponseModel(); IQueryable <AppUserMessage> msgs; if (model.AppUserMessageId > 0) { msgs = cmsDb.AppUserMessages.Where(a => a.Id == model.AppUserMessageId).AsQueryable(); result.TotalRecords = msgs.Count(); } else { msgs = cmsDb.AppUserMessages.Where(a => a.DeviceOwner.IbaId == ibaUserId && a.Deleted == null && a.Message.SendDate < DateTime.UtcNow) .Where(a => (model.From.HasValue && a.Created > model.From.Value) || !model.From.HasValue) .OrderByDescending(a => a.Created) .AsQueryable(); result.TotalRecords = msgs.Count(); if (model.Start > 0) { msgs = msgs.Skip(model.Start); } if (model.Length <= 0) { model.Length = DefaultPageSize; } msgs = msgs.Take(model.Length); } foreach (var msg in msgs.ToList()) { var item = new AppUserMessagesResponseItem { AppUserMessageId = msg.Id, Title = msg.Message.Title, MessageType = msg.Message.MessageType, Text = msg.Message.Text, Url = msg.Message.Url ?? "", FormattedDate = msg.Message.SendDate.HasValue ? DateTime.SpecifyKind(msg.Message.SendDate.Value, DateTimeKind.Utc) : DateTime.SpecifyKind(msg.Created, DateTimeKind.Utc) }; if (msg.Deleted != null) { item.Status = AppUserMessagesResponseStatus.Deleted; } else if (msg.Read != null) { item.Status = AppUserMessagesResponseStatus.Read; } result.Messages.Add(item); } return(result); }
//从模板提取并生成批次发送 //以接口方式调用 /// <summary> /// 使用模板Id和特定Model填充发送数据 /// </summary> /// <param name="requestModel"></param> /// <returns></returns> public int SendNotifyMsg(string requestModel) { var oModel = CommonLib.Helper.JsonDeserializeObject <EventMessage>(requestModel); var model = new MessageRequestModel(); //var model = CommonLib.Helper.JsonDeserializeObject<MessageRequestModel>(requestModel); switch (oModel.EventId) { case 1: break; case 2: //销售后 break; case 4: //绑定优惠券 var cmodel = CommonLib.Helper.JsonDeserializeObject <AfterBindCoupon>(oModel.SpecModel); model.Id = cmodel.EventId; model.EventName = "【优惠券绑定提醒】用户" + cmodel.AccId + "绑定优惠券" + cmodel.CouponDesc; model.SpecModel = oModel.SpecModel; model.AccId = cmodel.AccId; break; case 5: //实物订单发货时 var gmodel = CommonLib.Helper.JsonDeserializeObject <AfterExpress>(oModel.SpecModel); model.Id = gmodel.EventId; model.EventName = "【实物发货提醒】用户" + gmodel.AccId + "购买的" + gmodel.GoodsName + "发货"; model.SpecModel = oModel.SpecModel; model.AccId = gmodel.AccId; break; case 6: //反馈转为需求时 var imodel = CommonLib.Helper.JsonDeserializeObject <AfterImportReq>(oModel.SpecModel); model.Id = imodel.EventId; model.EventName = "【反馈转需求提醒】需求" + imodel.RequirementDesc + " -来自用户" + imodel.AccId; model.SpecModel = oModel.SpecModel; model.AccId = imodel.AccId; break; case 7: //需求开发完成后 var iamodel = CommonLib.Helper.JsonDeserializeObject <AfterImportReq>(oModel.SpecModel); model.Id = iamodel.EventId; model.EventName = "【需求完成提醒】需求【" + iamodel.RequirementDesc + "】已完成 -来自用户" + iamodel.AccId; model.SpecModel = oModel.SpecModel; model.AccId = iamodel.AccId; break; case 9: //订单支付成功后 var ordModel = CommonLib.Helper.JsonDeserializeObject <AfterOrderSuccess>(oModel.SpecModel); switch (ordModel.OrderType) { case 1: //虚拟商品 //对商品类型做例外判断 //高级版 if (ordModel.BusId == 82) { model.Id = 101; } //手机橱窗 else if (ordModel.BusId == 6) { model.Id = 102; } //短信包 else if (ordModel.BusId == 36 || ordModel.BusId == 44 || ordModel.BusId == 45 || ordModel.BusId == 81) { model.Id = 103; } //行业版 else if (ordModel.BusId >= 67 && ordModel.BusId <= 80) { model.Id = 107; } //连锁版 //else if (ordModel.BusId == 1) //{ // model.Id = 108; //} break; case 2: //实物商品 model.Id = 104; break; case 3: //京东订单 model.Id = 105; break; case 4: //话费充值 model.Id = 106; break; } model.EventName = "【订单购买成功提醒】用户" + ordModel.AccId + "购买【" + ordModel.OrderName + "】成功"; model.SpecModel = oModel.SpecModel; model.AccId = ordModel.AccId; break; } return(MessageTemplateControl.SendNotifyMsg(model.Id, model.EventName, model.SpecModel, model.AccId, 0, model.EventName + "触发")); }
public dynamic messagerequest(MessageRequestModel MM) { using (LystenEntities db = new LystenEntities()) { MessageRequest MR = new MessageRequest(); if (db.MessageRequests.Any(x => x.FromUserId == MM.MRUserId && x.ToUserId == MM.UserId || x.FromUserId == MM.UserId && x.ToUserId == MM.MRUserId)) { MR = db.MessageRequests.Where(x => x.FromUserId == MM.MRUserId && x.ToUserId == MM.UserId || x.FromUserId == MM.UserId && x.ToUserId == MM.MRUserId).FirstOrDefault(); if (MM.IsAccept == 0) { MR.IsAccept = false; MR.IsReject = true; MR.IsRequested = false; db.Entry(MR).State = EntityState.Modified; db.SaveChanges(); if (MR.User_Master.DeviceToken != null) { if (MR.User_Master.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } } else if (MR.User_Master1.DeviceToken != null) { if (MR.User_Master1.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } } } else { MR.IsAccept = true; MR.IsReject = false; MR.IsRequested = false; db.Entry(MR).State = EntityState.Modified; db.SaveChanges(); if (MR.User_Master.DeviceToken != null) { if (MR.User_Master.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } } else if (MR.User_Master1.DeviceToken != null) { if (MR.User_Master1.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } } } } else { if (MM.IsAccept == 0) { MR.FromUserId = MM.MRUserId; MR.ToUserId = MM.UserId; MR.IsAccept = false; MR.IsReject = true; MR.IsRequested = false; db.MessageRequests.Add(MR); db.SaveChanges(); if (MR.User_Master.DeviceToken != null) { if (MR.User_Master.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } } else if (MR.User_Master1.DeviceToken != null) { if (MR.User_Master1.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } } } else { MR.FromUserId = MM.MRUserId; MR.ToUserId = MM.UserId; MR.IsAccept = false; MR.IsReject = true; MR.IsRequested = false; db.MessageRequests.Add(MR); db.SaveChanges(); if (MR.User_Master.DeviceToken != null) { if (MR.User_Master.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master.DeviceToken); } } else if (MR.User_Master1.DeviceToken != null) { if (MR.User_Master1.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } else { sendMsgCallAccept(0, MR.ToUserId.Value, MR.User_Master1.DeviceToken); } } } } return(MR); } }
public ApiResponse GetChatList(MessageRequestModel requestModel) { _userDataProvider = new UserDataProvider(); return(_userDataProvider.GetChatList(requestModel)); }
public SuccessfullOperated<MessageRequestModel> SendMessageToFriendship(int friendshipId, string authorId, MessageRequestModel model) { var successfullOperated = new SuccessfullOperated<MessageRequestModel>() { IsSuccessfull = false, Element = model }; var friendship = this.data.Friendships .All() .FirstOrDefault(f => f.Id == friendshipId); if (friendship == null) { return successfullOperated; } var author = this.data.Users .All() .FirstOrDefault(u => u.Id == authorId); if (author == null) { return successfullOperated; } var messageForDb = new Message() { Author = author, Content = model.Content, SentOn = DateTime.Now }; try { model.Id = messageForDb.Id; friendship.Messages.Add(messageForDb); this.data.SaveChanges(); successfullOperated.IsSuccessfull = true; return successfullOperated; } catch (Exception) { return successfullOperated; } }
public HttpResponseMessage SendEmailMessage(MessageRequestModel messageVm) { var response = new ApiResultViewModel <List <dynamic> >(); if (ModelState.IsValid) { try { var sb = new List <string> (); var addresses = messageVm.Receipients ?? new string[] { }; sb.AddRange(addresses.Where(email => email.ValidEmail())); if (messageVm.Tocustomers) { var allCustomers = _userMgr.CustomersEmail().ToList(); allCustomers.ForEach(c => { if (!sb.Contains(c)) { sb.Add(c); } }); } if (sb.Count <= 0) { response.errorMessage = "No receipient email address was found. Please confirm and try again."; response.errorStatus = true; return(Request.CreateResponse(response)); } Task.Factory.StartNew(() => { foreach (var item in sb) { _mailSvc.SendMail(item, IposConfig.AutomatedFromEmail, messageVm.Subject, messageVm.Message, IposConfig.AppName); } }); response.message = "Message has been sent successfully."; return(Request.CreateResponse(response)); } catch (Exception e) { _logger.Log(e); #if DEBUG response.errorMessage = e.Message; response.errorStatus = true; #else response.errorMessage = "An error occurred while working, Please try again or contact support."; response.errorStatus = true; #endif return(Request.CreateResponse(response)); } } response.errorMessage = "Incomplete message request. Please confirm try again."; response.errorStatus = true; return(Request.CreateResponse(response)); }
private MessageResponseModel Messager(MessageRequestModel model) { if (!ModelState.IsValid) { return(new MessageResponseModel() { Error = Data.Enums.MessageStatus.InvalidFields, Message = "Required parameter(s) are missing" }); } if (!model.Service.Equals(ServiceCode.Sms) && !model.Service.Equals(ServiceCode.Email)) { return(new MessageResponseModel() { Error = Data.Enums.MessageStatus.InvalidService, Message = "Invalid service request" }); } var gateway = _gatewayService.List() .FirstOrDefault(x => x.ServiceCode == model.Service && x.IsActive == true); if (gateway == null) { return(new MessageResponseModel() { Error = Data.Enums.MessageStatus.InactiveGateway, Message = "No active gateway available" }); } var client = _clientService.List().ToList().FirstOrDefault(x => x.ClientId.Equals(model.ClientId) && x.AccessKey.Equals(model.AccesssKey) && x.IsActive == true); if (client == null) { return(new MessageResponseModel() { Error = Data.Enums.MessageStatus.InvalidApplication, Message = "No client record is found" }); } var existingApplication = _applicationService.List() .FirstOrDefault(x => x.ClientId == model.ClientId && x.Name.ToLower().Equals(model.AppName.ToLower()) && x.IsActive == true); string applicationId; string applicationName; if (existingApplication == null) { var applicationModel = new ApplicationModel() { ClientId = model.ClientId, Name = model.AppName, DateCreated = DateTime.UtcNow }; var newApplication = _applicationService.Create(applicationModel).Result; applicationId = newApplication.ApplicationId; applicationName = newApplication.Name; } else { applicationId = existingApplication.ApplicationId; applicationName = existingApplication.Name; } var price = (model.Service == ServiceCode.Sms) ? _priceSettings.Value.SmsPrice : _priceSettings.Value.EmailPrice; var destinations = model.To.Split(','); var cost = destinations.Length * price; if (client.Balance < cost) { return(new MessageResponseModel() { Error = Data.Enums.MessageStatus.InsufficientCredit, Message = "Insufficient credit" }); } gateway.Password = _generator.Decrypt(gateway.Password).Result; try { //var gatewayResponse = "local testing"; var gatewayResponse = _messageAdapter.Send(model, gateway); client.Balance = client.Balance - cost; _clientService.Update(client); var request = new RequestModel() { ApplicationId = applicationId, GatewayId = gateway.GatewayId, Recipients = destinations.Length, Cost = cost, Response = gatewayResponse, DateCreated = DateTime.UtcNow }; var lastRequest = _requestService.Create(request).Result; return(new MessageResponseModel() { Error = Data.Enums.MessageStatus.MessageSubmitted, Message = "Message(s) submited successfully", Reference = lastRequest.RequestId }); } catch (Exception e) { Console.WriteLine(e); //throw; } var response = new MessageResponseModel() { Error = Data.Enums.MessageStatus.InternalServerError, Message = "Internal server error" }; return(response); }
public void Add(MessageRequestModel messageRequestModel) { _wcfDemoDbContext.Set <MessageRequestModel>().Add(messageRequestModel); _wcfDemoDbContext.SaveChanges(); }
public async Task <ActionResult <bool> > Add(MessageRequestModel model) => await messageService.Add(model.SenderId, model.SenderUsername, model.Title, model.Content);