コード例 #1
0
        public ActionResult GetEstimatedById([FromRoute] decimal id)
        {
            var query = from d in _context.D_REVIEWS
                        where d.REVIEW_ID == id
                        select d;

            if (!query.Any())
            {
                return(Ok(new Result
                {
                    Status = 404,
                    Message = string.Empty,
                    Data = null
                }));
            }

            D_REVIEW            estimation = query.Single();
            List <ReviewEntity> entityList = new List <ReviewEntity>();

            ReviewEntity result = new ReviewEntity();

            result.reviewId       = estimation.REVIEW_ID;
            result.contactId      = estimation.CONTACT_ID;
            result.reviewUserId   = estimation.REVIEW_USER_ID;
            result.reviewModeUser = estimation.REVIEW_MODE_USER;
            result.reviewDate     = estimation.REVIEW_DATE;
            result.score          = estimation.SCORE;
            result.comment        = estimation.COMMENT;

            return(Ok(new Result
            {
                Status = 200,
                Message = string.Empty,
                Data = result
            }));
        }
コード例 #2
0
        public ActionResult InsertEstimation(ReviewEntity entity)
        {
            System.Web.Http.HttpError errorHttp = null;

            if (entity == null)
            {
                errorHttp = new System.Web.Http.HttpError("EstimationEntity is not found!");

                return(Ok(new Result
                {
                    Status = 404,
                    Message = errorHttp.Message,
                    Data = null
                }));
            }

            IDbContextTransaction tran = _context.Database.BeginTransaction();

            try
            {
                var query = from d in _context.D_REVIEWS
                            where d.CONTACT_ID == entity.contactId &&
                            d.REVIEW_MODE_USER == (int)entity.reviewModeUser
                            select d;

                if (query.Any())
                {
                    errorHttp = new System.Web.Http.HttpError("Estimation is exists!");

                    return(Ok(new Result
                    {
                        Status = 404,
                        Message = errorHttp.Message,
                        Data = null
                    }));
                }

                decimal  userReceiveId;
                decimal  receiveModeUser;
                D_REVIEW estimation = new D_REVIEW();

                estimation.CONTACT_ID       = entity.contactId;
                estimation.REVIEW_USER_ID   = entity.reviewUserId;
                estimation.REVIEW_MODE_USER = entity.reviewModeUser;
                estimation.REVIEW_DATE      = Utility.GetSysDateTime();
                estimation.SCORE            = entity.score.Value;
                estimation.COMMENT          = entity.comment;

                _context.D_REVIEWS.Add(estimation);
                _context.SaveChanges();

                if (!UpdateScore(_context, entity.contactId, entity.score.Value, entity.reviewModeUser))
                {
                    // Rollback transaction.
                    tran.Rollback();
                    errorHttp = new System.Web.Http.HttpError("Insert is not success!");

                    return(Ok(new Result
                    {
                        Status = 404,
                        Message = errorHttp.Message,
                        Data = null
                    }));
                }

                if (entity.reviewModeUser == (decimal)Mode.Hirer)
                {
                    var queryWorker = from d in _context.V_CONTACT_INFOS
                                      where d.CONTACT_ID == entity.contactId
                                      select d.WORKER_ID;

                    if (!queryWorker.Any())
                    {
                        // Rollback transaction.
                        tran.Rollback();
                        errorHttp = new System.Web.Http.HttpError("Update is not success!");

                        return(Ok(new Result
                        {
                            Status = 404,
                            Message = errorHttp.Message,
                            Data = null
                        }));
                    }

                    userReceiveId   = queryWorker.Single();
                    receiveModeUser = (decimal)Mode.Partner;
                }
                else
                {
                    var queryHirer = from d in _context.V_CONTACT_INFOS
                                     where d.CONTACT_ID == entity.contactId
                                     select d.HIRER_ID;

                    if (!queryHirer.Any())
                    {
                        // Rollback transaction.
                        tran.Rollback();
                        errorHttp = new System.Web.Http.HttpError("Update is not success!");

                        return(Ok(new Result
                        {
                            Status = 404,
                            Message = errorHttp.Message,
                            Data = null
                        }));
                    }

                    userReceiveId   = queryHirer.Single();
                    receiveModeUser = (decimal)Mode.Hirer;
                }


                // Insert notify.
                if (!Utility.InsertNotify(_context, (int)NotifyType.Estimation, entity.contactId, entity.reviewUserId, userReceiveId, receiveModeUser))
                {
                    // Rollback transaction.
                    tran.Rollback();
                    errorHttp = new System.Web.Http.HttpError("Update is not success!");

                    return(Ok(new Result
                    {
                        Status = 404,
                        Message = errorHttp.Message,
                        Data = null
                    }));
                }


                // Commit transaction.
                tran.Commit();

                errorHttp = new System.Web.Http.HttpError("Insert is success!");

                return(Ok(new Result
                {
                    Status = 200,
                    Message = errorHttp.Message,
                    Data = null
                }));
            }
            catch (Exception ex)
            {
                // Rollback transaction.
                tran.Rollback();

                System.Web.Http.HttpError error = new System.Web.Http.HttpError(ex.Message);

                return(Ok(new Result
                {
                    Status = 404,
                    Message = error.Message,
                    Data = null
                }));
            }
        }