Example #1
0
        /// <summary>
        /// 发送消息
        /// </summary>
        /// <param name="me"></param>
        public void SendMessage(MessageEntity me)
        {
            ClientSocket.Send(new byte[] { 0x00 });

            ClientSocket.Send(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(me)));
            ClientSocket.Send(new byte[] { 0xff });
        }
Example #2
0
 public void Remove(MessageEntity entiity)
 {
     Context.Message.Remove(entiity);
 }
Example #3
0
        private static void InitializeDatabase(CompanyNameProjectNameContext context)
        {
            try
            {
                context.Database.Migrate();
            }
            catch (SqlException exception) when(exception.Number == 1801)
            {
                // exception.Number 1801 = The database already exists

                // It is preffered to avoid an excpetion but unfortunately Entity
                // Framework doesn't offer a method to do that. CanConnect() and
                // (context.Database.GetService<IDatabaseCreator>() as RelationalDatabaseCreator).Exists()
                // both return false even if the database already exists right after it is created.
                return;
            }

            System.Diagnostics.Debug.WriteLine("No Migrate Exception");

            if (context?.Users != null && !context.Users.Any())
            {
                // load test data into arrays rather than List<T> collections to optimize performance.
                var users = new UserEntity[]
                {
                    new UserEntity
                    {
                        Email      = "*****@*****.**",
                        FirstName  = "Bill",
                        LastName   = "Smith",
                        IsActive   = true,
                        Guid       = Guid.NewGuid(),
                        CreatedBy  = 1,
                        CreatedOn  = DateTime.Now,
                        ModifiedBy = 1,
                        ModifiedOn = DateTime.Now
                    },
                    new UserEntity
                    {
                        Email      = "*****@*****.**",
                        FirstName  = "Bob",
                        LastName   = "Jones",
                        IsActive   = true,
                        Guid       = Guid.NewGuid(),
                        CreatedBy  = 1,
                        CreatedOn  = DateTime.Now,
                        ModifiedBy = 1,
                        ModifiedOn = DateTime.Now
                    },
                };

                foreach (var user in users)
                {
                    context.Users.Add(user);
                }

                context.SaveChanges();
            }

            if (context?.Messages != null && !context.Messages.Any())
            {
                var messages = new MessageEntity[]
                {
                    new MessageEntity
                    {
                        Text       = "Hello, Bill!",
                        ChannelId  = 1,
                        IsActive   = true,
                        Guid       = Guid.NewGuid(),
                        UserId     = 1,
                        CreatedBy  = 1,
                        CreatedOn  = DateTime.Now,
                        ModifiedBy = 1,
                        ModifiedOn = DateTime.Now
                    },
                    new MessageEntity
                    {
                        Text       = "Hi, Bob!",
                        ChannelId  = 1,
                        IsActive   = true,
                        Guid       = Guid.NewGuid(),
                        UserId     = 2,
                        CreatedBy  = 1,
                        CreatedOn  = DateTime.Now,
                        ModifiedBy = 1,
                        ModifiedOn = DateTime.Now
                    },
                };

                foreach (var message in messages)
                {
                    context.Messages.Add(message);
                }

                context.SaveChanges();
            }

            System.Diagnostics.Debug.WriteLine("InitializeDatabase Complete");
        }
        public async Task Get_Resources_After_Initialization()
        {
            var guid               = Guid.NewGuid().ToString();
            var connectionString   = GetTestConnectionString(guid);
            var connection         = new SqliteConnection(connectionString);
            var testNowProvider    = new TestNowProvider();
            var resourcesApiClient = GetResourceApiClient(connectionString, testNowProvider);

            try
            {
                DbInitializer.Initialize(connection, TestContextProvider.GetContext,
                                         new List <IEnumerable <object> >
                {
                    new List <ResourceEntity>
                    {
                        new ResourceEntity
                        {
                            Id       = 1, ResourceId = 1,
                            Messages = new List <MessageEntity>
                            {
                                new MessageEntity {
                                    Id = 1, ResourceId = 1, Message = "Message1 in Resource1"
                                },
                                new MessageEntity {
                                    Id = 2, ResourceId = 1, Message = "Message2 in Resource1"
                                }
                            }
                        },
                        new ResourceEntity
                        {
                            Id       = 2, ResourceId = 2,
                            Messages = new List <MessageEntity>
                            {
                                new MessageEntity {
                                    Id = 3, ResourceId = 2, Message = "Message3 in Resource2"
                                },
                                new MessageEntity {
                                    Id = 4, ResourceId = 2, Message = "Message4 in Resource2"
                                }
                            }
                        }
                    }
                }
                                         );

                var messages = await resourcesApiClient.GetAllMessagesAsync();

                var resources = await resourcesApiClient.GetAllResourcesAsync();

                var message5 = new MessageEntity {
                    ResourceId = 2, Message = "Message5 in Resource2"
                };
                await resourcesApiClient.AddMessageAsync(message5);

                var messages2 = await resourcesApiClient.GetAllMessagesAsync();

                var resources2 = await resourcesApiClient.GetAllResourcesAsync();

                var resourceId2 = resources2.FirstOrDefault(r => r.ResourceId == 2);

                var resource3 = new ResourceEntity {
                    ResourceId = 3
                };
                await resourcesApiClient.AddResourceAsync(resource3);

                var resources3 = await resourcesApiClient.GetAllResourcesAsync();

                Assert.AreEqual(4, messages.Count);
                Assert.AreEqual(5, messages2.Count);
                Assert.AreEqual(2, resources.Count);
                Assert.AreEqual(3, resourceId2?.Messages?.Count);
                Assert.AreEqual(3, resources3.Count);
            }
            finally
            {
                connection.Close();
            }
        }
