/// <summary> /// 用户留言,提交需求 /// </summary> /// <param name="model"></param> /// <returns></returns> public IActionResult OnGetMessage(CmsMessage model) { var apiRes = new ApiResult <string>() { statusCode = (int)ApiEnum.Status }; try { model.IP = Utils.GetIp(); var list = _messageService.GetListAsync(m => m.IP == model.IP, m => m.AddDate, DbOrderEnum.Asc).Result.data; if (list.Count > 3) { return(new JsonResult(new ApiResult <string>() { statusCode = (int)ApiEnum.HttpRequestError, message = "您提交的次数过多,请稍后重试!~" })); } model.ColumnId = "message"; model.UserName = model.Title; model.AddDate = DateTime.Now; _messageService.AddAsync(model); } catch (Exception ex) { apiRes.message = ex.Message; } return(new JsonResult(new ApiResult <string>() { statusCode = apiRes.statusCode, message = apiRes.message })); }
private static ExportMessageLog MsgToExportLog(CmsMessage msg, IBAEntities1 ibaDb) { var result = new ExportMessageLog { Id = msg.Id, MessageType = msg.MessageType.ToString(), SentDate = msg.Created.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"), Title = msg.Title, TotalRecipients = msg.TotalRecipients }; foreach (var person in msg.AppUserMessages) { result.Recipients.Add(new ExportRecipients() { Deleted = DateText(person.Deleted), Read = DateText(person.Read), Received = DateText(person.Received), IbaId = person.DeviceOwner.IbaId }); result.RecipientIds.Add(person.DeviceOwner.IbaId); // need to read c_record } var ibausers = ibaDb.C_records.Where(r => result.RecipientIds.Contains(r.id)).Select(x => new { x.id, x.given_name, x.family_name }); foreach (var person in result.Recipients) { var found = ibausers.FirstOrDefault(i => i.id == person.IbaId); if (found != null) { person.GivenName = found.given_name; person.FamilyName = found.family_name; } } return(result); }
public static MessageViewModel MsgToMessageViewModel(CmsMessage msg, bool viewRecipientsAsListBox) { var result = new MessageViewModel { Id = msg.Id, Created = msg.SendDate.HasValue ? msg.SendDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : msg.Created.ToString("yyyy-MM-dd HH:mm:ss"), MessageType = msg.MessageType, Title = msg.Title, Sender = msg.Sender, Text = msg.Text, Url = msg.Url, UrlOnly = msg.UrlOnly, Status = msg.Status }; if (msg.Recipients.IsNullOrWhiteSpace()) { result.Recipients = "Everyone"; } else if (!viewRecipientsAsListBox) { var recipientList = RecipientFieldToList(msg.Recipients); result.Recipients = recipientList[0].Name; if (recipientList.Count > 1) { result.Recipients = $"{result.Recipients} + {recipientList.Count - 1} Others"; } } else { result.RecipientList = FieldToRecipientList(msg.Recipients); } return(result); }
public static bool ProcessOneMessage(IbaCmsDbContext cmsDb, CmsMessage msg) { List <DeviceOwner> deviceOwners; if (msg.Recipients.IsNullOrWhiteSpace()) { deviceOwners = cmsDb.DeviceOwners.ToList(); } else { var recipients = JsonConvert.DeserializeObject <List <StoreMessageRecipients> >(msg.Recipients); var recipientList = recipients.Select(recipient => recipient.Id).ToList(); deviceOwners = cmsDb.DeviceOwners.Where(d => recipientList.Contains(d.IbaId)).ToList(); } var count = 0; foreach (var owner in deviceOwners) { var appuserMessage = new AppUserMessage { Created = DateTime.UtcNow, DeviceOwner = owner, Message = msg }; count++; cmsDb.AppUserMessages.Add(appuserMessage); } msg.Status = CmsMessageStatus.Distributed; msg.Created = DateTime.UtcNow; msg.TotalRecipients = count; return(count > 0); }
public static bool AddMessage(IbaCmsDbContext db, StoreMessageModel model) { try { var user = db.Users.FirstOrDefault(u => u.Id == model.UserId); var dbMessage = new CmsMessage { Url = model.Url ?? "", Created = DateTime.UtcNow, MessageType = model.MessageType, Text = model.Text ?? "", Title = model.Title, Sender = user, Recipients = model.Recipients, Status = CmsMessageStatus.Draft, UrlOnly = model.UrlOnly, TimeZone = model.TimeZone, SendDate = model.SendDate.HasValue ? model.SendDate.Value.ToUniversalTime() : (DateTime?)null }; db.CmsMessages.Add(dbMessage); db.SaveChanges(); model.NewId = dbMessage.Id; } catch (Exception) { return(false); } return(true); }
private ModifyMessageModel MessageToModifyMessageModel(CmsMessage msg) { var result = new ModifyMessageModel { UrlOnly = msg.UrlOnly, Text = msg.Text, Url = msg.Url, Id = msg.Id, MessageType = msg.MessageType, Title = msg.Title, RecipientsField = msg.Recipients, SendDateTime = msg.SendDate, TimeZone = msg.TimeZone, RecipientList = MessageLayer.FieldToRecipientList(msg.Recipients) }; return(result); }
/// <summary> /// /// </summary> /// <param name="server"></param> /// <param name="context"></param> /// <param name="callbackEndPoint"></param> /// <param name="cancel"></param> public override void Run(IHostServer server, WebContext context, string callbackEndPoint, CancellationToken cancel) { if (context.PreparedParameters == null) { context.PreparedParameters = RequestParameters.Create(context); } var preparedParams = context.PreparedParameters; var fingerprint = preparedParams.Get("cert"); var cms = preparedParams.Get("message"); var container = server.Container; var caConfigProvider = container.Get <ICaConfigProvider>(); if (caConfigProvider == null) { throw new Exception("Cannot get CA config"); } var caConfig = caConfigProvider.GetConfig(); if (caConfig == null || !caConfig.GetIsValid()) { throw new Exception("Not valid CA config"); } var cmsDecryptor = new CmsDecryptor(); cmsDecryptor.Initialize(caConfig); var cmsMessage = new CmsMessage { CertificateFingerprint = fingerprint, EncryptedMessage = cms }; context.ContentType = MimeHelper.JSON; string salt; lock (TokenAuthGetSaltHandler.Sync) { salt = TokenAuthGetSaltHandler.Salts[fingerprint].Value; } var message = cmsDecryptor.Descrypt(cmsMessage); var result = message != salt ? "false" : "true"; context.Finish(result); }
public static void UpdateMessage(IbaCmsDbContext db, StoreMessageModel model, CmsMessage msg) { msg.Url = model.Url ?? ""; msg.MessageType = model.MessageType; msg.Text = model.Text ?? ""; msg.Title = model.Title; msg.Recipients = model.Recipients; msg.UrlOnly = model.UrlOnly; msg.SendDate = model.SendDate.HasValue ? model.SendDate.Value.ToUniversalTime() : (DateTime?)null; msg.Status = CmsMessageStatus.Draft; db.SaveChanges(); }