예제 #1
0
        public async Task<IActionResult> Put(int id, [FromBody] PostViewModel model)
        {
            if (!ModelState.IsValid)
                return Ok(ResponseResult.Faild("Validation Error"));


            var post = await _service.GetPostByIdAsync(id);

            if (post == null)
                return NotFound();

            var userId = User.FindFirst(ClaimTypes.Name)?.Value;

            if (post.User.Id != userId)
                return Ok(ResponseResult.Faild("Not Authorized")) ;

            model.PostAuthor = post.User;
            model.Id = post.Id;
            var mappedPost = _mapper.Map(model,post);
            var result = await _service.UpdatePostAsync(mappedPost);

            if (result)
                return Ok(ResponseResult.SuccessWithMessage("Updated Successfully"));

            return Ok(ResponseResult.Faild("Faild To Update Post"));
        }
        public const string SystemQueue_PrefixName = "user.msg.{0}";//队列名称前缀

        /// <summary>
        /// 给某个队列发送消息
        /// </summary>
        /// <param name="queueName">队列名称</param>
        /// <param name="message">消息</param>
        /// <returns></returns>
        public ResponseResult SendMessage(string queueName, string message)
        {
            ResponseResult result = ResponseResult.Default();

            try
            {
                //NLogHelper.Instance.Info("开始SendPrintMessage=>Redis MQ消息队列......");
                if (string.IsNullOrEmpty(queueName))
                {
                    result = ResponseResult.Faild("queueName不能为空!");
                    return(result);
                }
                using (IRedisClient redisClient = RedisManager.GetClient())
                {
                    redisClient.EnqueueItemOnList(queueName, message);
                    result.RequestStatus = (int)ResultFlags.OK;
                    result.Msg           = message;
                    NLogHelper.Instance.Info(string.Format("SendPrintMessage=>Redis MQ消息队列:{0},消息:{1}......", queueName, message));
                }
            }
            catch (System.Exception ex)
            {
                result.RequestStatus = (int)ResponseResultStatus.Exception;
                result.Msg           = ex.Message;
                NLogHelper.Instance.Info(string.Format("SendPrintMessage=>Redis MQ消息队列Exception异常:{0}", ex.Message));
            }
            finally
            {
                //NLogHelper.Instance.Info("结束SendPrintMessage=>Redis MQ消息队列......");
            }
            return(result);
        }
예제 #3
0
        public async Task<IActionResult> PostAsync([FromBody] PostViewModel model)
        {
            if (!ModelState.IsValid)
                return Ok(ResponseResult.Faild("Validation Error")) ;

            var userId = User.FindFirst(ClaimTypes.Name)?.Value;

            var user = await _userManager.FindByIdAsync(userId);
            model.PostAuthor = user;

            var mappedPost = _mapper.Map<Post>(model);
            var result = await _service.CreatePostAsync(mappedPost);

            if (result)
                return Ok(ResponseResult.SuccessWithMessage("Created Successfully"));

            return Ok(ResponseResult.Faild("Faild To Create Post"));
        }
        public ResponseResult <LoginResponseResult> LoginByJObject([FromBody] JObject data)
        {
            var obj = new
            {
                user_id       = data["user_id"].ToObject <string>(),
                user_password = data["user_password"].ToObject <string>(),
            };
            var result = ResponseResult <LoginResponseResult> .Default();

            try
            {
                if (string.IsNullOrEmpty(obj.user_id))
                {
                    return(ResponseResult <LoginResponseResult> .Faild("user_id不能为空!"));
                }

                if (string.IsNullOrEmpty(obj.user_password))
                {
                    return(ResponseResult <LoginResponseResult> .Faild("user_password不能为空!"));
                }

                //=>[模拟从数据库中验证user_id和user_password]
                if (obj.user_id.Equals("abennet") && obj.user_password.Equals("abennet"))
                {
                    LoginResponseResult entity = new LoginResponseResult
                    {
                        UserId       = obj.user_id,
                        UserPassword = obj.user_password,
                        LoginTime    = DateTime.Now,
                        SessionToken = Guid.NewGuid().ToString("N"),
                    };
                    result = ResponseResult <LoginResponseResult> .Success(entity, "登录成功!");
                }
                else
                {
                    result = ResponseResult <LoginResponseResult> .Faild("登录失败!");
                }
            }
            catch (System.Exception ex)
            {
                result = ResponseResult <LoginResponseResult> .Exception(ex.Message);
            }
            return(result);
        }