Example #5
0
        public async Task <IEnumerable <MessageEntity> > AddAndGetAsync(MessageEntity newMessage)
        {
            await _messages.InsertOneAsync(newMessage);

            return((await _messages.FindAsync(x => x.ThreadId == newMessage.ThreadId, OrderByTimeFindOptions)).ToEnumerable());
        }
        private void ucWorkResultPopUp_T50_Load(object sender, EventArgs e)
        {
            try
            {
                _pMessageEntity = new MessageEntity();
                DataTable dtMessage = new MessageBusiness().MessageValue_Info(_pLANGUAGE_TYPE);
                if (dtMessage != null)
                {
                    _pMessageEntity.MSG_SEARCH           = dtMessage.Rows[0]["MSG_SEARCH"].ToString();
                    _pMessageEntity.MSG_SEARCH_EMPT      = dtMessage.Rows[0]["MSG_SEARCH_EMPT"].ToString();
                    _pMessageEntity.MSG_SAVE_QUESTION    = dtMessage.Rows[0]["MSG_SAVE_QUESTION"].ToString();
                    _pMessageEntity.MSG_SAVE             = dtMessage.Rows[0]["MSG_SAVE"].ToString();
                    _pMessageEntity.MSG_SAVE_ERROR       = dtMessage.Rows[0]["MSG_SAVE_ERROR"].ToString();
                    _pMessageEntity.MSG_DELETE_QUESTION  = dtMessage.Rows[0]["MSG_DELETE_QUESTION"].ToString();
                    _pMessageEntity.MSG_DELETE           = dtMessage.Rows[0]["MSG_DELETE"].ToString();
                    _pMessageEntity.MSG_DELETE_ERROR     = dtMessage.Rows[0]["MSG_DELETE_ERROR"].ToString();
                    _pMessageEntity.MSG_DELETE_COMPLETE  = dtMessage.Rows[0]["MSG_DELETE_COMPLETE"].ToString();
                    _pMessageEntity.MSG_INPUT_DATA       = dtMessage.Rows[0]["MSG_INPUT_DATA"].ToString();
                    _pMessageEntity.MSG_INPUT_DATA_ERROR = dtMessage.Rows[0]["MSG_INPUT_DATA_ERROR"].ToString();
                    _pMessageEntity.MSG_WORKING          = dtMessage.Rows[0]["MSG_WORKING"].ToString();
                    _pMessageEntity.MSG_RESET_QUESTION   = dtMessage.Rows[0]["MSG_RESET_QUESTION"].ToString();
                    _pMessageEntity.MSG_EXIT_QUESTION    = dtMessage.Rows[0]["MSG_EXIT_QUESTION"].ToString();
                    _pMessageEntity.MSG_SELECT           = dtMessage.Rows[0]["MSG_SELECT"].ToString();

                    //추가
                    _pMessageEntity.MSG_PLZ_CONNECT_FTP           = dtMessage.Rows[0]["MSG_PLZ_CONNECT_FTP"].ToString();
                    _pMessageEntity.MSG_AGAIN_INPUT_DATA          = dtMessage.Rows[0]["MSG_AGAIN_INPUT_DATA"].ToString();
                    _pMessageEntity.MSG_DOWNLOAD_COMPLETE         = dtMessage.Rows[0]["MSG_DOWNLOAD_COMPLETE"].ToString();
                    _pMessageEntity.MSG_SEARCH_EMPT_DETAIL        = dtMessage.Rows[0]["MSG_SEARCH_EMPT_DETAIL"].ToString();
                    _pMessageEntity.MSG_SPLITQTY_LARGE_MORE       = dtMessage.Rows[0]["MSG_SPLITQTY_LARGE_MORE"].ToString();
                    _pMessageEntity.MSG_DELETE_ERROR_NO_DATA      = dtMessage.Rows[0]["MSG_DELETE_ERROR_NO_DATA"].ToString();
                    _pMessageEntity.MSG_ORDERQTY_LARGE_THAN_0     = dtMessage.Rows[0]["MSG_ORDERQTY_LARGE_THAN_0"].ToString();
                    _pMessageEntity.MSG_PLAN_LARGE_THAN_ORDER     = dtMessage.Rows[0]["MSG_PLAN_LARGE_THAN_ORDER"].ToString();
                    _pMessageEntity.MSG_DELETE_ERROR_CONNECT_FTP  = dtMessage.Rows[0]["MSG_DELETE_ERROR_CONNECT_FTP"].ToString();
                    _pMessageEntity.MSG_INPUT_LESS_THAN_NOTOUTQTY = dtMessage.Rows[0]["MSG_INPUT_LESS_THAN_NOTOUTQTY"].ToString();
                    _pMessageEntity.MSG_LOAD_DATA                    = dtMessage.Rows[0]["MSG_LOAD_DATA"].ToString();
                    _pMessageEntity.MSG_NEW_REG_GUBN                 = dtMessage.Rows[0]["MSG_NEW_REG_GUBN"].ToString();
                    _pMessageEntity.MSG_INPUT_NUMERIC                = dtMessage.Rows[0]["MSG_INPUT_NUMERIC"].ToString();
                    _pMessageEntity.MSG_NO_SELETED_ITEM              = dtMessage.Rows[0]["MSG_NO_SELETED_ITEM"].ToString();
                    _pMessageEntity.MSG_EXIST_COMPANY_ID             = dtMessage.Rows[0]["MSG_EXIST_COMPANY_ID"].ToString();
                    _pMessageEntity.MSG_NOT_DELETE_DATA_IN           = dtMessage.Rows[0]["MSG_NOT_DELETE_DATA_IN"].ToString();
                    _pMessageEntity.MSG_NOT_MODIFY_DATA_IN           = dtMessage.Rows[0]["MSG_NOT_MODIFY_DATA_IN"].ToString();
                    _pMessageEntity.MSG_SELECT_NEWREG_SAVE           = dtMessage.Rows[0]["MSG_SELECT_NEWREG_SAVE"].ToString();
                    _pMessageEntity.MSG_INPUT_LARGER_THAN_0          = dtMessage.Rows[0]["MSG_INPUT_LARGER_THAN_0"].ToString();
                    _pMessageEntity.MSG_NOT_DELETE_DATA_OUT          = dtMessage.Rows[0]["MSG_NOT_DELETE_DATA_OUT"].ToString();
                    _pMessageEntity.MSG_NOT_MODIFY_DATA_OUT          = dtMessage.Rows[0]["MSG_NOT_MODIFY_DATA_OUT"].ToString();
                    _pMessageEntity.MSG_CANCLE_NEWREG_MODIFY         = dtMessage.Rows[0]["MSG_CANCLE_NEWREG_MODIFY"].ToString();
                    _pMessageEntity.MSG_NO_SELETED_ITEM_OR_NO_SAVE   = dtMessage.Rows[0]["MSG_NO_SELETED_ITEM_OR_NO_SAVE"].ToString();
                    _pMessageEntity.MSG_NO_INPUT_LAGER_THAN_NOTINQTY = dtMessage.Rows[0]["MSG_NO_INPUT_LAGER_THAN_NOTINQTY"].ToString();
                    _pMessageEntity.MSG_REG_DATA                 = dtMessage.Rows[0]["MSG_REG_DATA"].ToString();
                    _pMessageEntity.MSG_ADD_FAVORITE_ITEM        = dtMessage.Rows[0]["MSG_ADD_FAVORITE_ITEM"].ToString();
                    _pMessageEntity.MSG_CHECK_SEARCH_DATE        = dtMessage.Rows[0]["MSG_CHECK_SEARCH_DATE"].ToString();
                    _pMessageEntity.MSG_NOT_DISPLAY_ERROR        = dtMessage.Rows[0]["MSG_NOT_DISPLAY_ERROR"].ToString();
                    _pMessageEntity.MSG_NO_EXIST_INPUT_DATA      = dtMessage.Rows[0]["MSG_NO_EXIST_INPUT_DATA"].ToString();
                    _pMessageEntity.MSG_NOT_DISPLAY_NOT_SAVE     = dtMessage.Rows[0]["MSG_NOT_DISPLAY_NOT_SAVE"].ToString();
                    _pMessageEntity.MSG_CHECK_VALID_ITEM         = dtMessage.Rows[0]["MSG_CHECK_VALID_ITEM"].ToString();
                    _pMessageEntity.MSG_DELETE_FAVORITE_ITEM     = dtMessage.Rows[0]["MSG_DELETE_FAVORITE_ITEM"].ToString();
                    _pMessageEntity.MSG_NOT_EXIST_PRINTING_EXCEL = dtMessage.Rows[0]["MSG_NOT_EXIST_PRINTING_EXCEL"].ToString();
                    _pMessageEntity.MSG_SELECT_DOWNLOAD_TEMPLETE = dtMessage.Rows[0]["MSG_SELECT_DOWNLOAD_TEMPLETE"].ToString();
                    _pMessageEntity.MSG_RESET_COMPLETE           = dtMessage.Rows[0]["MSG_RESET_COMPLETE"].ToString();
                }

                _pucWorkResultPopUp_T50_Entity               = new ucWorkResultPopUp_T50_Entity();
                _pucWorkResultPopUp_T50_Entity.CORP_CODE     = _pCORP_CODE;
                _pucWorkResultPopUp_T50_Entity.USER_CODE     = _pUSER_CODE;
                _pucWorkResultPopUp_T50_Entity.LANGUAGE_TYPE = _pLANGUAGE_TYPE;

                qWORK_ORDERID  = _pARRAY_CODE[0].ToString();
                qPART_CODE     = _pARRAY_CODE[1].ToString();
                qPART_NAME     = _pARRAY_CODE[2].ToString();
                qPROCESS_CODE  = _pARRAY_CODE[3].ToString();
                qWORK_ORDERSEQ = _pARRAY_CODE[4].ToString();

                qorder_qty = Convert.ToDecimal(_pARRAY_CODE[5].ToString());
                qok_qty    = Convert.ToDecimal(_pARRAY_CODE[6].ToString());
                qng_qty    = Convert.ToDecimal(_pARRAY_CODE[7].ToString());

                //qWORK_ORDERSEQ = _pARRAY_CODE[5].ToString();
                InitializeSetting();
            }
            catch (ExceptionManager pExceptionManager)
            {
                CoFAS_DevExpressManager.ShowErrorMessage(string.Format("{0}\n{1}", pExceptionManager.Exception.Message.ToString(), pExceptionManager.TargetSite.ToString()));
            }
            finally
            {
                DevExpress.Utils.AppearanceObject.DefaultFont = fntPARENT_FONT;//화면에 모든 항목 폰트 재설정
            }
        }
