/// <summary> /// 插入系统信息 /// </summary> /// <param name="title"></param> /// <param name="content"></param> /// <param name="recieveId"></param> /// <param name="sourceId"></param> /// <param name="sourceType"></param> /// <param name="moduleKey"></param> /// <param name="category"></param> /// <returns></returns> private bool InsertSystemMessage(string title, string content, string recieveId, Guid?sourceId, string sourceType, string moduleKey, MessageCategory category = MessageCategory.System) { using (var dbContext = new SystemMessageDbContext()) { var systemMessage = new Models.SystemMessage { Id = KeyGenerator.GetGuidKey(), Title = title, Content = content, SourceId = sourceId, MessageType = recieveId == null ? MessageType.Public : MessageType.Personal, CreateTime = DateTime.Now, SourceType = sourceType, ModuleKey = moduleKey, Category = category }; dbContext.SystemMessages.Add(systemMessage); if (recieveId != null) { var systemMessageReciever = new SystemMessageReciever { Id = KeyGenerator.GetGuidKey(), MessageId = systemMessage.Id, RecieveId = recieveId, CreateTime = DateTime.Now, Status = Status.UnRead }; dbContext.SystemMessageRecievers.Add(systemMessageReciever); } var result = dbContext.SaveChanges(); return(result > 0); } }
private bool SetMessageRead(Models.SystemMessage message, string memberId) { if (message.MessageType == MessageType.Personal) { using (var dbContext = new SystemMessageDbContext()) { var query = (from mr in dbContext.SystemMessageRecievers where mr.MessageId == message.Id && mr.RecieveId == memberId && mr.Status == Status.UnRead select mr).ToList(); foreach (var item in query) { item.Status = Status.HasRead; dbContext.Set <SystemMessageReciever>().Attach(item); dbContext.Entry(item).State = System.Data.Entity.EntityState.Modified; } dbContext.SaveChanges(); return(true); } } if (message.MessageType == MessageType.Public) { using (var dbContext = new SystemMessageDbContext()) { var query = (from mr in dbContext.SystemMessageRecievers where mr.MessageId == message.Id && mr.RecieveId == memberId select mr).ToList(); if (query.Count > 0) { foreach (var item in query) { if (item.Status == Status.UnRead) { item.Status = Status.HasRead; dbContext.Set <SystemMessageReciever>().Attach(item); dbContext.Entry(item).State = System.Data.Entity.EntityState.Modified; } } } else { var messageReciever = new SystemMessageReciever(); messageReciever.Id = KeyGenerator.GetGuidKey(); messageReciever.MessageId = message.Id; messageReciever.RecieveId = memberId; messageReciever.Status = Status.HasRead; messageReciever.CreateTime = DateTime.Now; messageReciever.ReadTime = DateTime.Now; dbContext.SystemMessageRecievers.Add(messageReciever); } dbContext.SaveChanges(); return(true); } } return(true); }
public bool Delete(string memberId, Guid messageId) { var message = _currencyService.GetSingleById <Models.SystemMessage>(messageId); if (message == null) { return(true); } bool result; if (message.MessageType == MessageType.Personal) { //删除消息和接收人关联数据 _currencyService.DeleteByConditon <Models.SystemMessage>(s => s.Id.Equals(messageId)); _currencyService.DeleteByConditon <SystemMessageReciever>(s => s.MessageId.Equals(messageId)); result = true; } else { var systemMessageReciever = _currencyService.GetSingleByConditon <SystemMessageReciever>(me => me.RecieveId == memberId && me.MessageId == messageId); if (systemMessageReciever != null && systemMessageReciever.Status != Status.Deleted) { systemMessageReciever.Status = Status.Deleted; result = _currencyService.Update(systemMessageReciever); } else { var messageReciever = new SystemMessageReciever(); messageReciever.Id = KeyGenerator.GetGuidKey(); messageReciever.MessageId = message.Id; messageReciever.RecieveId = memberId; messageReciever.Status = Status.Deleted; messageReciever.CreateTime = DateTime.Now; result = _currencyService.Create(messageReciever); } } if (result) { Logger.Operation($"会员-{memberId}删除消息-{message.Id}", SystemMessageModule.Instance); } return(result); }