コード例 #1
0
        public bool ChangeHirerStatus(HirerInfoEntity entity)
        {
            IDbContextTransaction tran = _context.Database.BeginTransaction();

            try
            {
                if (!Utility.CheckUserExists(_context, entity.userId))
                {
                    return(false);
                }

                var query = from d in _context.M_HIRER_INFOS
                            where d.USER_ID == entity.userId
                            select d;

                M_HIRER_INFO hirer = query.Single();
                hirer.STATUS = entity.status;

                _context.SaveChanges();

                // Commit transaction.
                tran.Commit();

                return(true);
            }
            catch
            {
                // Rollback transaction.
                tran.Rollback();
                return(false);
            }
        }
コード例 #2
0
        public ActionResult GetUserByPhone(string id)
        {
            if (!Utility.CheckPhoneExists(_context, id))
            {
                return(Ok(new Result
                {
                    Status = 404,
                    Message = "Data not exists",
                    Data = null
                }));
            }

            // M_USER user = db.M_USER.FirstOrDefault(x => x.PHONE_NUMBER == id && );

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

            M_USER user = query.Single();

            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;

            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
            }));
        }
コード例 #3
0
        public ActionResult GetUser(decimal id, string language)
        {
            if (!Utility.CheckUserExists(_context, id))
            {
                return(Ok(new Result
                {
                    Status = 404,
                    Message = "Data not exists",
                    Data = null
                }));
            }

            if (string.IsNullOrEmpty(language))
            {
                language = Constant.LANGUAGE_VN;
            }

            M_USER     user   = _context.M_USERS.FirstOrDefault(x => x.USER_ID == id);
            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;

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

            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
            }));
        }
コード例 #4
0
        /// <summary>
        /// Get hirer/ company info.
        /// </summary>
        /// <param name="hirerId">Hirer Id.</param>
        /// <returns>Hirer Info Entity</returns>
        public static HirerInfoEntity GetHirerInfo(AloaiDataContext db, decimal hirerId)
        {
            HirerInfoEntity hirerEntity = new HirerInfoEntity();

            // User info.
            var user = from d in db.M_USERS
                       where d.USER_ID == hirerId
                       select d;

            if (user.Any())
            {
                M_USER userEntity = user.Single();
                // Hirer info.
                var hirerInfo = from d in db.M_HIRER_INFOS
                                where d.USER_ID == hirerId
                                select d;

                if (hirerInfo.Any())
                {
                    M_HIRER_INFO info = hirerInfo.Single();

                    hirerEntity.userId  = info.USER_ID;
                    hirerEntity.score   = info.SCORE.Value;
                    hirerEntity.likeNum = info.LIKE_NUM;
                    hirerEntity.status  = info.STATUS;

                    ImageInfoEntity avatar = new ImageInfoEntity();
                    avatar.path        = userEntity.AVATAR;
                    hirerEntity.avatar = avatar;

                    hirerEntity.name        = userEntity.NAME;
                    hirerEntity.phoneNumber = userEntity.PHONE_NUMBER;
                    hirerEntity.token       = userEntity.TOKEN;
                }
            }

            return(hirerEntity);
        }
コード例 #5
0
        public ActionResult GetUser(decimal id)
        {
            if (!Utility.CheckUserExists(_context, id))
            {
                return(Ok(new Result
                {
                    Status = 404,
                    Message = "Data not exists",
                    Data = null
                }));
            }

            M_USER user = _context.M_USERS.FirstOrDefault(x => x.USER_ID == id);

            UserEntity entity = new UserEntity();

            entity.userId      = user.USER_ID;
            entity.phoneNumber = user.PHONE_NUMBER;
            entity.modeUser    = user.MODE_USER;

            UserEntity uEntity = Utility.GetUserInfo(_context, user.USER_ID);

            entity.name   = uEntity.name;
            entity.avatar = uEntity.avatar;
            M_HIRER_INFO hirer = _context.M_HIRER_INFOS.FirstOrDefault(x => x.USER_ID == id);

            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
            }));
        }