Example #7
0
        public async void Execute()
        {
            while (true)
            {
                MessageEntity message = null;
                do
                {
                    message = await queueProvider.DequeueAsync <MessageEntity>("experttouser");


                    if (message != null)
                    {
                        var questionFromStillInterested = await tableStorageProvider.RetrievePartitionFromTableAsync <StillInterestedEntity>("stillinterested", message.Question);

                        var users = await tableStorageProvider.RetrieveTableAsync <UserEntity>("users");

                        if (questionFromStillInterested.Any())
                        {
                            foreach (var question in questionFromStillInterested)
                            {
                                var user = users.FirstOrDefault(x => x.UserId == question.UserId);
                                if (user != null)
                                {
                                    var conversationReference = JsonConvert.DeserializeObject <ConversationReference>(user.ConversationReference);

                                    var connector = new ConnectorClient(new Uri(conversationReference.ServiceUrl));
                                    MicrosoftAppCredentials.TrustServiceUrl(conversationReference.ServiceUrl, DateTime.MaxValue);
                                    var messageActivity = Activity.CreateMessageActivity();

                                    if (!question.ReceivedAnswer)
                                    {
                                        question.ReceivedAnswer = true;
                                        if (string.Compare(message.OriginalAnswer, message.ExpertAnswer, StringComparison.InvariantCultureIgnoreCase) == 0)
                                        {
                                            messageActivity.Text = string.Format(messageProvider.GetMessage("ReceivedOriginalAnswer"), message.Question, message.ExpertAnswer);
                                        }
                                        else
                                        {
                                            messageActivity.Text = string.Format(messageProvider.GetMessage("ReceivedAnswer"), message.Question, message.ExpertAnswer);
                                        }
                                    }
                                    else if (user.Notifications)

                                    {
                                        messageActivity.Text = string.Format(messageProvider.GetMessage("ReceivedAnswerUpdate"), message.Question, message.ExpertAnswer);
                                    }
                                    else
                                    {
                                        //Notifications are off. We clean the entry
                                        await tableStorageProvider.DeleteFromTableAsync("stillinterested", new StillInterestedEntity[] { question });

                                        return;
                                    }

                                    messageActivity.Conversation = new ConversationAccount(id: conversationReference.Conversation.Id);
                                    messageActivity.Recipient    = new ChannelAccount(id: conversationReference.User.Id, name: conversationReference.User.Name);
                                    messageActivity.From         = new ChannelAccount(id: conversationReference.Bot.Id, name: conversationReference.Bot.Name);
                                    messageActivity.ChannelId    = conversationReference.ChannelId;

                                    try
                                    {
                                        await connector.Conversations.SendToConversationAsync((Activity)messageActivity);

                                        await tableStorageProvider.SendToTableAsync("stillinterested", question);
                                    }
                                    catch (Exception e)
                                    {
                                        await eventProvider.SendEventAsync(new TechnicalErrorEvent()
                                        {
                                            Exception      = JsonConvert.SerializeObject(e),
                                            ChannelId      = conversationReference.ChannelId,
                                            ConversationId = conversationReference.Conversation.Id,
                                        });

                                        continue;
                                    }
                                }
                            }
                        }
                    }
                } while (message != null);
                Thread.Sleep(10000);
            }
        }
Example #8
0
    public static void AddNotified(JSONObject json) {
        json = json["notifications"];
        Main.user.messages = json.Count;
        for (int i = 0; i < json.Count; i++) {
            MessageEntity temp = new MessageEntity();

            temp.id = JSONObjectToInt(json[i]["id"]);
            temp.sid = JSONObjectToString(json[i]["sid"]);
            temp.item = JSONObjectToInt(json[i]["item"]);
            temp.type = JSONObjectToInt(json[i]["type"]);
            temp.text = JSONObjectToString(json[i]["text"]);

            messageEntities.Add(temp);
        }
        onStartInitializeSuccess(3);
    }
Example #9
0
 public virtual void CreateMessage(MessageContext context, string id, SagaEntity sagaentity, MessageEntity messageentity)
 {
 }
 public static int GetFinish(this MessageEntity entity)
 {
     return(entity.Offset + entity.Length);
 }
Example #11
0
        /// <summary>
        /// 批量保存本地事件
        /// </summary>
        /// <param name="ontology">本体</param>
        /// <param name="commands"></param>
        public ProcessResult SaveCommands(OntologyDescriptor ontology, MessageEntity[] commands)
        {
            if (ontology == null)
            {
                return new ProcessResult(new ArgumentNullException("ontology", @"ontology参数为null"));
            }
            if (commands == null)
            {
                return new ProcessResult(new ArgumentNullException("commands"));
            }
            foreach (var command in commands)
            {
                if (command == null)
                {
                    return new ProcessResult(new ArgumentNullException("command", "命令数组中有null"));
                }
                else if (!ontology.Ontology.Code.Equals(command.Ontology, StringComparison.OrdinalIgnoreCase))
                {
                    return new ProcessResult(new ArgumentNullException("command.Ontology", "同一命令数组中的命令必须在相同本体下"));
                }
            }
            ProcessResult r = ProcessResult.Ok;
            // 存放异常信息
            StringBuilder sb = new StringBuilder();
            int l = sb.Length;
            // 按照命令类型分组,不同类型的命令可能存储在不同的数据库表
            var gs = commands.GroupBy(c => c.CommandType);
            foreach (var g in gs)
            {
                // 本组命令类型所对应的数据库表
                string tableId = string.Format("[{0}][{1}]", ontology.Ontology.MessageSchemaName, GetTableName(g.Key));
                DbTable dbTable;
                if (!this.GetCommandDb(ontology).TryGetDbTable(tableId, out dbTable))
                {
                    r = new ProcessResult(new AnycmdException("意外的数据库表标识" + tableId));
                }
                // 当前命令表模式克隆得到的新表
                var dt = this.GetCommandDb(ontology).NewTable(dbTable);
                foreach (var command in g)
                {
                    if (command.CommandType == MessageTypeKind.Invalid || command.CommandType == MessageTypeKind.AnyCommand)
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "Invalid和AnyCommand类型命令不能持久化");
                    }
                    else if (string.IsNullOrEmpty(command.Verb.Code))
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "Verb为空或null不能持久化");
                    }
                    else if (string.IsNullOrEmpty(command.MessageId)
                        || command.MessageId.Length > 50)
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "MessageID为空或null或者长度大于50字符不能持久化");
                    }
                    else if (string.IsNullOrEmpty(command.LocalEntityId))
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "LocalEntityID为空或null不能持久化");
                    }
                    else if (command.DataTuple.IdItems.IsEmpty)
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "当前命令的信息标识为空则不能持久化");
                    }
                    else if (!command.TimeStamp.IsValid())
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "TimeStamp非法则不能持久化");
                    }
                    else if (string.IsNullOrEmpty(command.Ontology))
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "Ontology为空或null不能持久化");
                    }
                    else if (string.IsNullOrEmpty(command.ClientId))
                    {
                        r = new ProcessResult(false, Status.InvalidArgument, "ClientID为空或null不能持久化");
                    }
                    if (r.IsSuccess)
                    {
                        // 将当前命令转化DataRow,一个命令对应一行
                        var row = command.ToDataRow(dt);
                        int ll = sb.Length;
                        // 检测每一列对应的值是否超出了数据库定义的长度
                        for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            var dbCol = dt.Columns[i];
                            if (dbCol.MaxLength != -1)
                            {
                                if (row[i].ToString().Length > dbCol.MaxLength)
                                {
                                    if (sb.Length != ll)
                                    {
                                        sb.Append(";");
                                    }
                                    sb.Append(tableId).Append("表:");
                                    sb.Append(dbCol.ColumnName + "超过最大长度,最长" + dbCol.MaxLength.ToString());
                                }
                            }
                        }
                        if (sb.Length == ll)
                        {
                            // 如果不是哑命令。哑命令是不能爆炸的。
                            if (!command.IsDumb)
                            {
                                dt.Rows.Add(row);
                            }
                        }
                    }
                    else
                    {
                        sb.Append(r.Description);
                    }
                }

                this.GetCommandDb(ontology).WriteToServer(dt);
            }

            if (sb.Length != l)
            {
                r = new ProcessResult(new AnycmdException(sb.ToString()));
            }
            else
            {
                r = ProcessResult.Ok;
            }

            if (r.Exception != null)
            {
                ontology.Host.LoggingService.Error(r.Exception);
            }

            return r;
        }
Example #12
0
        /// <summary>
        /// 保存命令事件
        /// </summary>
        /// <param name="ontology"></param>
        /// <param name="command"></param>
        public ProcessResult SaveCommand(OntologyDescriptor ontology, MessageEntity command)
        {
            if (ontology == null)
            {
                return new ProcessResult(new ArgumentNullException("ontology", "ontology参数为null"));
            }
            if (command == null)
            {
                return new ProcessResult(new ArgumentNullException("command"));
            }

            return this.SaveCommands(ontology, new MessageEntity[] { command });
        }
