コード例 #1
0
    private void LoadData()
    {
        txtTmplCode.Text  = WebUtil.Param("tmplCode");
        hidTmplCode.Value = WebUtil.Param("tmplCode");

        string tmplCode = Cast.String(WebUtil.Param("tmplCode"));

        MsgTemplate msgTemplate = null;

        msgTemplate = MsgTemplate.Retrieve(_session, tmplCode);

        if (msgTemplate != null)
        {
            txtName.Text                   = msgTemplate.Name;
            ddlMsgType.SelectedValue       = msgTemplate.MsgTypeId.ToString();
            rdlAccessibility.SelectedValue = msgTemplate.Accessibility.ToString();
            txtExpires.Text                = msgTemplate.Expires.ToString();
            txtSource.Text                 = msgTemplate.Source;
            txtViewEntry.Text              = msgTemplate.ViewEntry;
            txtTitleFormat.Value           = msgTemplate.TitleFormat;
            txtContentFormat.Value         = msgTemplate.ContentFormat;
            txtNavId.Value                 = msgTemplate.NavId.ToString();
            //Navigator nav = Navigator.Retrieve(_session, msgTemplate.NavId);
            //if (nav != null)
            //    txtNavName.Text = nav.Name;

            txtResponseEntry.Text = msgTemplate.ResponseEntry;
        }
        txtTmplCode.ReadOnly = true;
    }
コード例 #2
0
        /// <summary>
        /// 新增MsgTemplateUser信息
        /// </summary>
        public static void InsertMsgTemplateUser(MsgTemplate entity)
        {
            DataCommand cmd = new DataCommand("InsertMsgTemplateUser");

            cmd.SetParameter <MsgTemplate>(entity);
            cmd.ExecuteNonQuery();
        }
コード例 #3
0
        public JsonResult Maintain(MsgTemplate info)
        {
            AjaxResult result = new AjaxResult();

            //info.CompanySysNo = CurrUser.CompanySysNo;
            if (info.SysNo > 0)//update
            {
                info.EditUserSysNo = CurrUser.UserSysNo;
                info.EditUserName  = CurrUser.UserDisplayName;
                MsgTemplateRPCService.UpdateMsgTemplate(info, CurrUser);
                //Rpc.Call<dynamic>("RPCService.MsgTemplateRPCService.UpdateMsgTemplate", info, CurrUser);
                result = new AjaxResult
                {
                    Success = true,
                    Message = "修改成功!"
                };
                return(Json(result));
            }
            //insert
            info.EditUserSysNo = CurrUser.UserSysNo;
            info.EditUserName  = CurrUser.UserDisplayName;
            int r = MsgTemplateRPCService.InsertMsgTemplate(info, CurrUser);

            //int r = Rpc.Call<int>("RPCService.MsgTemplateRPCService.InsertMsgTemplate", info, CurrUser);
            result = new AjaxResult
            {
                Success = true,
                Message = "添加成功!",
                Code    = r
            };
            return(Json(result));
        }
