Example #1
0
        public ActionResult ReadAll([FromRoute] decimal id, [FromRoute] decimal modeUser)
        {
            System.Web.Http.HttpError errorHttp = null;

            IDbContextTransaction tran = _context.Database.BeginTransaction();

            try
            {
                var query = from d in _context.D_NOTIFYS
                            where d.USER_RECIEVE_ID == id &&
                            d.RECEIVE_MODE_USER == modeUser &&
                            d.READED_FLG == (int)ReadedFlg.New
                            select d;

                if (!query.Any())
                {
                    errorHttp = new System.Web.Http.HttpError("Update notify is success!");

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

                List <D_NOTIFY> notifyList = query.ToList();

                foreach (D_NOTIFY notify in notifyList)
                {
                    notify.READED_FLG   = (int)ReadedFlg.Readed;
                    notify.UPD_DATETIME = Utility.GetSysDateTime();
                }

                // Commit transaction.
                tran.Commit();

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

                return(Ok(new Result
                {
                    Status = 200,
                    Message = errorHttp.Message,
                    Data = true
                }));
            }
            catch (System.Exception)
            {
                // Rollback transaction.
                tran.Rollback();
                errorHttp = new System.Web.Http.HttpError("Update notify is not success!");

                return(Ok(new Result
                {
                    Status = 404,
                    Message = errorHttp.Message,
                    Data = false
                }));
            }
        }
Example #2
0
        public override void OnException(HttpActionExecutedContext context)
        {
            object moduleName = new object();;

            context.Request.Properties.TryGetValue("ModuleName", out moduleName);
            object moduleAction = new object();

            context.Request.Properties.TryGetValue("ModuleAction", out moduleAction);
            object userUid = new object();

            context.Request.Properties.TryGetValue("AuthorizedRequestId", out userUid);

            string errorMsg = context.Exception.Message;

            if (context.Exception.InnerException != null)
            {
                errorMsg = context.Exception.InnerException.Message;
            }

            var httpError = new System.Web.Http.HttpError(errorMsg)
            {
                { "ErrorCode", 500 }
            };

            context.Response = context.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, httpError);
        }
Example #3
0
        public ActionResult InsertContactHistory(ContactEntity entity)
        {
            System.Web.Http.HttpError errorHttp = null;

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

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

            IDbContextTransaction transaction = _context.Database.BeginTransaction();

            try
            {
                // Open transaction.
                D_CONTACT contact = new D_CONTACT();

                contact.USER_RECIEVE_ID = entity.userRecieveId;
                contact.REG_MODE_USER   = entity.contactModeUser;
                contact.CONTACT_USER_ID = entity.contactUserId;
                contact.CATALOG_CD      = entity.catalogCd;
                contact.CONTACT_DATE    = Utility.GetSysDateTime();

                _context.D_CONTACTS.Add(contact);
                _context.SaveChanges();

                // Commit transaction.
                transaction.Commit();

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

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

                System.Web.Http.HttpError error = new System.Web.Http.HttpError("Error system!");

                return(Ok(new Result
                {
                    Status = 404,
                    Message = error.Message,
                    Data = false
                }));
            }
        }
Example #4
0
        public override void OnException(HttpActionExecutedContext context)
        {
            RunbowLogger.LogException(context.Exception);
            var errorMessagError = new System.Web.Http.HttpError("Oops some internal Exception. Please contact your administrator")
            {
                { "ErrorCode", 500 }
            };

            context.Response = context.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, errorMessagError);
        }