コード例 #6
0
        /// <summary>
        /// Update score
        /// </summary>
        /// <param name="db">PartTimeDataClassesDataContext</param>
        /// <param name="exchangeId">Exchange Id</param>
        /// <param name="score">Score</param>
        /// <param name="modeUserEstimation">Mode user estimation</param>
        /// <returns>OK: True; Fail: False</returns>
        public static bool UpdateScore(AloaiDataContext db, decimal contactId, decimal score, decimal modeUserEstimation)
        {
            int     count    = 0;
            decimal scoreAll = 0;

            try
            {
                if (modeUserEstimation == (decimal)Mode.Hirer)
                {
                    var queryWorker = from d in db.V_CONTACT_INFOS
                                      where d.CONTACT_ID == contactId
                                      select d.WORKER_ID;

                    if (!queryWorker.Any())
                    {
                        return(false);
                    }

                    var query = from d in db.D_REVIEWS
                                join c in db.V_CONTACT_INFOS on d.CONTACT_ID equals c.CONTACT_ID
                                where c.WORKER_ID == queryWorker.Single() &&
                                d.REVIEW_MODE_USER == (decimal)Mode.Hirer
                                select d;

                    if (query.Any())
                    {
                        count = query.ToList().Count();

                        var queryScore = (from d in db.D_REVIEWS
                                          join c in db.V_CONTACT_INFOS on d.CONTACT_ID equals c.CONTACT_ID
                                          where c.WORKER_ID == queryWorker.Single() &&
                                          d.REVIEW_MODE_USER == (decimal)Mode.Hirer
                                          select d.SCORE).Sum();

                        scoreAll = queryScore;
                    }

                    var worker = from d in db.M_PARTNER_INFOS
                                 where d.USER_ID == queryWorker.Single()
                                 select d;

                    // Update if exists.
                    if (worker.Any())
                    {
                        M_PARTNER_INFO info = worker.Single();

                        decimal totalScore = scoreAll + score;
                        info.SCORE        = Math.Round(totalScore / (count + 1), 1);
                        info.UPD_DATETIME = GetSysDateTime();
                    }
                    else
                    {
                        M_PARTNER_INFO info = new M_PARTNER_INFO();
                        info.USER_ID = queryWorker.Single();
                        decimal totalScore = scoreAll + score;
                        info.SCORE        = Math.Round(totalScore / (count + 1), 1);
                        info.REG_DATETIME = GetSysDateTime();

                        db.M_PARTNER_INFOS.Add(info);
                    }
                }
                else
                {
                    var queryHirer = from d in db.V_CONTACT_INFOS
                                     where d.CONTACT_ID == contactId
                                     select d.HIRER_ID;

                    if (!queryHirer.Any())
                    {
                        return(false);
                    }

                    var query = from d in db.D_REVIEWS
                                join c in db.V_CONTACT_INFOS on d.CONTACT_ID equals c.CONTACT_ID
                                where c.HIRER_ID == queryHirer.Single() &&
                                d.REVIEW_MODE_USER == (decimal)Mode.Partner
                                select d;

                    if (query.Any())
                    {
                        count = query.ToList().Count();

                        var queryScore = (from d in db.D_REVIEWS
                                          join c in db.V_CONTACT_INFOS on d.CONTACT_ID equals c.CONTACT_ID
                                          where c.HIRER_ID == queryHirer.Single() &&
                                          d.REVIEW_MODE_USER == (decimal)Mode.Partner
                                          select d.SCORE).Sum();

                        scoreAll = queryScore;
                    }

                    var hirer = from d in db.M_HIRER_INFOS
                                where d.USER_ID == queryHirer.Single()
                                select d;

                    // Update if exists.
                    if (hirer.Any())
                    {
                        M_HIRER_INFO info = hirer.Single();

                        decimal totalScore = scoreAll + score;
                        info.SCORE        = Math.Round(totalScore / (count + 1), 1);
                        info.UPD_DATETIME = GetSysDateTime();
                    }
                    else
                    {
                        M_HIRER_INFO info = new M_HIRER_INFO();
                        info.USER_ID = queryHirer.Single();
                        decimal totalScore = scoreAll + score;
                        info.SCORE        = Math.Round(totalScore / (count + 1), 1);
                        info.REG_DATETIME = GetSysDateTime();

                        db.M_HIRER_INFOS.Add(info);
                    }
                }
            }
            catch (Exception ex)
            {
                return(false);
            }

            return(true);
        }
コード例 #7
0
        public ActionResult UpdateUserInfo([FromBody] UserEntity userEntity)
        {
            IDbContextTransaction tran = _context.Database.BeginTransaction();

            try
            {
                var query = from d in _context.M_USERS
                            where d.USER_ID == userEntity.userId &&
                            d.DELETE_FLG == 0 &&
                            d.BLOCK_FLG == 0
                            select d;

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

                    _context.SaveChanges();

                    var query1 = from d in _context.M_PARTNER_INFOS
                                 where d.USER_ID == userEntity.userId
                                 select d;

                    if (userEntity.modeUser == (int)Mode.Partner)
                    {
                        M_PARTNER_INFO worker = query1.Single();
                        worker.USER_ID      = query.FirstOrDefault().USER_ID;
                        worker.SCORE        = 0;
                        worker.STATUS       = (int)Status.Offline;
                        worker.REG_DATETIME = Utility.GetSysDateTime();
                        _context.SaveChanges();
                    }
                    else
                    {
                        var query2 = from d in _context.M_HIRER_INFOS
                                     where d.USER_ID == userEntity.userId
                                     select d;

                        M_HIRER_INFO hirer = query2.Single();
                        hirer.USER_ID      = query.FirstOrDefault().USER_ID;
                        hirer.SCORE        = 0;
                        hirer.STATUS       = (int)Status.Offline;
                        hirer.REG_DATETIME = Utility.GetSysDateTime();
                        _context.SaveChanges();
                    }

                    var queryUser = from d in _context.M_USERS
                                    where d.USER_ID == userEntity.userId &&
                                    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 (user.MODE_USER == (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
                        }));
                    }
                }
                else
                {
                    return(Ok(new Result
                    {
                        Status = 404,
                        Message = string.Empty,
                        Data = null
                    }));
                }
            }
            catch (Exception ex)
            {
                // Rollback transaction.
                tran.Rollback();
                return(Ok(new Result
                {
                    Status = 404,
                    Message = "Error system!",
                    Data = null
                }));
            }
        }
コード例 #8
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
                }));
            }
        }