コード例 #4
0
    //Save Data
    private void SaveData()
    {
        MsgTemplate msgTemplate = new  MsgTemplate();
        bool        flag        = true;

        try
        {
            msgTemplate.Name          = Cast.String(txtName.Text.Trim());
            msgTemplate.MsgTypeId     = Cast.Int(ddlMsgType.SelectedValue.Trim());
            msgTemplate.Accessibility = Cast.Enum <MessageAccessibility>(rdlAccessibility.SelectedValue);
            msgTemplate.Expires       = Cast.Int(txtExpires.Text.Trim());
            msgTemplate.Source        = Cast.String(txtSource.Text.Trim());
            msgTemplate.ViewEntry     = Cast.String(txtViewEntry.Text.Trim());
            msgTemplate.TitleFormat   = Cast.String(txtTitleFormat.Value.Trim());
            msgTemplate.ContentFormat = Cast.String(txtContentFormat.Value.Trim());
            msgTemplate.NavId         = Cast.Int(txtNavId.Value.Trim());
            msgTemplate.ResponseEntry = Cast.String(txtResponseEntry.Text.Trim());
            msgTemplate.ModifyBy      = SecuritySession.CurrentUser.UserId;
            msgTemplate.ModifyTime    = DateTime.Now;
            msgTemplate.TmplCode      = this.txtTmplCode.Text.Trim();
            using (_session = new Session())
            {
                if (IsAddNew())
                {
                    msgTemplate.CreateBy   = msgTemplate.ModifyBy;
                    msgTemplate.CreateTime = msgTemplate.ModifyTime;
                    flag = msgTemplate.Create(_session);
                }
                else
                {
                    flag = msgTemplate.Update(_session, "Name", "MsgType", "Accessibility", "Expires", "Source", "ViewEntry", "TitleFormat", "ContentFormat", "NavId", "ResponseEntry");
                }
            }
            this.hidTmplCode.Value    = msgTemplate.TmplCode.Trim();
            this.txtTmplCode.Text     = msgTemplate.TmplCode.Trim();
            this.txtTmplCode.ReadOnly = true;
            if (flag)
            {
                WebUtil.ShowMsg(this, "操作成功", "提示");
            }
            else
            {
                WebUtil.ShowMsg(this, "操作失败", "提示");
            }
        }
        catch (UnauthorizedException ex)
        {
            WebUtil.ShowMsg(this, ex.Message, "警告");
        }
        catch (ApplicationException ex)
        {
            WebUtil.ShowMsg(this, ex.Message, "提示");
        }
        catch (Exception ex)
        {
            logger.Info("保存消息模板", ex);
            WebUtil.ShowMsg(this, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员");
        }
    }
コード例 #5
0
        public void Index(MsgTemplate MsgTemplate)
        {
            MsgTemplate baseMsgTemplate = Entity.MsgTemplate.FirstOrDefault(n => n.Id == MsgTemplate.Id);

            baseMsgTemplate = Request.ConvertRequestToModel <MsgTemplate>(baseMsgTemplate, MsgTemplate);
            Entity.SaveChanges();
            Response.Write("OK");
        }
コード例 #6
0
        internal static MsgTemplate LoadMsgTemplate(int sysNo)
        {
            DataCommand cmd = new DataCommand("LoadMsgTemplate");

            cmd.SetParameter("@SysNo", DbType.Int32, sysNo);
            MsgTemplate result = cmd.ExecuteEntity <MsgTemplate>();

            return(result);
        }
コード例 #7
0
        internal static int InsertMsgTemplate(MsgTemplate entity)
        {
            DataCommand cmd = new DataCommand("InsertMsgTemplate");

            cmd.SetParameter <MsgTemplate>(entity);
            int result = cmd.ExecuteScalar <int>();

            return(result);
        }
コード例 #8
0
        /// <summary>
        /// 更新MsgTemplate信息
        /// </summary>
        public static bool UpdateMsgTemplate(MsgTemplate entity)
        {
            DataCommand cmd = new DataCommand("UpdateMsgTemplate");

            cmd.SetParameter <MsgTemplate>(entity);
            int r = cmd.ExecuteNonQuery();

            return(r > 0 ? true : false);
        }
コード例 #9
0
        /// <summary>
        /// 修改MsgTemplateUser信息
        /// </summary>
        public static void UpdateMsgTemplateUser(MsgTemplate entity)
        {
            DataCommand cmd = new DataCommand("UpdateMsgTemplateUser");

            cmd.SetParameter("@MsgTemplateSysNo", DbType.Int32, entity.SysNo);
            cmd.SetParameter("@UserSysNo", DbType.Int32, entity.EditUserSysNo);
            cmd.SetParameter("@EditUserSysNo", DbType.Int32, entity.EditUserSysNo);
            cmd.SetParameter("@EditUserName", DbType.String, entity.EditUserName);
            cmd.SetParameter("@Enabled", DbType.Boolean, entity.Enabled);
            cmd.ExecuteNonQuery();
        }
コード例 #10
0
        public JsonResult SaveMsgTemplateUser(int sysNo)
        {
            MsgTemplate entity = new MsgTemplate();

            entity.SysNo         = sysNo;
            entity.EditUserSysNo = CurrUser.UserSysNo;
            entity.EditUserName  = CurrUser.UserDisplayName;
            entity.Enabled       = true;
            MsgTemplateRPCService.SaveMsgTemplateUser(entity, CurrUser);
            // Rpc.Call<int>("RPCService.MsgTemplateRPCService.SaveMsgTemplateUser", entity, CurrUser);
            return(Json(new AjaxResult {
                Success = true, Message = "保存成功!"
            }, JsonRequestBehavior.AllowGet));
        }
コード例 #11
0
        /// <summary>
        /// 更新MsgTemplate信息
        /// </summary>
        public bool UpdateMsgTemplate(MsgTemplate entity, CurrentUser user)
        {
            //return MsgTemplateProcessor.UpdateMsgTemplate(entity,user);
            CheckMsgTemplate(entity, false);
            bool result = false;

            using (ITransaction transaction = TransactionManager.Create())
            {
                result = MessageCenter.Server.SMSBusinessServer.UpdateMsgTemplate(entity);
                //记录操作日志
                //OperationLogProcessor.WriteLog(BizObjectType.MsgTemplate, BizOperationType.Update, entity.SysNo.ToString(), user, LangHelper.GetText("修改消息模板"), entity);
                transaction.Complete();
            }
            return(result);
        }
コード例 #12
0
        public static bool IsExistMsgTemplate(string actionCode, int msgType, int companySysNo)
        {
            DataCommand cmd = new DataCommand("IsExistMsgTemplate");

            cmd.SetParameter("@MsgType", DbType.Int32, msgType);
            cmd.SetParameter("@ActionCode", DbType.String, cmd.SetSafeParameter(actionCode));
            cmd.SetParameter("@CompanySysNo", DbType.Int32, companySysNo);
            MsgTemplate result = cmd.ExecuteEntity <MsgTemplate>();

            if (result != null)
            {
                return(true);
            }
            return(false);
        }
コード例 #13
0
        public OpResult CreateMsgTemplate(MsgTemplate msgTemp)
        {
            OpResult result = new OpResult();

            result.Successed = false;
            try
            {
                context.MsgTemplates.Add(msgTemp);
            }
            catch
            {
                result.Message = "添加失败";
            }

            return(result);
        }
コード例 #14
0
 /// <summary>
 /// 检查MsgTemplate信息
 /// </summary>
 private static void CheckMsgTemplate(MsgTemplate entity, bool isCreate)
 {
     if (!isCreate && entity.SysNo == 0)
     {
         throw new BusinessException(LangHelper.GetText("请传入数据主键!"));
     }
     if (entity.CompanySysNo < 0)
     {
         throw new BusinessException(LangHelper.GetText("公司id错误!"));
     }
     if (!string.IsNullOrWhiteSpace(entity.TemplateContent))
     {
         if (entity.TemplateContent.Length > 1000)
         {
             throw new BusinessException(LangHelper.GetText("模板内容长度不能超过1000!"));
         }
     }
 }
コード例 #15
0
        public void SaveMsgTemplateUser(MsgTemplate entity, CurrentUser user)
        {
            //检查是否存在
            MsgTemplateUser msgTemplateUser = MessageCenter.Server.SMSBusinessServer.MsgTemplateUserIsExist(entity.SysNo, user.UserSysNo);

            if (msgTemplateUser.SysNo > 0)
            {
                if (msgTemplateUser.Enabled == false)
                {
                    entity.Enabled = true;
                    MessageCenter.Server.SMSBusinessServer.UpdateMsgTemplateUser(entity);
                }
                else
                {
                    entity.Enabled = false;
                    MessageCenter.Server.SMSBusinessServer.UpdateMsgTemplateUser(entity);
                }
            }
            else
            {
                MessageCenter.Server.SMSBusinessServer.InsertMsgTemplateUser(entity);
            }
        }
コード例 #16
0
        /// <summary>
        /// 新增/编辑
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Mannager(int?id, int?companysysno)
        {
            MsgTemplate template = new MsgTemplate();

            template.LimitCount    = 1;
            template.SendFrequency = 60;
            CurrentUser currentUser = new CurrentUser();

            if (companysysno.HasValue && companysysno.Value == 0)
            {
                currentUser.MasterSysNo     = 0;
                ViewBag.MsgTenantActionList = MsgTenantActionRPCService.LoadMsgTenantActionList(currentUser);
                //ViewBag.MsgTenantActionList = Rpc.Call<List<SMSTemplate>>("RPCService.MsgTenantActionRPCService.LoadMsgTenantActionList", currentUser);
                ViewBag.companySysNo = companysysno;
            }
            if (id.HasValue && id.Value > 0)
            {
                template = MsgTemplateRPCService.LoadMsgTemplate(id.Value);
                //template = Rpc.Call<MsgTemplate>("RPCService.MsgTemplateRPCService.LoadMsgTemplate", id);
                ViewBag.MsgTemplateVarList = LoadMsgTemplate(template.ActionCode).SMSTemplateVariableList;
            }
            return(View(template));
        }
コード例 #17
0
        public int InsertMsgTemplate(MsgTemplate entity, CurrentUser user)
        {
            CheckMsgTemplate(entity, true);
            if (SMSBusinessServer.IsExistMsgTemplate(entity.ActionCode, (int)entity.MsgType, entity.CompanySysNo) == true)
            {
                throw new BusinessException(LangHelper.GetText("已存在当前选项的模板!"));
            }
            int sysNo = 0;

            using (ITransaction transaction = TransactionManager.Create())
            {
                var tep = new SMSTemplateRPCService().LoadMsgTemplate(entity.ActionCode);
                entity.ReceiverType = tep.MsgReceiverType;
                entity.TemplateName = tep.SMSTemplateName;
                //entity.CompanySysNo = DataContextHelper.CompanySysNo;

                sysNo = SMSBusinessServer.InsertMsgTemplate(entity);
                //记录操作日志
                //  OperationLogProcessor.WriteLog(BizObjectType.MsgTemplate, BizOperationType.Create, sysNo.ToString(), user, LangHelper.GetText("新增消息模板"), entity);
                transaction.Complete();
            }
            return(sysNo);
        }
コード例 #18
0
    private void LoadData()
    {
        try
        {
            string tmplCode = WebUtil.Param("tmplcode");
            if (string.IsNullOrEmpty(tmplCode))
            {
                throw new ApplicationException("没有传递消息模板的代码");
            }
            MsgTemplate tmpl = MsgTemplate.Retrieve(_session, tmplCode);
            if (tmpl == null)
            {
                throw new ApplicationException(string.Format("模板代码:{0}的消息模板为空", tmplCode));
            }

            this.txtTmplCode.Text    = tmpl.TmplCode.Trim();
            this.txtTmplName.Text    = tmpl.Name.Trim();
            this.txtMsgTypeId.Value  = tmpl.MsgTypeId.ToString();
            this.txtMsgTypeName.Text = MessageType.Retrieve(_session, tmpl.MsgTypeId).TypeName;

            QueryAndBindData(this.rptSubscribeGroup, this.magicPagerGroup, true, 1, this.magicPagerGroup.PageSize, true);
            QueryAndBindData(this.rptSubscribeUser, this.magicPagerUser, false, 1, this.magicPagerUser.PageSize, true);
        }
        catch (UnauthorizedException ex)
        {
            WebUtil.ShowMsg(this, ex.Message, "警告");
        }
        catch (ApplicationException ex)
        {
            WebUtil.ShowMsg(this, ex.Message, "提示");
        }
        catch (Exception ex)
        {
            logger.Info("查询MsgSubscriber", ex);
            WebUtil.ShowMsg(this, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员");
        }
    }
コード例 #19
0
    //MagicToolbar's MagicItem OnClick Event Handler, it's for both the top one and the bottom one.
    protected void MagicItemCommand(object sender, MagicItemEventArgs e)
    {
        try
        {
            if (e.CommandName == "Delete")
            {             // do delete
                using (ISession session = new Session())
                {
                    foreach (RepeaterItem item in this.rptMsgTemplate.Items)
                    {
                        HtmlInputCheckBox chk = item.FindControl("checkbox") as HtmlInputCheckBox;
                        if (chk != null && chk.Checked)
                        {
                            string tmplCode = Cast.String(chk.Attributes["tmplCode"]);

                            MsgTemplate.Delete(session, tmplCode);
                        }
                    }

                    QueryAndBindData(1, this.magicPagerMain.PageSize, true);
                }
            }
        }
        catch (UnauthorizedException ex)
        {
            WebUtil.ShowMsg(this, ex.Message, "警告");
        }
        catch (ApplicationException ex)
        {
            WebUtil.ShowMsg(this, ex.Message, "提示");
        }
        catch (Exception ex)
        {
            logger.Info("删除MsgTemplate", ex);
            WebUtil.ShowMsg(this, "发生未处理的异常,请刷新页面重新操作,或者联系系统管理员");
        }
    }
コード例 #20
0
 public MailTemplate(MsgTemplate template) : this()
 {
     htmlEditorControl1.InnerHtml = template.Content;
     textBoxSujet.Text            = template.Title;
 }
コード例 #21
0
 public static void InsertMsgTemplateUser(MsgTemplate entity)
 {
     MessageTemplateDA.InsertMsgTemplateUser(entity);
 }
コード例 #22
0
 /// <summary>
 /// 修改MsgTemplateUser信息
 /// </summary>
 public static void UpdateMsgTemplateUser(MsgTemplate entity)
 {
     MessageTemplateDA.UpdateMsgTemplateUser(entity);
 }
コード例 #23
0
 public static int InsertMsgTemplate(MsgTemplate entity)
 {
     return(MessageTemplateDA.InsertMsgTemplate(entity));
 }
コード例 #24
0
 public static bool UpdateMsgTemplate(MsgTemplate entity)
 {
     return(MessageTemplateDA.UpdateMsgTemplate(entity));
 }
コード例 #25
0
    internal async Task Acceptor(HttpContext context, Func <Task> next)
    {
        if (!context.WebSockets.IsWebSocketRequest)
        {
            return;
        }

        string token = context.Request.Query["token"];

        if (string.IsNullOrEmpty(token))
        {
            return;
        }
        var token_value = _redis.Get($"{_redisPrefix}Token{token}");

        if (string.IsNullOrEmpty(token_value))
        {
            throw new Exception("授权错误:用户需通过 ImHelper.PrevConnectServer 获得包含 token 的连接");
        }
        var data = JsonConvert.DeserializeObject <(string clientId, string clientMetaData)>(token_value);

        CancellationToken ct = context.RequestAborted;
        var socket           = await context.WebSockets.AcceptWebSocketAsync();

        var cli   = new ImServerClient(socket, data.clientId);
        var newid = Guid.NewGuid().ToString();

        var wslist = _clients.GetOrAdd(data.clientId, cliid => new ConcurrentDictionary <string, ImServerClient>());

        wslist.TryAdd(newid, cli);
        using (var pipe = _redis.StartPipe())
        {
            pipe.HIncrBy($"{_redisPrefix}Online", data.clientId.ToString(), 1);
            pipe.Publish($"evt_{_redisPrefix}Online", token_value);
            pipe.EndPipe();
        }

        var buffer = new byte[BufferSize];
        var seg    = new ArraySegment <byte>(buffer);

        try
        {
            while (socket.State == WebSocketState.Open && _clients.ContainsKey(data.clientId))
            {
                if (ct.IsCancellationRequested)
                {
                    break;
                }
                string response = await ReceiveStringAsync(socket, ct);

                if (string.IsNullOrEmpty(response))
                {
                    continue;
                }
                MsgTemplate msg = null;
                try
                {
                    msg = JsonConvert.DeserializeObject <MsgTemplate>(response);
                    ImServerClient currentSocket = wslist.Values.First(u => u.clientId == msg.clientId);
                    if (currentSocket == null)
                    {
                        continue;
                    }
                    if (msg.type == "ping")
                    {
                        if (msg.currentSence == 0)
                        {
                            await SendStringAsync(currentSocket.socket, JsonConvert.SerializeObject(msg), ct);
                        }
                        else if (msg.currentSence == 1)
                        {
                            await _redis.SetAsync($"KEY_IM_DOCITOR_CONNECTION_SESSION:{msg.clientId}", msg.connectionBatchCode, 3);
                        }
                    }
                }
                catch
                {
                }
            }
            socket.Abort();
            //await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", ct);
            //socket.Dispose();
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Socket异常:{ex.Message}");
        }
        wslist.TryRemove(newid, out var oldcli);
        if (wslist.Any() == false)
        {
            _clients.TryRemove(data.clientId, out var oldwslist);
        }
        _redis.Eval($"if redis.call('HINCRBY', KEYS[1], '{data.clientId}', '-1') <= 0 then redis.call('HDEL', KEYS[1], '{data.clientId}') end return 1", new[] { $"{_redisPrefix}Online" });
        LeaveChan(data.clientId, GetChanListByClientId(data.clientId));
        //_redis.Publish($"evt_{_redisPrefix}Offline", token_value);
    }
コード例 #26
0
        public async Task <IActionResult> SetContainerBG(Input_ContainerSet model, [FromServices] ContextString dbContext)
        {
            QianMuResult _Result = new QianMuResult();
            Stream       stream  = HttpContext.Request.Body;

            byte[] buffer = new byte[HttpContext.Request.ContentLength.Value];
            stream.Read(buffer, 0, buffer.Length);
            string inputStr = Encoding.UTF8.GetString(buffer);

            model = (Input_ContainerSet)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType());
            var uol = Method.GetLoginUserName(dbContext, this.HttpContext);

            if (string.IsNullOrEmpty(uol.UserName))
            {
                _Result.Code = "401";
                _Result.Msg  = "请登陆后再进行操作";
                _Result.Data = "";
                return(Json(_Result));
            }
            try
            {
                //检测用户登录情况
                //string username = Method.GetLoginUserName(dbContext, this.HttpContext);
                //if (string.IsNullOrEmpty(username))
                //{
                //    _Result.Code = "401";
                //    _Result.Msg = "请登陆后再进行操作";
                //    _Result.Data = "";
                //    return Json(_Result);
                //}
                var screenCount = await dbContext.ScreenInfo.Where(i => i.Code == model.ScreenCode).CountAsync();

                if (screenCount <= 0)
                {
                    _Result.Code = "510";
                    _Result.Msg  = "无效的分辨率编码:" + model.ScreenCode;
                    _Result.Data = "";
                    return(Json(_Result));
                }

                var files = await dbContext.AssetFiles.Where(i => i.Code == model.FileCode).FirstOrDefaultAsync();

                if (files == null)
                {
                    _Result.Code = "510";
                    _Result.Msg  = "无效的文件编码:" + model.FileCode;
                    _Result.Data = "";
                    return(Json(_Result));
                }

                var container = await dbContext.ContainerBG.Where(i => i.ScreenCode == model.ScreenCode).FirstOrDefaultAsync();

                if (container == null)
                {
                    container            = new ContainerBG();
                    container.AddTime    = DateTime.Now;
                    container.Code       = Guid.NewGuid().ToString();
                    container.FileCode   = model.FileCode;
                    container.ScreenCode = model.ScreenCode;
                    container.UpdateTime = DateTime.Now;
                    container.MallCode   = uol.MallCode;
                    dbContext.ContainerBG.Add(container);
                }
                else
                {
                    container.FileCode   = model.FileCode;
                    container.UpdateTime = DateTime.Now;
                    dbContext.ContainerBG.Update(container);
                }
                if (await dbContext.SaveChangesAsync() > 0)
                {
                    var deviceList = await dbContext.Device.Where(i => i.ScreenInfo == model.ScreenCode).ToListAsync();

                    if (deviceList.Count() > 0)
                    {
                        foreach (var item in deviceList)
                        {
                            MsgTemplate msg = new MsgTemplate();
                            msg.SenderID    = Method.ServerAddr;
                            msg.ReceiverID  = item.Code;
                            msg.MessageType = "json";
                            msg.Content     = new { Type = "BGSet", FilePath = Method.OSSServer + files.FilePath };
                            await Method.SendMsgAsync(msg);
                        }
                    }
                    _Result.Code = "200";
                    _Result.Msg  = "设置成功";
                    _Result.Data = "";
                }
                else
                {
                    _Result.Code = "501";
                    _Result.Msg  = "设置失败";
                    _Result.Data = "";
                }
                return(Json(_Result));
            }
            catch (Exception e)
            {
                _Result.Code = "500";
                _Result.Msg  = "" + e.ToString();
                _Result.Data = "";
                return(Json(_Result));
            }
        }
コード例 #27
0
        public async Task <IActionResult> Edit(Input_LiveEdit model, [FromServices] ContextString dbContext)
        {
            QianMuResult _Result = new QianMuResult();

            Stream stream = HttpContext.Request.Body;

            byte[] buffer = new byte[HttpContext.Request.ContentLength.Value];
            stream.Read(buffer, 0, buffer.Length);
            string inputStr = Encoding.UTF8.GetString(buffer);

            model = (Input_LiveEdit)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType());


            if (string.IsNullOrEmpty(model.Code))
            {
                _Result.Code = "510";
                _Result.Msg  = "请输入直播编码";
                _Result.Data = "";
                return(Json(_Result));
            }


            if (string.IsNullOrEmpty(model.Url))
            {
                _Result.Code = "510";
                _Result.Msg  = "直播路径不可为空";
                _Result.Data = "";
                return(Json(_Result));
            }

            if (string.IsNullOrEmpty(model.Name))
            {
                _Result.Code = "510";
                _Result.Msg  = "直播名称不可为空";
                _Result.Data = "";
                return(Json(_Result));
            }
            var live = dbContext.Live.Where(i => i.Code == model.Code).FirstOrDefault();

            if (live == null)
            {
                _Result.Code = "510";
                _Result.Msg  = "无效的直播编码";
                _Result.Data = "";
                return(Json(_Result));
            }

            if (live.Url != model.Url && live.BeingUsed)
            {
                var ldlist = await dbContext.LiveToDev.Where(i => !i.IsDel && i.LiveCode == model.Code).ToListAsync();

                foreach (var ld in ldlist)
                {
                    ld.IsDel      = true;
                    ld.UpdateTime = DateTime.Now;
                    dbContext.LiveToDev.Update(ld);


                    //发送删除通知到前端  取消删除任务的关联性
                    var dev = await dbContext.Device.Where(i => i.Code == ld.DevCode).FirstOrDefaultAsync();

                    MsgTemplate msg = new MsgTemplate();
                    msg.SenderID    = Method.ServerAddr;
                    msg.ReceiverID  = dev.Code;
                    msg.MessageType = "json";
                    msg.Content     = new { Type = "Live", Data = new { Command = "update", Code = ld.LiveCode, live.Url } };
                    await Method.SendMsgAsync(msg);
                }
            }



            live.Name       = model.Name;
            live.Url        = model.Url;
            live.UpdateTime = DateTime.Now;
            dbContext.Live.Update(live);



            if (await dbContext.SaveChangesAsync() > 0)
            {
                _Result.Code = "200";
                _Result.Msg  = "更新成功";
                _Result.Data = "";
            }
            else
            {
                _Result.Code = "2";
                _Result.Msg  = "更新失败";
                _Result.Data = "";
            }

            return(Json(_Result));
        }
