Beispiel #1
0
        public IHttpActionResult login(UserRequest oRequest)
        {
            ReplyUser oReply = new ReplyUser();

            oReply.status = 1;
            try
            {
                if (!ModelState.IsValid)
                {
                    oReply.message = GetErrorsModel();
                    return(BadRequest(oReply.message));
                }
                string Token       = Guid.NewGuid().ToString();
                string encryptPass = Utilities.Encrypt.GetSHA256(oRequest.email);
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
            return(Ok(oReply));
        }
        private ReplyUser ProcessRequest(dynamic stuff)
        {
            ReplyUser Ans  = new ReplyUser();//Обьект класса для возврата ответа от бд(с данными и ошибками внутри)
            MySQLProc keks = new MySQLProc(Ans);

            switch (stuff.command)
            {
            case "Id":    //login
            {
                keks.ReturnUsersID();
                return(Ans);
            }

            case "Registration":    //Регистрация
            {
                String login = stuff.Login;
                String Passw = stuff.Pass;
                String Tel   = stuff.Tel;
                String Fio   = stuff.FIO;

                //Запрос к БД
                keks.Registration();

                Ans.error   = 0;
                Ans.idUsers = "";
                return(Ans);
            }

            case "GetOrder":    //Вернуть заказ по OrderId
            {
                String OrederId = stuff.OrderId;
                //Запрос к бд
                //Заполнить Ans
                return(Ans);
            }

            case "AddOrder":    //Добавить заказ
            {
                String UserId     = stuff.UserId;
                String File       = stuff.File;
                String MaterialId = stuff.MaterialId;
                //и так далее
                //Запрос к бд
                return(Ans);
            }

            case "GetOrdersOfUser":    //Вернуть все заказы юзера
            {
                String UserId = stuff.UserId;
                //Запрос к бд

                return(Ans);
            }

            case "DeleteOrder":    // Удалить заказ
            {
                String OrederId = stuff.OrderId;
                //Запрос к бд

                return(Ans);
            }

            case "EditOrder":    //Изменение заказа
            {
                String OrederId   = stuff.OrderId;
                String File       = stuff.File;
                String MaterialId = stuff.MaterialId;
                //и так далее
                //Запрос к бд
                return(Ans);
            }

            case "EditUser":    //Изменение юзера
            {
                String login = stuff.Login;
                String Passw = stuff.Pass;
                String Tel   = stuff.Tel;
                String Fio   = stuff.FIO;
                //Запрос к БД
                return(Ans);
            }
            }
            Ans.error = -9999999;
            return(Ans);
        }
Beispiel #3
0
 public MySQLProc(ReplyUser user)
 {
     this.reply_user = user;
 }
        public async Task <IActionResult> SubmitReply(MoSubComment subComment)
        {
            if (subComment == null &&
                (subComment.ReplyType == ReplyType.Text &&
                 String.IsNullOrWhiteSpace(subComment.Message)))
            {
                return(ReturnJsonMsg(false, "评论内容不能为空"));
            }

            HttpContext.TryGetUserInfo(out var userInfo);
            Topic topic = await _uf.TopicRepository.GetAsync(x => x.Id == subComment.TopicId &&
                                                             x.TopicStatus != TopicStatus.Disabled);

            if (topic == null)
            {
                return(ReturnJsonMsg(false, "找不到帖子,该帖子已删除或被禁用"));
            }

            string message = String.Empty;

            if (subComment.ReplyType == ReplyType.Image)
            {
                var file = HttpRequest.Form.Files.Where(x => x.ContentType.Contains("image")).SingleOrDefault();
                var(success, resultMsg) = SaveImg(topic.Id, file);
                if (!success)
                {
                    ReturnJsonMsg(false, resultMsg);
                }

                message = resultMsg;
            }
            else
            {
                message = subComment.Message;
            }

            var user = await _uf.UserRepository.GetByIdAsync(userInfo.Id);

            if (user == null)
            {
                return(ReturnJsonMsg(false, "找不到您的用户信息"));
            }

            using (var trans = _uf.BeginTransaction())
            {
                try
                {
                    if (subComment.ReplyObject == ReplyObject.User)
                    {
                        // 楼中楼
                        if (!(await AddChildReply()))
                        {
                            return(ReturnJsonMsg(false, "提交评论失败,请稍后再试"));
                        }
                    }
                    else
                    {
                        // 评论
                        if (!(await AddReply()))
                        {
                            return(ReturnJsonMsg(false, "提交评论失败,请稍后再试"));
                        }
                    }

                    trans.Commit();
                    return(Json(new MoData {
                        IsOk = true
                    }));
                }
                catch (Exception ex)
                {
                    _logger.LogError(userInfo.Id, $"提交评论:{ex.Message}-{DateTime.Now.ToStandardFormatString()}");
                    trans.Rollback();
                    return(ReturnJsonMsg(false, "系统出错啦~~~,请稍后重试"));
                }
            }

            /// 提交评论
            async Task <bool> AddReply()
            {
                var reply = new Reply
                {
                    Message   = message,
                    TopicId   = subComment.TopicId,
                    UserId    = userInfo.Id,
                    ReplyType = subComment.ReplyType,
                    TopicName = topic.TopicName,
                    UserName  = user.UserName
                };

                UpdateIntegrate(user, (int)IntegrateType.Reply);
                var replyCount = topic.ReplyCount + 1;

                topic.ReplyCount = replyCount;
                reply.ReplyIndex = replyCount + 1; // 除去楼主
                _uf.TopicRepository.Update(topic);
                await _uf.ReplyRepository.InsertAsync(reply);

                await _uf.SaveChangesAsync();

                AddIndex(topic, reply);
                return(true);
            }

            /// 提交子评论
            async Task <bool> AddChildReply()
            {
                if (subComment.ReplyIndex == null ||
                    subComment.ReplyUserId == null)
                {
                    return(false);
                }

                var replyUser = new ReplyUser
                {
                    Message     = message,
                    ReplyIndex  = subComment.ReplyIndex.Value,
                    ReplyUserId = subComment.ReplyUserId.Value,
                    TopicId     = subComment.TopicId,
                    UserId      = userInfo.Id,
                    ReplyType   = subComment.ReplyType
                };


                var reply = await _uf.ReplyRepository.GetAsync(x => x.ReplyIndex == subComment.ReplyIndex &&
                                                               x.UserId == subComment.ReplyUserId &&
                                                               x.TopicId == subComment.TopicId);

                if (reply == null)
                {
                    return(false);
                }

                await _uf.ReplyUserRepository.InsertAsync(replyUser);

                var replyCount = reply.ReplyCount + 1;

                reply.ReplyCount = replyCount;
                _uf.ReplyRepository.Update(reply);
                UpdateIntegrate(user, (int)IntegrateType.Reply);
                await _uf.SaveChangesAsync();

                return(true);
            }
        }