Example #5
0
        public ActionResult CheckCanLogin(string id)
        {
            try
            {
                System.Web.Http.HttpError errorHttp = new System.Web.Http.HttpError("User can login!");

                var query = from d in _context.M_USERS
                            where d.PHONE_NUMBER == id &&
                            d.DELETE_FLG == 0
                            select d;

                if (query.Any())
                {
                    M_USER user = query.Single();

                    // User is blocked.
                    if (user.BLOCK_FLG == 1 && user.BLOCK_FLG == (int)BlockFlag.Blocked)
                    {
                        errorHttp = new System.Web.Http.HttpError("User is blocked!");

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

                    // User is deleted.
                    //if (user.DELETE_FLG.HasValue && user.DELETE_FLG.Value != (int)DeleteFlag.Using)
                    //{
                    //    errorHttp = new HttpError("User is deleted!");
                    //    return Request.CreateResponse(HttpStatusCode.Conflict, errorHttp);
                    //}
                }

                return(Ok(new Result
                {
                    Status = 200,
                    Message = errorHttp.Message,
                    Data = true
                }));
            }
            catch
            {
                // Rollback transaction.
                System.Web.Http.HttpError error = new System.Web.Http.HttpError("Error system!");
                return(Ok(new Result
                {
                    Status = 200,
                    Message = error.Message,
                    Data = null
                }));
            }
        }
Example #6
0
        public ActionResult UpdateNotify([FromRoute] decimal id)
        {
            System.Web.Http.HttpError errorHttp = null;

            IDbContextTransaction tran = _context.Database.BeginTransaction();

            try
            {
                var query = from d in _context.D_NOTIFYS
                            where d.NOTIFY_ID == id
                            select d;

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

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

                D_NOTIFY notify = query.Single();
                notify.READED_FLG   = (int)ReadedFlg.Readed;
                notify.UPD_DATETIME = Utility.GetSysDateTime();

                _context.SaveChanges();
                // Commit transaction.
                tran.Commit();

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

                return(Ok(new Result
                {
                    Status = 200,
                    Message = errorHttp.Message,
                    Data = true
                }));
            }
            catch (System.Exception)
            {
                // Rollback transaction.
                tran.Rollback();
                errorHttp = new System.Web.Http.HttpError("Update notify is not success!");

                return(Ok(new Result
                {
                    Status = 404,
                    Message = errorHttp.Message,
                    Data = false
                }));
            }
        }
        public void SerializesHttpError()
        {
            var innerException = new ApplicationException("Another message");
            var exception = new InvalidOperationException("Some message", innerException);
            var httpError = new System.Web.Http.HttpError(exception, true);

            var errors = new ErrorSerializer().Serialize(new ApiError(httpError))["errors"][0];

            Assert.Equal("Some message. Another message.", errors.Value<string>("title"));
            Assert.Equal(httpError.ExceptionType, errors.Value<string>("code"));
            Assert.Equal(httpError.StackTrace, errors.Value<string>("detail"));
        }
Example #8
0
        public void SerializesHttpError()
        {
            var innerException = new ApplicationException("Another message");
            var exception      = new InvalidOperationException("Some message", innerException);
            var httpError      = new System.Web.Http.HttpError(exception, true);

            var errors = new ErrorSerializer().Serialize(new ApiError(httpError))["errors"][0];

            Assert.Equal("Some message. Another message.", errors.Value <string>("title"));
            Assert.Equal(httpError.ExceptionType, errors.Value <string>("code"));
            Assert.Equal(httpError.StackTrace, errors.Value <string>("detail"));
        }
Example #9
0
        public ActionResult InsertQuestion(QuestionEntity questionEntity)
        {
            IDbContextTransaction tran = _context.Database.BeginTransaction();

            try
            {
                M_QUESTION question = new M_QUESTION();
                question.USER_ID       = questionEntity.userId;
                question.SUBJECT       = questionEntity.subject;
                question.CONTENT       = questionEntity.content;
                question.QUESTION_DATE = Utility.GetSysDateTime();
                question.REG_DATETIME  = Utility.GetSysDateTime();

                _context.M_QUESTIONS.Add(question);
                _context.SaveChanges();

                // Commit transaction.
                tran.Commit();

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

                return(Ok(new Result
                {
                    Status = 200,
                    Message = errorHttp.Message,
                    Data = true
                }));
            }
            catch
            {
                // Rollback transaction.
                tran.Rollback();
                System.Web.Http.HttpError error = new System.Web.Http.HttpError("Error system!");

                return(Ok(new Result
                {
                    Status = 404,
                    Message = error.Message,
                    Data = true
                }));
            }
        }
        public override void OnException(HttpActionExecutedContext actionExecutedContext)
        {
            if (actionExecutedContext?.Exception != null)
            {
                if (AppSettings.Instance.LogInsightsFlag == "1")
                {
                    AppInsightsLogger.Error(actionExecutedContext.Exception);
                }

                var errorMessagError = new System.Web.Http.HttpError(actionExecutedContext.Exception.Message);
                actionExecutedContext.Response =
                    actionExecutedContext.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, errorMessagError);
            }
            else
            {
                var response = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent("An unhandled exception was thrown by service"),
                    ReasonPhrase = "Internal Server Error.Please Contact your Administrator.",
                };
                actionExecutedContext.Response = response;
            }
        }
 public override void OnException(HttpActionExecutedContext actionExecutedContext)
 {
     ////if (actionExecutedContext.Exception is BusinessLayerException)
     ////{
     ////    var businessException = actionExecutedContext.Exception as BusinessLayerException;
     ////    var errorMessagError = new System.Web.Http.HttpError(businessException.ErrorDescription) { { "ErrorCode", businessException.ErrorCode } };
     ////    actionExecutedContext.Response =
     ////        actionExecutedContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessagError);
     ////}
     ////else if (actionExecutedContext.Exception is DataLayerException)
     ////{
     ////    var dataException = actionExecutedContext.Exception as DataLayerException;
     ////    var errorMessagError = new System.Web.Http.HttpError(dataException.ErrorDescription) { { "ErrorCode", dataException.ErrorCode } };
     ////    actionExecutedContext.Response =
     ////        actionExecutedContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessagError);
     ////}
     ////else
     {
         var errorMessagError = new System.Web.Http.HttpError("Oops some internal Exception. Please contact your administrator") { { "ErrorCode", 500 } };
         actionExecutedContext.Response =
             actionExecutedContext.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, errorMessagError);
     }
 }