Example #13
0
        public override void ExecuteCommand(EasyClientBase session, PackageInfo packageInfo)
        {
            GetOfflineMessageListPackage package = packageInfo as GetOfflineMessageListPackage;
            List <DB.messageDB>          lst     = new List <DB.messageDB>();

            if (packageInfo.code == 0)
            {
                //离线消息入库
                if (package != null)
                {
                    package.RECVLog();
                    string log = Util.Helpers.CodeTimer.Time("ReceiveOffLineMessage", 1, () =>
                    {
                        lst = Util.Helpers.Async.Run(async() => await DAL.DALMessageHelper.ReceiveOffLineMessage(package));

                        if (lst != null)
                        {
                            var noticemsgs_del = lst.Where(m => m.noticeId != 0 && m.msgType == nameof(SDKProperty.MessageType.deletegroupnotice));
                            var noticemsgs_add = lst.Where(m => m.noticeId != 0 && m.msgType == nameof(SDKProperty.MessageType.addgroupnotice));

                            foreach (var item in noticemsgs_add)
                            {
                                if (noticemsgs_del.Any(m => m.noticeId == item.noticeId))
                                {
                                    item.optionRecord += (int)SDKProperty.MessageState.cancel;
                                }
                            }
                            foreach (var item in lst)
                            {
                                var isgroup = item.roomType == 1 ? true : false;
                                IList <MessageEntity> msglst = new List <MessageEntity>();
                                //  if (offlineMessage.context.TryAdd((item.roomId, isgroup), msglst))
                                if (offlineMessage.context.TryAdd(new Tuple <int, bool>(item.roomId, isgroup), msglst))
                                {
                                    MessageEntity messageEntity = new MessageEntity()
                                    {
                                        db = item
                                    };
                                    msglst.Add(messageEntity);
                                }
                                else
                                {
                                    // if (offlineMessage.context.TryGetValue((item.roomId, isgroup), out msglst))
                                    if (offlineMessage.context.TryGetValue(new Tuple <int, bool>(item.roomId, isgroup), out msglst))
                                    {
                                        MessageEntity messageEntity = new MessageEntity()
                                        {
                                            db = item
                                        };
                                        var target = msglst.FirstOrDefault(m => m.MsgId == item.msgId);
                                        if (target == null)
                                        {
                                            msglst.Add(messageEntity);
                                        }
                                        else
                                        {
                                            msglst.Remove(target);
                                            msglst.Add(messageEntity);
                                        }
                                    }
                                }
                            }

                            //  SDKClient.Instance.OnOffLineMessageEventHandle(offlineMessage);
                        }
                    });
                    logger.Info(log);
                }

                if (package.data.count == 1000)//继续发送请求
                {
                    GetOfflineMessageListPackage p = new GetOfflineMessageListPackage();

                    p.data = new GetOfflineMessageListPackage.Data();

                    p.from       = SDKClient.Instance.property.CurrentAccount.userID.ToString();
                    p.id         = package.id;
                    p.data.count = package.data.count;
                    p.data.time  = package.data.time;
                    ThreadPool.QueueUserWorkItem(m =>
                    {
                        // SDKClient.Instance.GetOfflineMessageList(p);
                    });
                    //p.Send(session);

                    PushOfflineMessage(package, lst);
                    //logger.Info("离线消息msg=>ui: " + package.id);
                }
                else
                {
                    Task.Run(() =>
                    {
                        try
                        {
                            PushOfflineMessage(package, lst);


                            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                            {
                                BinaryFormatter binaryFormatter = new BinaryFormatter();

                                binaryFormatter.Serialize(ms, offlineMessage);
                                ms.Position = 0;
                                object temp = binaryFormatter.Deserialize(ms);
                                SDKClient.Instance.OnOffLineMessageEventHandle((OfflineMessageContext)temp);
                            }
                            offlineMessage.context.Clear();
                            logger.Info("离线消息msg=>ui: " + package.id);
                        }
                        catch (Exception ex)
                        {
                            logger.Error($"PushOfflineMessage 处理出错 error:{ex.Message}; source : {package.ToString()}");
                        }
                        System.Threading.Interlocked.CompareExchange(ref SDKClient.Instance.property.CanHandleMsg, 2, 1);
                        logger.Info("CanHandleMsg 值修改为:2");
                        //foreach (var item in SDKClient.Instance.property.PackageCache)
                        //{
                        //    SDKClient.Instance.OnNewDataRecv(item);
                        //}
                        //发送离线消息已收确认请求
                        GetOfflineMessageListPackage p = new GetOfflineMessageListPackage();
                        p.data       = new GetOfflineMessageListPackage.Data();
                        p.from       = SDKClient.Instance.property.CurrentAccount.userID.ToString();
                        p.id         = package.id;
                        p.data.count = 0;
                        p.data.time  = package.data.time;
                        ThreadPool.QueueUserWorkItem(m =>
                        {
                            // SDKClient.Instance.GetOfflineMessageList(p,false);
                            logger.Info("OfflineMessageList 发送离线消息全部已收确认");
                        });
                    });
                }
            }
            base.ExecuteCommand(session, packageInfo);
        }
Example #14
0
        public int UpdateEntity(object entity, ConnectionFactory.DBConnNames dBConnName, out MessageEntity messageEntity)
        {
            using (var conn = ConnectionFactory.GetDBConn(dBConnName))
            {
                var rows      = 0;
                var updateSql = DapperExtentions.MakeUpdateSql(entity);
                if (string.IsNullOrEmpty(updateSql))
                {
                    messageEntity = MessageEntityTool.GetMessage(ErrorType.SqlError, "请检查实体类");
                    return(0);
                }
                try
                {
                    rows          = conn.Execute(updateSql, entity);
                    messageEntity = MessageEntityTool.GetMessage(rows);
                }
                catch (Exception e)
                {
                    messageEntity = MessageEntityTool.GetMessage(ErrorType.SqlError, e.Message);
                }

                return(rows);
            }
        }
Example #15
0
            public void AppliesActiveEntitiesToComponentTree()
            {
                var eventWithMessage           = new EventEntity(Level2A.Path, DefaultStartTime, ComponentStatus.Degraded);
                var messageForEventWithMessage = new MessageEntity(eventWithMessage, DefaultStartTime, "", MessageType.Manual);
                var degradedIncidentGroupForEventWithMessage    = new IncidentGroupEntity(eventWithMessage, Level3AFrom2A.Path, ComponentStatus.Degraded, DefaultStartTime);
                var downIncidentGroupForEventWithMessage        = new IncidentGroupEntity(eventWithMessage, Level3AFrom2A.Path, ComponentStatus.Down, DefaultStartTime);
                var upIncidentGroupForEventWithMessage          = new IncidentGroupEntity(eventWithMessage, Level3AFrom2A.Path, ComponentStatus.Up, DefaultStartTime);
                var inactiveIncidentGroupForEventWithMessage    = new IncidentGroupEntity(eventWithMessage, Level3BFrom2A.Path, ComponentStatus.Degraded, DefaultStartTime, DefaultStartTime);
                var missingPathIncidentGroupForEventWithMessage = new IncidentGroupEntity(eventWithMessage, "missingPath", ComponentStatus.Degraded, DefaultStartTime);

                var eventWithoutMessage = new EventEntity(Level2B.Path, DefaultStartTime, ComponentStatus.Degraded);
                var incidentGroupForEventWithoutMessage = new IncidentGroupEntity(eventWithoutMessage, Level3AFrom2B.Path, ComponentStatus.Degraded, DefaultStartTime);

                var inactiveEventWithMessage                 = new EventEntity(Level2B.Path, DefaultStartTime + TimeSpan.FromDays(1), ComponentStatus.Degraded, DefaultStartTime + TimeSpan.FromDays(2));
                var messageForInactiveEventWithMessage       = new MessageEntity(inactiveEventWithMessage, DefaultStartTime + TimeSpan.FromDays(1), "", MessageType.Manual);
                var incidentGroupForInactiveEventWithMessage = new IncidentGroupEntity(inactiveEventWithMessage, Level3BFrom2B.Path, ComponentStatus.Degraded, DefaultStartTime + TimeSpan.FromDays(1));

                Table.SetupQuery(
                    messageForEventWithMessage,
                    messageForInactiveEventWithMessage);

                Table.SetupQuery(
                    degradedIncidentGroupForEventWithMessage,
                    downIncidentGroupForEventWithMessage,
                    upIncidentGroupForEventWithMessage,
                    inactiveIncidentGroupForEventWithMessage,
                    missingPathIncidentGroupForEventWithMessage,
                    incidentGroupForEventWithoutMessage,
                    incidentGroupForInactiveEventWithMessage);

                Table.SetupQuery(
                    eventWithMessage,
                    eventWithoutMessage,
                    inactiveEventWithMessage);

                var result = Exporter.Export();

                // Status of events with messages are applied.
                AssertComponentStatus(ComponentStatus.Degraded, Level2A, eventWithMessage);

                // Most severe status affecting same component is applied.
                AssertComponentStatus(
                    ComponentStatus.Down,
                    Level3AFrom2A,
                    degradedIncidentGroupForEventWithMessage,
                    downIncidentGroupForEventWithMessage,
                    upIncidentGroupForEventWithMessage);

                // Status of inactive incident groups are not applied.
                AssertComponentStatus(ComponentStatus.Up, Level3BFrom2A, inactiveIncidentGroupForEventWithMessage);

                // Status of events without messages are not applied.
                // Status of inactive events with messages are not applied.
                AssertComponentStatus(ComponentStatus.Up, Level2B, eventWithoutMessage, inactiveEventWithMessage);

                // Status of incident groups for events without messages are not applied.
                AssertComponentStatus(ComponentStatus.Up, Level3AFrom2B, incidentGroupForEventWithoutMessage);

                // Status of incident groups for inactive events with messages are not applied.
                AssertComponentStatus(ComponentStatus.Up, Level3BFrom2B, incidentGroupForInactiveEventWithMessage);
            }