예제 #5
0
        public async Task <IActionResult> RegisterAsync(RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(ResponseResult.Faild("ValidationError")));
            }


            var applicationUser = _mapper.Map <ApplicationUser>(model);

            var result = await _service.CreateUserAsync(applicationUser, model.Password);

            if (!result.Succeeded)
            {
                return(Ok(ResponseResult.Faild(result.Errors.FirstOrDefault().Description)));
            }

            return(Ok(ResponseResult.SuccessWithMessage("Registered Successfully")));
        }
        /// <summary>
        /// 接受消息
        /// </summary>
        /// <param name="queueName"></param>
        /// <returns></returns>
        public ResponseResult ReceiveMessage(string queueName)
        {
            ResponseResult result = ResponseResult.Default();

            try
            {
                //NLogHelper.Instance.Info("开始ReceiveMessage=>Redis MQ消息队列......");
                if (string.IsNullOrEmpty(queueName))
                {
                    result = ResponseResult.Faild("queueName不能为空!");
                    return(result);
                }

                using (IRedisClient redisClient = RedisManager.GetClient())
                {
                    var count = redisClient.GetListCount(queueName);
                    if (count > 0)
                    {
                        result.Msg           = redisClient.DequeueItemFromList(queueName);
                        result.RequestStatus = (int)ResultFlags.OK;
                        NLogHelper.Instance.Info(string.Format("ReceiveMessage=>Redis MQ消息队列:{0},消息:{1}......", queueName, result.Msg));
                    }
                    else
                    {
                        result.Msg           = string.Format("当前队列{0}中没有消息队列", queueName);
                        result.RequestStatus = (int)ResultFlags.NotFound;
                    }
                }
            }
            catch (System.Exception ex)
            {
                result.RequestStatus = (int)ResponseResultStatus.Exception;
                result.Msg           = ex.Message;
                NLogHelper.Instance.Info(string.Format("ReceiveMessage=>Redis MQ消息队列Exception异常:{0}", ex.Message));
            }
            finally
            {
                //NLogHelper.Instance.Info("结束ReceiveMessage=>Redis MQ消息队列......");
            }
            return(result);
        }
        public ResponseResult <LoginResponseResult> LoginByFromBody([FromUri] int id,
                                                                    [FromBody] LoginRequestParam loginRequestParam)
        {
            var result = ResponseResult <LoginResponseResult> .Default();

            try
            {
                if (string.IsNullOrEmpty(loginRequestParam.user_id))
                {
                    return(ResponseResult <LoginResponseResult> .Faild("user_id不能为空!"));
                }

                if (string.IsNullOrEmpty(loginRequestParam.user_password))
                {
                    return(ResponseResult <LoginResponseResult> .Faild("user_password不能为空!"));
                }

                //=>[模拟从数据库中验证user_id和user_password]
                if (loginRequestParam.user_id.Equals("abennet") && loginRequestParam.user_password.Equals("abennet"))
                {
                    LoginResponseResult entity = new LoginResponseResult
                    {
                        UserId       = loginRequestParam.user_id,
                        UserPassword = loginRequestParam.user_password,
                        LoginTime    = DateTime.Now,
                        SessionToken = Guid.NewGuid().ToString("N"),
                    };
                    result = ResponseResult <LoginResponseResult> .Success(entity, "登录成功!");
                }
                else
                {
                    result = ResponseResult <LoginResponseResult> .Faild("登录失败!");
                }
            }
            catch (System.Exception ex)
            {
                result = ResponseResult <LoginResponseResult> .Exception(ex.Message);
            }
            return(result);
        }
예제 #8
0
        public async Task<IActionResult> Delete(int id)
        {
            var post = await _service.GetPostByIdAsync(id);

            if (post == null)
                return NotFound();

            var userId = User.FindFirst(ClaimTypes.Name)?.Value;

            if (post.User.Id != userId)
                return Ok(ResponseResult.Faild("Not Authorized"));

            var result = await _service.DeletePostAsync(post);

            if (result)
            {
                return Ok(ResponseResult.SuccessWithMessage("Post Deleted Successfully"));
            }

            return Ok(ResponseResult.Faild("Faild to Delete Post"));

        }