Example #12
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
                }));
            }
        }
Example #13
0
        public ActionResult UpdateFavourite(FavouriteEntity favouriteEntity)
        {
            IDbContextTransaction tran = _context.Database.BeginTransaction();

            try
            {
                System.Web.Http.HttpError errorHttp = null;

                // Favouriteの場合
                if (favouriteEntity.favouriteFlag == 1)
                {
                    var query = from d in _context.D_FAVOURITES
                                where d.USER_ID == favouriteEntity.userId &&
                                d.MODE_USER == (int)Mode.Hirer &&
                                d.FAVOURITE_USER_ID == favouriteEntity.favouriteUserId
                                select d;

                    if (!query.Any())
                    {
                        D_FAVOURITE favoutire = new D_FAVOURITE();
                        favoutire.USER_ID           = favouriteEntity.userId;
                        favoutire.MODE_USER         = (int)Mode.Hirer;
                        favoutire.FAVOURITE_USER_ID = favouriteEntity.favouriteUserId;
                        favoutire.CATALOG_CD        = favouriteEntity.catalog.catalogCd.GetValueOrDefault(0);
                        favoutire.REG_DATETIME      = Utility.GetSysDateTime();

                        _context.D_FAVOURITES.Add(favoutire);
                        _context.SaveChanges();
                    }
                }
                else
                {
                    var query = from d in _context.D_FAVOURITES
                                where d.USER_ID == favouriteEntity.userId &&
                                d.MODE_USER == (int)Mode.Hirer &&
                                d.FAVOURITE_USER_ID == favouriteEntity.favouriteUserId
                                select d;

                    if (query.Any())
                    {
                        D_FAVOURITE favoutire = query.Single();
                        _context.D_FAVOURITES.Remove(favoutire);
                        _context.SaveChanges();
                    }
                }

                // Commit transaction.
                tran.Commit();

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

                return(Ok(new Result
                {
                    Status = 200,
                    Message = errorHttp.Message,
                    Data = true
                }));
            }
            catch (Exception ex)
            {
                // Rollback transaction.
                tran.Rollback();
                System.Web.Http.HttpError error = new System.Web.Http.HttpError("Error system!");

                return(Ok(new Result
                {
                    Status = 404,
                    Message = error.Message,
                    Data = false
                }));
            }
        }