Example #16
0
 public virtual void CreateMessage(MessageContext context, MessageEntity messageentity)
 {
 }
Example #17
0
 /// <summary>
 /// 断开服务端Socket
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="me"></param>
 private void Ci_DisConnection(object sender, MessageEntity me)
 {
     callback.DisConnection(sender as ClientSocketInstance, me);
 }
Example #18
0
 public async Task <MessageEntity> SearchOrCreateGroup(long company, long user, long creator,
                                                       int type, MessageEntity message)
 {
     if (_group.Include(g => g.UsersList).Where(g => g.UsersList.Any(u => u.UserId == creator) &&
                                                g.UsersList.Any(u => u.UserId == user)).Any(g =>
                                                                                            g.Category == type && g.CompanyId == company) == false)
     {
         var group = new GroupEntity()
         {
             Category  = type,
             CompanyId = company,
             UserId    = user
         };
         var party = new List <PartyEntity>
         {
             new PartyEntity()
             {
                 Group  = @group,
                 UserId = user
             },
             new PartyEntity()
             {
                 Group  = @group,
                 UserId = creator
             }
         };
         group.UsersList = party;
         _group.Add(group);
         context.SaveChanges();
         if (group.Id > 0)
         {
             message.GroupId = group.Id;
             _Message.Add(message);
             context.SaveChanges();
             return(_Message
                    .Include(m => m.Group)
                    .ThenInclude(g => g.UsersList)
                    .Include(m => m.User)
                    .First(m => m.Id == message.Id));
         }
         else
         {
             return(null);
         }
     }
     else
     {
         var groupList = _group.Include(g => g.UsersList)
                         .Where(g =>
                                g.UsersList.Any(u => u.UserId == user) &&
                                g.UsersList.Any(u => u.UserId == creator))
                         .FirstOrDefault(g =>
                                         g.Category == type &&
                                         g.CompanyId == company
                                         );
         if (groupList != null)
         {
             message.GroupId = groupList.Id;
             _Message.Add(message);
             context.SaveChanges();
             return(_Message
                    .Include(m => m.Group)
                    .ThenInclude(g => g.UsersList)
                    .Include(m => m.User)
                    .First(m => m.Id == message.Id));
         }
         else
         {
             return(null);
         }
     }
 }
Example #19
0
 /// <summary>
 /// 板上组装。提供给子类实现的模板方法。
 /// </summary>
 /// <param name="command"></param>
 protected virtual void PopulateCore(MessageEntity command)
 {
 }
Example #20
0
 public async Task Create(MessageEntity entity)
 {
     _Message.Add(entity);
     await context.SaveChangesAsync();
 }
Example #21
0
 public void SendMessage(MessageEntity message, bool isCommit)
 {
 }
Example #22
0
 public MessagePageViewModel()
 {
     _messageEntity          = new MessageEntity();
     _messageGroupCollection = new ObservableCollection <MessageGroupItem>();
 }
Example #23
0
        public async Task Create(MessageEntity sms)
        {
            await db.Sms.AddAsync(sms);

            await db.SaveChangesAsync();
        }
Example #24
0
        /// <summary>
        /// Deletes the user with the ID passed in. Will reset all posts made by the user to the userid 0.
        /// </summary>
        /// <param name="userID">The user ID.</param>
        /// <remarks>Can't delete user 0</remarks>
        /// <returns>true if succeeded, false otherwise</returns>
        public static bool DeleteUser(int userID)
        {
            if (userID == 0)
            {
                // can't delete the Anonymous coward user.
                return(false);
            }

            UserEntity toDelete = UserGuiHelper.GetUser(userID);

            if (toDelete == null)
            {
                // user doesn't exist
                return(false);
            }

            // all actions have to take place in a transaction.
            Transaction trans = new Transaction(IsolationLevel.ReadCommitted, "DeleteUser");

            try
            {
                // we'll first update all PostedByUserId fields of all messages which are posted by the user to delete.
                MessageEntity messageUpdater = new MessageEntity();
                messageUpdater.PostedByUserID = 0;      // reset to AC.
                MessageCollection messages = new MessageCollection();
                trans.Add(messages);                    // add to the transaction
                // update all entities directly in the DB, which match the following filter and update them with the new values set in messageUpdater.
                messages.UpdateMulti(messageUpdater, (MessageFields.PostedByUserID == userID));

                // set the startuser of threads started by this user to 0
                ThreadEntity threadUpdater = new ThreadEntity();
                threadUpdater.StartedByUserID = 0;
                ThreadCollection threads = new ThreadCollection();
                trans.Add(threads);
                threads.UpdateMulti(threadUpdater, (ThreadFields.StartedByUserID == userID));

                // remove the user from the UserRoles set, as the user shouldn't be in any roles.
                RoleUserCollection roleUsersDeleter = new RoleUserCollection();
                trans.Add(roleUsersDeleter);
                // delete all entities directly from the DB which match the following filter.
                roleUsersDeleter.DeleteMulti(RoleUserFields.UserID == userID);

                // delete all bookmarks of user
                BookmarkCollection bookmarkDeleter = new BookmarkCollection();
                trans.Add(bookmarkDeleter);
                // delete all bookmarks for this user directly from the DB using the following filter.
                bookmarkDeleter.DeleteMulti(BookmarkFields.UserID == userID);

                // delete all audit data
                AuditDataCoreCollection auditDataDeleter = new AuditDataCoreCollection();
                // first fetch it, then delete all entities from the collection, as the audit data is in an inheritance hierarchy of TargetPerEntity which can't
                // be deleted directly from the db.
                trans.Add(auditDataDeleter);
                auditDataDeleter.GetMulti(AuditDataCoreFields.UserID == userID);
                auditDataDeleter.DeleteMulti();

                // set IP bans set by this user to userid 0
                IPBanEntity ipbanUpdater = new IPBanEntity();
                ipbanUpdater.IPBanSetByUserID = 0;
                IPBanCollection ipBans = new IPBanCollection();
                trans.Add(ipBans);
                ipBans.UpdateMulti(ipbanUpdater, (IPBanFields.IPBanSetByUserID == userID));

                // delete threadsubscriptions
                ThreadSubscriptionCollection threadSubscriptionsDeleter = new ThreadSubscriptionCollection();
                trans.Add(threadSubscriptionsDeleter);
                threadSubscriptionsDeleter.DeleteMulti(ThreadSubscriptionFields.UserID == userID);

                // remove supportqueuethread claims
                SupportQueueThreadCollection supportQueueThreads = new SupportQueueThreadCollection();
                trans.Add(supportQueueThreads);
                supportQueueThreads.DeleteMulti(SupportQueueThreadFields.ClaimedByUserID == userID);

                // set all placed in queue references to userid 0, so the threads stay in the queues.
                SupportQueueThreadEntity supportQueueThreadUpdater = new SupportQueueThreadEntity();
                supportQueueThreadUpdater.PlacedInQueueByUserID = 0;
                supportQueueThreads.UpdateMulti(supportQueueThreadUpdater, (SupportQueueThreadFields.PlacedInQueueByUserID == userID));

                // now delete the actual user entity
                trans.Add(toDelete);
                toDelete.Delete();

                // all done
                trans.Commit();
                return(true);
            }
            catch
            {
                trans.Rollback();
                throw;
            }
            finally
            {
                trans.Dispose();
            }
        }
Example #25
0
 public async Task <MessageEntity> UpdateAsync(MessageEntity message)
 {
     return(await _messages.FindOneAndReplaceAsync <MessageEntity>(x => x.Id == message.Id, message, DefaultFindAndReplaceOption));
 }