예제 #9
0
        public async Task <IActionResult> LoginAsync(LoginViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(ResponseResult.Faild("ValidationError")));
            }

            // Authenticating Identity User
            var user = await _service.Login(model.Username, model.Password);

            if (user == null)
            {
                return(Ok(ResponseResult.Faild("Username or Password is Incorrect")));
            }

            // Generating Token and Response model

            var token = _service.GenerateToken(user.Id);

            var result = LoginResponse.SetData(user.FirstName + " " + user.LastName, token);

            return(Ok(ResponseResult.SuccessWithData(result)));
        }
예제 #10
0
        public string saveSaleBill(Context ctx, DynamicObject data)
        {
            /*
             * 1、拼接json对象
             * 2、执行标准销售订单保存
             */
            JObject jsonRoot = new JObject();                       //存储models
            JArray  models   = new JArray();                        //多model批量保存时使用,存储mBHeader
            JObject mBHeader = new JObject();                       //model中单据头,存储普通变量、baseData、entrys
            JObject mBEntry  = new JObject();                       //model中单据体,存储普通变量,baseData
            JObject sBEntry  = new JObject();                       //model中财务子单据体,存储普通变量,baseData
            JObject baseData = new JObject();                       //model中基础资料
            JArray  entrys   = new JArray();                        //单个model中存储多行分录体集合,存储mBentry

            mBHeader.Add("FID", 0);                                 //FID
            mBHeader.Add("FBillNo", data["FSALBILLNO"].ToString()); //单据编号
            baseData = new JObject();
            baseData.Add("FNumber", "XSDD01_SYS");
            mBHeader.Add("FBillTypeID", baseData);           //单据类型
            mBHeader.Add("FBusinessType", "NORMAL");         //业务类型
            mBHeader.Add("FDate", data["FDATE"].ToString()); //业务日期
            baseData = new JObject();
            baseData.Add("FNumber", data["FORGNO"].ToString());
            mBHeader.Add("FSaleOrgId", baseData);//销售组织
            baseData = new JObject();
            baseData.Add("FNumber", data["FCUSTNO"].ToString());
            mBHeader.Add("FCustId", baseData);//客户编码

            sBEntry  = new JObject();
            baseData = new JObject();
            baseData.Add("FNumber", "HLTX01_SYS");
            sBEntry.Add("FExchangeTypeId", baseData); //汇率类型
            sBEntry.Add("FExchangeRate", "1.0");      //汇率
            baseData = new JObject();
            baseData.Add("FNumber", "PRE001");
            sBEntry.Add("FLocalCurrId", baseData);      //本位币
            mBHeader.Add("FSaleOrderFinance", sBEntry); //财务信息
            baseData = new JObject();
            baseData.Add("FNumber", "HLTX01_SYS");
            mBHeader.Add("FExchangeTypeId", baseData);//汇率类型
            //baseData = new JObject();
            //baseData.Add("FNumber", "BM000002");
            //mBHeader.Add("FSaleDeptId", baseData);//销售部门
            baseData = new JObject();
            baseData.Add("FNumber", "PRE001");
            mBHeader.Add("FSettleCurrId", baseData);//结算币别
            baseData = new JObject();
            baseData.Add("FNumber", data["FPROJECTNO"].ToString());
            mBHeader.Add("FPROJECTNO", baseData);              //工程名称
            mBHeader.Add("FNote", data["FREMARK"].ToString()); //备注(单据编号+工程名称)

            string saleFid = data["FID"].ToString();

            if (!"".Equals(saleFid) && saleFid != null)
            {
                string querySql = string.Format(@"/*dialect*/SELECT  FMATERIALNO,FQTY ,FUNIT ,FDELIVERYDATE FROM SALE_LIST WHERE FID = '{0}'", saleFid);
                DynamicObjectCollection queryResult = DBUtils.ExecuteDynamicObject(ctx, querySql) as DynamicObjectCollection;
                if (queryResult != null && queryResult.Count() > 0)
                {
                    foreach (DynamicObject qResult in queryResult)
                    {
                        mBEntry  = new JObject();
                        baseData = new JObject();
                        baseData.Add("FNumber", qResult["FMATERIALNO"].ToString());
                        mBEntry.Add("FMaterialId", baseData);                  //物料编码
                        mBEntry.Add("FQty", Convert.ToInt32(qResult["FQTY"])); //销售数量
                        baseData = new JObject();
                        baseData.Add("FNumber", qResult["FUNIT"].ToString());
                        mBEntry.Add("FUnitID", baseData);                       //销售单位
                        mBEntry.Add("FOUTLMTUNIT", "SAL");                      //超发控制单位
                        mBEntry.Add("FReserveType", "1");                       //预留类型
                        mBEntry.Add("FDeliveryDate", data["FDATE"].ToString()); //要货日期
                        baseData = new JObject();
                        baseData.Add("FNumber", data["FORGNO"].ToString());
                        mBEntry.Add("FSettleOrgIds", baseData);//结算组织
                        entrys.Add(mBEntry);
                    }
                    mBHeader.Add("FSaleOrderEntry", entrys);
                    models.Add(mBHeader);
                }
            }

            jsonRoot.Add("Creator", "");
            jsonRoot.Add("IsDeleteEntry", "True");
            jsonRoot.Add("SubSystemId", "");
            jsonRoot.Add("IsVerifyBaseDataField", "false");
            jsonRoot.Add("BatchCount", "1");
            jsonRoot.Add("Model", models);

            string sFormId  = "SAL_SaleOrder";
            string sContent = JsonConvert.SerializeObject(jsonRoot);

            object[] saveInfo = new object[] { sFormId, sContent };

            ApiClient client = new ApiClient(DBHelper.ServerUrl);
            string    dbId   = DBHelper.DBID;
            bool      bLogin = client.Login(dbId, DBHelper.UserName, DBHelper.PassWord, Convert.ToInt32(DBHelper.ICID));
            string    result = "";

            if (bLogin)
            {
                result = client.Execute <string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave", saveInfo);
                JObject jObject = (JObject)JsonConvert.DeserializeObject(result);
                string  flag    = jObject["Result"]["ResponseStatus"]["IsSuccess"].ToString();
                if ("True".Equals(flag))//销售订单同步成功状态及更新时间更新到中间表
                {
                    string updateSql = string.Format(@"/*dialect*/UPDATE SALE_MAIN@ZyK3Link 
                                                                         SET FFLAG = '1' , FUPDATEDATE  =  '{0}' 
                                                                         WHERE  FID = '{1}'", System.DateTime.Now.ToString(), saleFid);
                    DBUtils.Execute(ctx, updateSql);
                    string updateSql2 = string.Format(@"/*dialect*/UPDATE SALE_MAIN@ZyK3Link
                                                                          SET FFLAG = '1' , FUPDATEDATE  =  '{0}' 
                                                                          WHERE  FID = '{1}'", System.DateTime.Now.ToString(), saleFid);

                    Kingdee.BOS.Log.Logger.Info(DateTime.Now.ToString() + "succWebApi", saleFid.ToString(), true);
                    DBUtils.Execute(ctx, updateSql2);
                }
                else //销售订单同步失败将状态机失败原因更新到中间表
                {
                    string essorMes  = jObject["Result"]["ResponseStatus"]["Errors"][0].ToString();
                    string updateSql = string.Format(@"/*dialect*/UPDATE SALE_MAIN@ZyK3Link 
                                                                          SET FFLAG = '2' , FUPDATEDATE  =  '{0}', FERRORMESSAGE  = '{1}' 
                                                                          WHERE  FID = '{2}'", System.DateTime.Now.ToString(), essorMes, saleFid);

                    Kingdee.BOS.Log.Logger.Error(DateTime.Now.ToString() + "errorWebApi", saleFid.ToString() + "同步失败原因:" + essorMes, new Exception());
                    DBUtils.Execute(ctx, updateSql);
                }
            }
            else
            {
                return(ResponseResult.Faild("登陆失败!").ToString());
            }
            return(result);
        }