コード例 #28
0
        public async Task <IActionResult> LiveCtr(Input_LiveCtr model, [FromServices] ContextString dbContext)
        {
            QianMuResult _Result = new QianMuResult();

            Stream stream = HttpContext.Request.Body;

            byte[] buffer = new byte[HttpContext.Request.ContentLength.Value];
            stream.Read(buffer, 0, buffer.Length);
            string inputStr = Encoding.UTF8.GetString(buffer);

            model = (Input_LiveCtr)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType());

            try
            {
                if (string.IsNullOrEmpty(model.Code))
                {
                    _Result.Code = "510";
                    _Result.Msg  = "请输入编码";
                    _Result.Data = "";
                    return(Json(_Result));
                }

                var live = await dbContext.Live.Where(i => !i.IsDel && i.Code == model.Code).AsNoTracking().FirstOrDefaultAsync();

                if (live == null)
                {
                    _Result.Code = "510";
                    _Result.Msg  = "无效的直播编码";
                    _Result.Data = "";
                    return(Json(_Result));
                }
                var ldlist = await dbContext.LiveToDev.Where(i => !i.IsDel).ToListAsync();

                switch (model.Command.ToLower())
                {
                case "start":
                    live.BeingUsed  = true;
                    live.UpdateTime = DateTime.Now;
                    dbContext.Live.Update(live);
                    foreach (var ld in ldlist)
                    {
                        //发送命令到机器
                        var device = await dbContext.Device.Where(i => i.Code == ld.DevCode).FirstOrDefaultAsync();

                        if (device != null)
                        {
                            MsgTemplate msg = new MsgTemplate();
                            msg.SenderID    = Method.ServerAddr;
                            msg.ReceiverID  = device.Code;
                            msg.MessageType = "json";
                            msg.Content     = new { Type = "Live", Data = new { Command = "start", Code = model.Code, live.Url } };
                            await Method.SendMsgAsync(msg);
                        }
                    }
                    if (await dbContext.SaveChangesAsync() > 0)
                    {
                        _Result.Code = "200";
                        _Result.Msg  = "设置成功";
                        _Result.Data = "";
                    }
                    break;

                case "cancel":
                    live.BeingUsed  = false;
                    live.UpdateTime = DateTime.Now;
                    dbContext.Live.Update(live);
                    foreach (var ld in ldlist)
                    {
                        //发送命令到机器
                        var device = await dbContext.Device.Where(i => i.Code == ld.DevCode).FirstOrDefaultAsync();

                        if (device != null)
                        {
                            MsgTemplate msg = new MsgTemplate();
                            msg.SenderID    = Method.ServerAddr;
                            msg.ReceiverID  = device.Code;
                            msg.MessageType = "json";
                            msg.Content     = new { Type = "Live", Data = new { Command = "cancel", Code = model.Code, live.Url } };
                            await Method.SendMsgAsync(msg);
                        }
                    }
                    if (await dbContext.SaveChangesAsync() > 0)
                    {
                        _Result.Code = "200";
                        _Result.Msg  = "设置成功";
                        _Result.Data = "";
                    }
                    break;

                default:
                    _Result.Code = "510";
                    _Result.Msg  = "无效的命令:" + model.Command;
                    _Result.Data = "";
                    break;
                }
            }
            catch (Exception e)
            {
                _Result.Code = "500";
                _Result.Msg  = e.ToString();
                _Result.Data = "";
                throw;
            }



            return(Json(_Result));
        }
