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 })); }
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 })); } }