Example #26
0
 public int Create(MessageEntity messageEntity)
 {
     return(Execute(@"insert into messages(content, sender_id, recipient_id) 
                      values(:content,:sender_id,:recipient_id)", messageEntity));
 }
Example #27
0
        public static void ClassInitialize(TestContext context)
        {
            #region _privateChat

            _privateChat = new Chat
            {
                Id        = 170181775,
                FirstName = "Coffee",
                LastName  = "Jelly",
                Username  = "******",
                Type      = ChatType.Private
            };

            #endregion
            #region _groupChat

            _groupChat = new Chat
            {
                Id    = -200694086,
                Title = "testgrp",
                Type  = ChatType.Group,
                AllMembersAreAdministrators = true
            };

            #endregion
            #region _superGroupChat

            _superGroupChat = new Chat
            {
                Id    = -1001076966401,
                Title = "testgrp",
                Type  = ChatType.Supergroup,
            };

            #endregion
            #region _date
            _date = DateTimeOffset.FromUnixTimeSeconds(Convert.ToInt64(1490868721)).UtcDateTime;
            #endregion
            #region _user
            _user = new User
            {
                Id        = 170181775,
                FirstName = "Coffee",
                LastName  = "Jelly",
                Username  = "******"
            };
            #endregion
            #region _user1

            _user1 = new User
            {
                Id        = 208070915,
                FirstName = "testuser1",
                Username  = "******"
            };

            #endregion
            #region _user2

            _user2 = new User
            {
                Id        = 208070916,
                FirstName = "testuser2",
                Username  = "******"
            };

            #endregion
            #region _users

            _users = new List <User>
            {
                _user1,
                _user2
            };

            #endregion
            #region _urlEntity
            _urlEntity = new MessageEntity
            {
                Type   = MessageEntityType.Url,
                Offset = 0,
                Length = 24
            };
            #endregion
            #region _entities
            _entities = new List <MessageEntity>
            {
                _urlEntity,
            };
            #endregion
            #region _thumb
            _thumb = new PhotoSize
            {
                FileId   = "AAQCABOLx4ENAAT8_8aMR6FJKZeyAAIC",
                FileSize = 5056,
                Width    = 128,
                Height   = 128
            };
            #endregion
            #region _photoSize1
            _photoSize1 = new PhotoSize
            {
                FileId   = "AgADAgADvqcxG5h36EqtRLHi7G4IpthVtw0ABHZHxxRGwQQWJp4BAAEC",
                FileSize = 1104,
                Width    = 90,
                Height   = 66
            };
            #endregion
            #region _photoSize2
            _photoSize2 = new PhotoSize
            {
                FileId   = "AgADAgADvqcxG5h36EqtRLHi7G4IpthVtw0ABJcP22BBjoQSJ54BAAEC",
                FileSize = 8848,
                Width    = 270,
                Height   = 199
            };
            #endregion
            #region _photoSize3
            _photoSize3 = new PhotoSize
            {
                FileId   = "AgADAgADeKgxG4_EJAqofB1cykfvRrNJtw0ABAObNR5xowTDVqABAAEC",
                FileSize = 99685,
                Width    = 640,
                Height   = 640
            };
            #endregion
            #region _config
            _config = new ComparisonConfig
            {
                CompareChildren          = true,
                CompareFields            = false,
                CompareReadOnly          = true,
                ComparePrivateFields     = false,
                ComparePrivateProperties = false,
                CompareProperties        = true,
                MaxDifferences           = 50
            };
            #endregion
            #region _audio
            _audio = new Audio
            {
                Duration  = 195,
                MimeType  = "TestMimeType",
                Title     = "TestTitle",
                Performer = "TestPerformer",
                FileId    = "CQADAgADEgADmHfoSvnwZ3irGpuOAg",
                FileSize  = 3125626
            };
            #endregion
            #region _document

            _document = new Document
            {
                FileName = "Test.PDF",
                MimeType = "application/pdf",
                FileId   = "BQADAgADEwADmHfoSqJcnJwfHNTDAg",
                FileSize = 2972868
            };

            #endregion
            #region _sticker
            _sticker = new Sticker
            {
                Width    = 512,
                Height   = 512,
                Emoji    = "TestEmoji",
                Thumb    = _thumb,
                FileId   = "CAADAgADdQEAAsxUSQlymelYJqPjNwI",
                FileSize = 31896
            };
            #endregion
            #region _photo

            _photo = new List <PhotoSize>
            {
                _photoSize1,
                _photoSize2
            };

            #endregion
            #region _video

            _video = new Video
            {
                Duration = 7,
                Width    = 1280,
                Height   = 720,
                Thumb    = _thumb,
                FileId   = "BAADAgADFwADmHfoSinMsvYz1GJpAg",
                FileSize = 827579
            };

            #endregion
            #region _voice

            _voice = new Voice
            {
                Duration = 3,
                MimeType = "audio/ogg",
                FileId   = "AwADAgADFQADmHfoSt8RIvvK5Z47Ag",
                FileSize = 18020
            };

            #endregion
            #region _contact

            _contact = new Contact
            {
                PhoneNumber = "777777",
                FirstName   = "tiny",
                LastName    = "beast",
                UserId      = 220793091
            };

            #endregion
            #region _location
            _location = new Location
            {
                Latitude  = 53.901112F,
                Longitude = 27.562325F
            };
            #endregion
            #region _newChatPhoto

            _newChatPhoto = new List <PhotoSize>
            {
                _photoSize1,
                _photoSize2,
                _photoSize3
            };

            #endregion
            #region _replyTo

            _replyTo = new VoiceMessage
            {
                From  = _user,
                Voice = _voice
            };
            AttachGeneralProperties(_replyTo);

            #endregion
            #region _pinnedMessage

            _pinnedMessage = new TextMessage
            {
                From = _user,
                Text = "testpinned"
            };
            AttachGeneralProperties3(_pinnedMessage);

            #endregion
            #region _videoNote

            _videoNote = new VideoNote
            {
                //Duration = 7,
                //Length =
                //Thumb = _thumb,
                //FileId = "BAADAgADFwADmHfoSinMsvYz1GJpAg",
                //FileSize = 827579
            };

            #endregion
        }
Example #28
0
        public ActionResult Edit(long messageId, ComposeMessage model)
        {
            var message = new MessageEntity(messageId);

            if (message.IsNew)
            {
                throw new HttpException(404, SharedRes.Error.NotFound_Message);
            }

            if (ModelState.IsValid)
            {
                var transaction = new Transaction(IsolationLevel.ReadCommitted, "edit message");
                try
                {
                    // if the device list has missing devices create a new message and remove the intersecting devices from the old message
                    // only if the message has been delivered, otherwise remove the device message normally below
                    if (message.DeviceMessages.Where(x => x.DeliveryTime != null).Select(x => x.Device).Except(model.Tos).Any())
                    {
                        // remove the devices from the old message that are included in the new model
                        foreach (var device in message.DeviceMessages.Select(x => x.Device).Intersect(model.Tos))
                        {
                            var deviceMessage = new DeviceMessageEntity(device.DeviceId, message.MessageId);
                            transaction.Add(deviceMessage);
                            deviceMessage.Delete();
                        }

                        // create a new message for the model leaving the old message Already Delivered
                        message = new MessageEntity
                        {
                            MessageType = model.Type,
                            Title       = model.Title,
                            Body        = model.Body,
                            CreateTime  = DateTime.UtcNow,
                            StartTime   = model.StartTime.ToUniversalTime(),
                            EndTime     =
                                model.EndTime.HasValue
                                                         ? model.EndTime.Value.ToUniversalTime()
                                                         : new DateTime?()
                        };
                        transaction.Add(message);
                    }
                    else
                    {
                        // devices are only added to the message, none removed, so update the existing message
                        message.MessageType = model.Type;
                        message.Title       = model.Title;
                        message.Body        = model.Body;
                        message.CreateTime  = DateTime.UtcNow;
                        message.StartTime   = model.StartTime.ToUniversalTime();
                        message.EndTime     =
                            model.EndTime.HasValue
                                ? model.EndTime.Value.ToUniversalTime()
                                : new DateTime?();
                        transaction.Add(message);
                    }
                    message.Save();

                    // remove any removed device IDs,
                    //  if messages have already been delivered a new message will be created above and nothing more will be done here
                    foreach (var device in message.DeviceMessages.Select(x => x.Device).Except(model.Tos))
                    {
                        var deviceMessage = new DeviceMessageEntity(device.DeviceId, message.MessageId);
                        transaction.Add(deviceMessage);
                        deviceMessage.Delete();
                    }

                    // add the devicemessage entities for all the tos
                    foreach (var device in model.Tos)
                    {
                        var dm = new DeviceMessageEntity(device.DeviceId, message.MessageId)
                        {
                            DeviceId  = device.DeviceId,
                            MessageId = message.MessageId
                        };
                        transaction.Add(dm);
                        dm.Save();
                    }

                    transaction.Commit();
                    return(new EmptyResult());
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw new HttpException(417, Message.AddError);
                }
                finally
                {
                    transaction.Dispose();
                }
            }

            Response.StatusCode             = 417;
            Response.TrySkipIisCustomErrors = true;

            return(PartialView(model));
        }
Example #29
0
 public void Add(MessageEntity entity)
 {
     Context.Message.Add(entity);
 }
Example #30
0
 public async Task UpdateStarboardColumn(MessageEntity message)
 {
     ModixContext.Messages.Update(message);
     await ModixContext.SaveChangesAsync();
 }
        private void ucShipmentInfoPopup_Load(object sender, EventArgs e)
        {
            try
            {
                _pMessageEntity = new MessageEntity();
                DataTable dtMessage = new MessageBusiness().MessageValue_Info(_pLANGUAGE_TYPE);
                if (dtMessage != null)
                {
                    _pMessageEntity.MSG_SEARCH           = dtMessage.Rows[0]["MSG_SEARCH"].ToString();
                    _pMessageEntity.MSG_SEARCH_EMPT      = dtMessage.Rows[0]["MSG_SEARCH_EMPT"].ToString();
                    _pMessageEntity.MSG_SAVE_QUESTION    = dtMessage.Rows[0]["MSG_SAVE_QUESTION"].ToString();
                    _pMessageEntity.MSG_SAVE             = dtMessage.Rows[0]["MSG_SAVE"].ToString();
                    _pMessageEntity.MSG_SAVE_ERROR       = dtMessage.Rows[0]["MSG_SAVE_ERROR"].ToString();
                    _pMessageEntity.MSG_DELETE_QUESTION  = dtMessage.Rows[0]["MSG_DELETE_QUESTION"].ToString();
                    _pMessageEntity.MSG_DELETE           = dtMessage.Rows[0]["MSG_DELETE"].ToString();
                    _pMessageEntity.MSG_DELETE_ERROR     = dtMessage.Rows[0]["MSG_DELETE_ERROR"].ToString();
                    _pMessageEntity.MSG_DELETE_COMPLETE  = dtMessage.Rows[0]["MSG_DELETE_COMPLETE"].ToString();
                    _pMessageEntity.MSG_INPUT_DATA       = dtMessage.Rows[0]["MSG_INPUT_DATA"].ToString();
                    _pMessageEntity.MSG_INPUT_DATA_ERROR = dtMessage.Rows[0]["MSG_INPUT_DATA_ERROR"].ToString();
                    _pMessageEntity.MSG_WORKING          = dtMessage.Rows[0]["MSG_WORKING"].ToString();
                    _pMessageEntity.MSG_RESET_QUESTION   = dtMessage.Rows[0]["MSG_RESET_QUESTION"].ToString();
                    _pMessageEntity.MSG_EXIT_QUESTION    = dtMessage.Rows[0]["MSG_EXIT_QUESTION"].ToString();
                    _pMessageEntity.MSG_SELECT           = dtMessage.Rows[0]["MSG_SELECT"].ToString();

                    //추가
                    _pMessageEntity.MSG_PLZ_CONNECT_FTP           = dtMessage.Rows[0]["MSG_PLZ_CONNECT_FTP"].ToString();
                    _pMessageEntity.MSG_AGAIN_INPUT_DATA          = dtMessage.Rows[0]["MSG_AGAIN_INPUT_DATA"].ToString();
                    _pMessageEntity.MSG_DOWNLOAD_COMPLETE         = dtMessage.Rows[0]["MSG_DOWNLOAD_COMPLETE"].ToString();
                    _pMessageEntity.MSG_SEARCH_EMPT_DETAIL        = dtMessage.Rows[0]["MSG_SEARCH_EMPT_DETAIL"].ToString();
                    _pMessageEntity.MSG_SPLITQTY_LARGE_MORE       = dtMessage.Rows[0]["MSG_SPLITQTY_LARGE_MORE"].ToString();
                    _pMessageEntity.MSG_DELETE_ERROR_NO_DATA      = dtMessage.Rows[0]["MSG_DELETE_ERROR_NO_DATA"].ToString();
                    _pMessageEntity.MSG_ORDERQTY_LARGE_THAN_0     = dtMessage.Rows[0]["MSG_ORDERQTY_LARGE_THAN_0"].ToString();
                    _pMessageEntity.MSG_PLAN_LARGE_THAN_ORDER     = dtMessage.Rows[0]["MSG_PLAN_LARGE_THAN_ORDER"].ToString();
                    _pMessageEntity.MSG_DELETE_ERROR_CONNECT_FTP  = dtMessage.Rows[0]["MSG_DELETE_ERROR_CONNECT_FTP"].ToString();
                    _pMessageEntity.MSG_INPUT_LESS_THAN_NOTOUTQTY = dtMessage.Rows[0]["MSG_INPUT_LESS_THAN_NOTOUTQTY"].ToString();
                    _pMessageEntity.MSG_LOAD_DATA                    = dtMessage.Rows[0]["MSG_LOAD_DATA"].ToString();
                    _pMessageEntity.MSG_NEW_REG_GUBN                 = dtMessage.Rows[0]["MSG_NEW_REG_GUBN"].ToString();
                    _pMessageEntity.MSG_INPUT_NUMERIC                = dtMessage.Rows[0]["MSG_INPUT_NUMERIC"].ToString();
                    _pMessageEntity.MSG_NO_SELETED_ITEM              = dtMessage.Rows[0]["MSG_NO_SELETED_ITEM"].ToString();
                    _pMessageEntity.MSG_EXIST_COMPANY_ID             = dtMessage.Rows[0]["MSG_EXIST_COMPANY_ID"].ToString();
                    _pMessageEntity.MSG_NOT_DELETE_DATA_IN           = dtMessage.Rows[0]["MSG_NOT_DELETE_DATA_IN"].ToString();
                    _pMessageEntity.MSG_NOT_MODIFY_DATA_IN           = dtMessage.Rows[0]["MSG_NOT_MODIFY_DATA_IN"].ToString();
                    _pMessageEntity.MSG_SELECT_NEWREG_SAVE           = dtMessage.Rows[0]["MSG_SELECT_NEWREG_SAVE"].ToString();
                    _pMessageEntity.MSG_INPUT_LARGER_THAN_0          = dtMessage.Rows[0]["MSG_INPUT_LARGER_THAN_0"].ToString();
                    _pMessageEntity.MSG_NOT_DELETE_DATA_OUT          = dtMessage.Rows[0]["MSG_NOT_DELETE_DATA_OUT"].ToString();
                    _pMessageEntity.MSG_NOT_MODIFY_DATA_OUT          = dtMessage.Rows[0]["MSG_NOT_MODIFY_DATA_OUT"].ToString();
                    _pMessageEntity.MSG_CANCLE_NEWREG_MODIFY         = dtMessage.Rows[0]["MSG_CANCLE_NEWREG_MODIFY"].ToString();
                    _pMessageEntity.MSG_NO_SELETED_ITEM_OR_NO_SAVE   = dtMessage.Rows[0]["MSG_NO_SELETED_ITEM_OR_NO_SAVE"].ToString();
                    _pMessageEntity.MSG_NO_INPUT_LAGER_THAN_NOTINQTY = dtMessage.Rows[0]["MSG_NO_INPUT_LAGER_THAN_NOTINQTY"].ToString();
                    _pMessageEntity.MSG_REG_DATA                 = dtMessage.Rows[0]["MSG_REG_DATA"].ToString();
                    _pMessageEntity.MSG_ADD_FAVORITE_ITEM        = dtMessage.Rows[0]["MSG_ADD_FAVORITE_ITEM"].ToString();
                    _pMessageEntity.MSG_CHECK_SEARCH_DATE        = dtMessage.Rows[0]["MSG_CHECK_SEARCH_DATE"].ToString();
                    _pMessageEntity.MSG_NOT_DISPLAY_ERROR        = dtMessage.Rows[0]["MSG_NOT_DISPLAY_ERROR"].ToString();
                    _pMessageEntity.MSG_NO_EXIST_INPUT_DATA      = dtMessage.Rows[0]["MSG_NO_EXIST_INPUT_DATA"].ToString();
                    _pMessageEntity.MSG_NOT_DISPLAY_NOT_SAVE     = dtMessage.Rows[0]["MSG_NOT_DISPLAY_NOT_SAVE"].ToString();
                    _pMessageEntity.MSG_CHECK_VALID_ITEM         = dtMessage.Rows[0]["MSG_CHECK_VALID_ITEM"].ToString();
                    _pMessageEntity.MSG_DELETE_FAVORITE_ITEM     = dtMessage.Rows[0]["MSG_DELETE_FAVORITE_ITEM"].ToString();
                    _pMessageEntity.MSG_NOT_EXIST_PRINTING_EXCEL = dtMessage.Rows[0]["MSG_NOT_EXIST_PRINTING_EXCEL"].ToString();
                    _pMessageEntity.MSG_SELECT_DOWNLOAD_TEMPLETE = dtMessage.Rows[0]["MSG_SELECT_DOWNLOAD_TEMPLETE"].ToString();
                    _pMessageEntity.MSG_RESET_COMPLETE           = dtMessage.Rows[0]["MSG_RESET_COMPLETE"].ToString();
                }

                InitializeSetting();



                MainFind_DisplayData();
            }
            catch (ExceptionManager pExceptionManager)
            {
                CoFAS_DevExpressManager.ShowErrorMessage(string.Format("{0}\n{1}", pExceptionManager.Exception.Message.ToString(), pExceptionManager.TargetSite.ToString()));
            }
            finally
            {
                DevExpress.Utils.AppearanceObject.DefaultFont = fntPARENT_FONT;//화면에 모든 항목 폰트 재설정
            }
        }
Example #32
0
        public async Task CreateAsync(MessageEntity message)
        {
            await ModixContext.Messages.AddAsync(message);

            await ModixContext.SaveChangesAsync();
        }
Example #33
0
 /// <summary>
 /// 接收数据
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="me"></param>
 private void Ci_ReceiveData(object sender, MessageEntity me)
 {
     callback.Read(sender as ClientSocketInstance, me);
 }
Example #34
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            int threadID = HnDGeneralUtils.TryConvertToInt(Request.QueryString["ThreadID"]);

            _deleteMessageID = HnDGeneralUtils.TryConvertToInt(Request.QueryString["MessageID"]);

            _thread = ThreadGuiHelper.GetThread(threadID);
            if (_thread == null)

            {
                // not found, return to default page
                Response.Redirect("default.aspx", true);
            }

            // Check if the current user is allowed to delete the message. If not, don't continue.
            _userMayDeleteMessages = SessionAdapter.CanPerformForumActionRight(_thread.ForumID, ActionRights.EditDeleteOtherUsersMessages);
            if (!_userMayDeleteMessages)
            {
                // is not allowed to delete the message
                Response.Redirect("Messages.aspx?ThreadID=" + threadID, true);
            }

            // check if the user can view this thread. If not, don't continue.
            if ((_thread.StartedByUserID != SessionAdapter.GetUserID()) &&
                !SessionAdapter.CanPerformForumActionRight(_thread.ForumID, ActionRights.ViewNormalThreadsStartedByOthers) &&
                !_thread.IsSticky)
            {
                // can't view this thread, it isn't visible to the user
                Response.Redirect("default.aspx", true);
            }

            // check if the message is the first message in the thread. If so, delete isn't allowed.
            if (ThreadGuiHelper.CheckIfMessageIsFirstInThread(threadID, _deleteMessageID))
            {
                // is first in thread, don't proceed. Caller has fabricated the url manually.
                Response.Redirect("default.aspx", true);
            }

            // Get the message
            MessageEntity message = MessageGuiHelper.GetMessage(_deleteMessageID);

            // User may delete current message.
            if (!Page.IsPostBack)
            {
                if (message != null)
                {
                    // message is found.
                    ForumEntity forum = CacheManager.GetForum(_thread.ForumID);
                    if (forum == null)
                    {
                        // Orphaned thread
                        Response.Redirect("default.aspx", true);
                    }
                    lblForumName_Header.Text = forum.ForumName;
                    lblMessageBody.Text      = message.MessageTextAsHTML;
                    lblPostingDate.Text      = message.PostingDate.ToString(@"dd-MMM-yyyy HH:mm:ss");
                }
                else
                {
                    btnYes.Visible = false;
                }
            }
        }
Example #35
0
 /// <summary>
 /// 握手成功手的连接
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="me"></param>
 private void Ci_NewUserConnection(object sender, MessageEntity me)
 {
     ClientSocketInstance ci = sender as ClientSocketInstance;
     BroadcastMessage += new BroadcastEvent(ci.SendMessage);
     callback.NewUserConnectionJoin(ci, me);
 }
Example #36
0
 public Task Send(string user, MessageEntity message)
 {
     return(Clients.User(user).Send(message));
 }
Example #37
0
        /// <summary>
        /// 工厂方法
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="acDomain"></param>
        /// <param name="command"></param>
        /// <returns></returns>
        public static MessageTr Create(IAcDomain acDomain, MessageEntity command)
        {
            var t = new MessageTr(acDomain);
            t.Populate(command);

            return t;
        }
Example #38
0
 public Task SendAll(MessageEntity message)
 {
     return(Clients.All.SendAll(message));
 }
Example #39
0
 /// <summary>
 /// 根据传入的命令对象组装命令展示对象
 /// </summary>
 /// <param name="command"></param>
 private void Populate(MessageEntity command)
 {
     this._command = command;
     this.Id = command.Id;
     this.MessageId = command.MessageId;
     this.MessageType = command.MessageType.ToName();
     this.Verb = command.Verb.Code;
     this.InfoFormat = command.DataTuple.InfoFormat;
     this.InfoValue = command.DataTuple.ValueItems.InfoString;
     this.Ontology = command.Ontology;
     this.CatalogCode = command.CatalogCode;
     this.InfoId = command.DataTuple.IdItems.InfoString;
     this.LocalEntityId = command.LocalEntityId;
     this.ClientType = command.ClientType.ToName();
     this.ClientId = command.ClientId;
     this.ReceivedOn = command.ReceivedOn;
     this.TimeStamp = command.TimeStamp;
     this.CreateOn = command.CreateOn;
     this.UserName = command.UserName;
     this.StateCode = command.Status;
     this.ReasonPhrase = command.ReasonPhrase;
     this.Description = command.Description;
     this.Principal = command.UserName;
     this.EventSubjectCode = command.EventSubjectCode;
     this.EventSourceType = command.EventSourceType;
     this.PopulateCore(command);
 }
Example #40
0
        public override void CreateMessage(MessageContext context, string sagaid, SagaEntity sagaentity, MessageEntity messageentity)
        {
            try
            {
                var serializer = _factory.Create <IMessageSerializer>(_configuration.MessageSerializerType);

                var tablenamesufix = GetTableNameSufix(sagaid);

                var table = GetCloudTable(_connectionstring, $"{_messagestorgename}{tablenamesufix}");

                var record = new MessageRecord(sagaentity.Key, $"{messageentity.Name}_{Guid.NewGuid()}")
                {
                    Content     = messageentity.Content,
                    ContentType = messageentity.ContentType,
                    Identity    = serializer.Serialize(messageentity.Identity),
                    Version     = messageentity.Version,
                    RetryCount  = messageentity.RetryCount,
                    LastRetry   = messageentity.LastRetry,
                    Origin      = serializer.Serialize(messageentity.Origin),
                    Saga        = serializer.Serialize(messageentity.Saga),
                    Headers     = serializer.Serialize(messageentity.Headers),
                    Tracks      = serializer.Serialize(messageentity.Tracks),
                    DateTimeUtc = messageentity.DateTimeUtc,
                    Data        = messageentity.Data,
                    Name        = messageentity.Name,
                    ContentId   = messageentity.ContentId,
                };

                var size = Encoding.UTF8.GetByteCount(record.Content);

                if (size >= 64000)
                {
                    record.Content = LimitByteLength(record.Content, 63000) + "...";
                }

                var result = table.ExecuteAsync(TableOperation.Insert(record)).GetAwaiter().GetResult();
            }
            catch (StorageException s)
            {
                throw new ApplicationException($"Error during the message record creation for saga {context.Saga.Name} with content {context.ContentType.FullName} and route {context.Route.Name}, status code: {s.RequestInformation?.HttpStatusCode} error code: {s.RequestInformation?.ExtendedErrorInformation?.ErrorCode} error message: {s.RequestInformation?.ExtendedErrorInformation?.ErrorMessage}", s);
            }
            catch (Exception ex)
            {
                throw new ApplicationException($"Error during the message record creation for saga {context.Saga.Name} with content {context.ContentType.FullName} and route {context.Route.Name}", ex);
            }
        }