コード例 #29
0
        public async Task <IActionResult> SetScreensaver(Input_Screensaver model, [FromServices] ContextString dbContext)
        {
            QianMuResult _Result = new QianMuResult();

            Stream stream = HttpContext.Request.Body;

            byte[] buffer = new byte[HttpContext.Request.ContentLength.Value];
            stream.Read(buffer, 0, buffer.Length);
            string inputStr = Encoding.UTF8.GetString(buffer);

            model = (Input_Screensaver)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType());
            var uol = Method.GetLoginUserName(dbContext, this.HttpContext);

            if (string.IsNullOrEmpty(uol.UserName))
            {
                _Result.Code = "401";
                _Result.Msg  = "请登陆后再进行操作";
                _Result.Data = "";
                return(Json(_Result));
            }
            //var mall = await dbContext.Mall.Where(i => i.Code == uol.MallCode).FirstOrDefaultAsync();

            //if (mall == null)
            //{
            //    _Result.Code = "510";
            //    _Result.Msg = "无效的商场编码";
            //    _Result.Data = "";
            //    return Json(_Result);
            //}

            //数据验证
            if (model.Time == null)
            {
                _Result.Code = "510";
                _Result.Msg  = "无效的时间";
                _Result.Data = "";

                return(Json(_Result));
            }

            //获取当前时间
            var screensaver = await dbContext.Screensaver.Where(i => i.MallCode == uol.MallCode).FirstOrDefaultAsync();

            //更改时间
            if (screensaver == null)
            {
                dbContext.Screensaver.Add(new Screensaver {
                    MallCode = uol.MallCode, Time = (int)model.Time, ScreenType = (int)model.ScreenType
                });
            }
            else
            {
                screensaver.Time       = (int)model.Time;
                screensaver.ScreenType = model.ScreenType.HasValue ? model.ScreenType.Value : 0;
                dbContext.Screensaver.Update(screensaver);
            }


            if (await dbContext.SaveChangesAsync() > 0)
            {
                _Result.Code = "200";
                _Result.Msg  = "设置成功";
                _Result.Data = "";
                var deviceList = await dbContext.Device.Where(i => i.MallCode == uol.MallCode && !i.IsDelete).ToListAsync();

                if (deviceList.Count > 0)
                {
                    foreach (var item in deviceList)
                    {
                        MsgTemplate msg = new MsgTemplate();
                        msg.SenderID    = Method.ServerAddr;
                        msg.ReceiverID  = item.Code;
                        msg.MessageType = "json";
                        msg.Content     = new { Type = "Screensaver", model.Time };
                        await Method.SendMsgAsync(msg);
                    }
                }
            }
            else
            {
                _Result.Code = "2";
                _Result.Msg  = "设置失败";
                _Result.Data = "";
            }



            return(Json(_Result));
        }