Example #14
0
        public ActionResult SignIn([FromBody] LoginEntity loginEntity)
        {
            IDbContextTransaction tran = _context.Database.BeginTransaction();

            M_USER user = null;

            AuthorEntity author = new AuthorEntity();

            author.phoneNumber = loginEntity.phoneNumber;
            author.token       = loginEntity.token;

            if (!Utility.ValidatiTokenId(author))
            {
                System.Web.Http.HttpError error = new System.Web.Http.HttpError("Error validati token id!");

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

            try
            {
                if (Utility.CheckPhoneExists(_context, loginEntity.phoneNumber))
                {
                    var query = from d in _context.M_USERS
                                where d.PHONE_NUMBER == loginEntity.phoneNumber &&
                                d.DELETE_FLG == 0
                                select d;

                    user = query.Single();

                    if (!string.IsNullOrEmpty(loginEntity.languageType))
                    {
                        user.LANGUAGE_TYPE = loginEntity.languageType;
                    }
                    else
                    {
                        user.LANGUAGE_TYPE = Constant.LANGUAGE_VN;
                    }

                    user.SIGNIN_LAST = Utility.GetSysDateTime();
                }
                else
                {
                    user              = new M_USER();
                    user.NAME         = string.Empty;
                    user.PHONE_NUMBER = loginEntity.phoneNumber;
                    user.MODE_DEFAULT = (int)Mode.Partner;
                    user.REG_DATETIME = Utility.GetSysDateTime();
                    user.MODE_USER    = (int)Mode.Partner;
                    user.SIGNIN_LAST  = Utility.GetSysDateTime();
                    user.BLOCK_FLG    = (int)BlockFlag.NotBlock;
                    user.DELETE_FLG   = (int)DeleteFlag.Using;

                    if (!string.IsNullOrEmpty(loginEntity.languageType))
                    {
                        user.LANGUAGE_TYPE = loginEntity.languageType;
                    }
                    else
                    {
                        user.LANGUAGE_TYPE = Constant.LANGUAGE_VN;
                    }

                    _context.M_USERS.Add(user);
                    _context.SaveChanges();

                    var query = from d in _context.M_USERS
                                where d.PHONE_NUMBER == loginEntity.phoneNumber &&
                                d.DELETE_FLG == 0
                                select d;

                    M_PARTNER_INFO worker = new M_PARTNER_INFO();
                    worker.USER_ID      = user.USER_ID;
                    worker.SCORE        = 0;
                    worker.STATUS       = (int)Status.Offline;
                    worker.REG_DATETIME = Utility.GetSysDateTime();
                    _context.M_PARTNER_INFOS.Add(worker);
                    _context.SaveChanges();

                    M_HIRER_INFO hirer = new M_HIRER_INFO();
                    hirer.USER_ID      = user.USER_ID;
                    hirer.SCORE        = 0;
                    hirer.STATUS       = (int)Status.Offline;
                    hirer.REG_DATETIME = Utility.GetSysDateTime();
                    _context.M_HIRER_INFOS.Add(hirer);
                    _context.SaveChanges();
                }

                _context.SaveChanges();

                // Commit transaction.
                tran.Commit();

                var queryUser = from d in _context.M_USERS
                                where d.PHONE_NUMBER == loginEntity.phoneNumber &&
                                d.DELETE_FLG == 0
                                select d;

                user = queryUser.Single();

                string         token = Utility.GenerateToken(user, Utility.GetSysDateTime());
                AuthRepository auth  = new AuthRepository();
                auth.UpdateToken(_context, user.USER_ID, token);

                if (loginEntity.modeUser == (int)Mode.Partner)
                {
                    PartnerEntity partnerEntity = Utility.GetPartnerInfo(_context, user.USER_ID);
                    partnerEntity.token = token;

                    return(Ok(new Result
                    {
                        Status = 200,
                        Message = string.Empty,
                        Data = partnerEntity
                    }));
                }
                else
                {
                    UserEntity entity = new UserEntity();
                    entity.userId      = user.USER_ID;
                    entity.phoneNumber = user.PHONE_NUMBER;
                    entity.modeDefault = user.MODE_DEFAULT;
                    entity.modeUser    = user.MODE_USER;
                    entity.name        = user.NAME;
                    ImageInfoEntity avatar = new ImageInfoEntity();
                    avatar.path   = user.AVATAR;
                    entity.avatar = avatar;
                    entity.token  = token;

                    M_HIRER_INFO hirer = _context.M_HIRER_INFOS.FirstOrDefault(x => x.USER_ID == entity.userId);

                    entity.userId  = hirer.USER_ID;
                    entity.score   = hirer.SCORE;
                    entity.likeNum = hirer.LIKE_NUM;

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

                return(Ok(new Result
                {
                    Status = 400,
                    Message = ex.Data.ToString(),
                    Data = null
                }));
            }
        }