示例#1
0
        /// <summary>
        /// Get image info list.
        /// </summary>
        /// <param name="db">DataContext</param>
        /// <param name="objectId">Object ID</param>
        /// <param name="objectType">Object type</param>
        /// <returns>List image info entity</returns>
        public static List <ImageInfoEntity> GetImageList(AloaiDataContext db, decimal objectId, ImageType objectType)
        {
            List <ImageInfoEntity> imageInfoEntity = new List <ImageInfoEntity>();


            var query = from d in db.M_IMAGE_DETAILS
                        where d.OBJECT_ID == objectId &&
                        d.OBJECT_TYPE == (int)objectType
                        select d;

            // Delete image not used.
            if (query.Any())
            {
                List <M_IMAGE_DETAIL> list = query.ToList();

                foreach (M_IMAGE_DETAIL del in list)
                {
                    ImageInfoEntity entity = new ImageInfoEntity();
                    //entity.image = del.IMAGE_NAME;
                    entity.path = del.IMAGE_PATH;

                    imageInfoEntity.Add(entity);
                }
            }

            return(imageInfoEntity);
        }
示例#2
0
        /// <summary>
        /// Get user info/ company info.
        /// </summary>
        /// <param name="userId">User Id.</param>
        /// <returns>user info/ company info.</returns>
        public static UserEntity GetUserInfo(AloaiDataContext db, decimal?userId)
        {
            UserEntity userInfo = new UserEntity();

            if (!userId.HasValue)
            {
                return(userInfo);
            }

            var user = from d in db.M_USERS
                       where d.USER_ID == userId.Value
                       select d;

            if (!user.Any())
            {
                return(userInfo);
            }

            M_USER mUser = user.Single();

            userInfo.name = mUser.NAME;

            ImageInfoEntity avatar = new ImageInfoEntity();

            avatar.path     = mUser.AVATAR;
            userInfo.avatar = avatar;

            return(userInfo);
        }
示例#3
0
        /// <summary>
        /// Update user/ company infomation.
        /// </summary>
        /// <param name="db">DataContext.</param>
        /// <param name="userEntity">User entity</param>
        /// <returns>Ok: true, Fail: false</returns>
        public static bool UpdateUser(AloaiDataContext db, UserEntity userEntity)
        {
            var query = from d in db.M_USERS
                        where d.USER_ID == userEntity.userId
                        select d;

            M_USER user = query.Single();

            user.PHONE_NUMBER = userEntity.phoneNumber;
            user.NAME         = userEntity.name;

            if (userEntity.avatar != null)
            {
                string avartaPath = string.Empty;

                if (Utility.UploadAvatar(db, userEntity.userId, userEntity.avatar, userEntity.avatar.path, out avartaPath))
                {
                    user.AVATAR = avartaPath;
                }
            }

            user.MODE_DEFAULT = userEntity.modeDefault;
            user.UPD_DATETIME = Utility.GetSysDateTime();

            List <T_PARTNER_CATALOG_UNIT> workerList = new List <T_PARTNER_CATALOG_UNIT>();

            db.SaveChanges();

            return(true);
        }
示例#4
0
        /// <summary>
        /// Remove image in hosting.
        /// </summary>
        /// <param name="db">DataContext</param>
        /// <param name="objectId">Object ID</param>
        /// <param name="objectType">Object type</param>
        /// <returns>Ok: true, Fail: false</returns>
        public static bool RemoveImage(AloaiDataContext db, decimal objectId, ImageType objectType)
        {
            var delQuery = from d in db.M_IMAGE_DETAILS
                           where d.OBJECT_ID == objectId &&
                           d.OBJECT_TYPE == (int)objectType
                           select d;

            // Delete image not used.
            if (delQuery.Any())
            {
                List <M_IMAGE_DETAIL> list = delQuery.ToList();

                foreach (M_IMAGE_DETAIL del in list)
                {
                    string path     = $"Upload/";
                    string fileName = Path.GetFileName(del.IMAGE_PATH);

                    string directoryName = AppDomain.CurrentDomain.BaseDirectory + path;
                    string ext           = Path.GetExtension(del.IMAGE_PATH);

                    fileName = System.IO.Path.Combine(directoryName, fileName) + ext;

                    // Check if file exists with its full path
                    if (File.Exists(fileName))
                    {
                        // If file found, delete it.
                        File.Delete(fileName);
                    }

                    db.M_IMAGE_DETAILS.Remove(del);
                }
            }

            return(true);
        }
示例#5
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 bool UpdateScore(AloaiDataContext db, decimal contactId, decimal score, decimal modeUserEstimation)
        {
            if (modeUserEstimation == (decimal)Mode.Hirer)
            {
                var queryWorker = from d in db.V_CONTACT_INFOS
                                  where d.CONTACT_ID == contactId
                                  select d.WORKER_ID;

                // Account is company.
                if (queryWorker.Any())
                {
                    if (!Utility.UpdateScore(db, contactId, score, modeUserEstimation))
                    {
                        return(false);
                    }
                }
            }
            else
            {
                var queryHirer = from d in db.V_CONTACT_INFOS
                                 where d.CONTACT_ID == contactId
                                 select d.HIRER_ID;

                // Account is company.
                if (queryHirer.Any())
                {
                    if (!Utility.UpdateScore(db, contactId, score, modeUserEstimation))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
示例#6
0
        /// <summary>
        /// Get worker catalog list.
        /// </summary>
        /// <param name="userId">User Id.</param>
        /// <returns>List WorkerEntity</returns>
        public static List <PartnerCatalogEntity> GetWorkerList(AloaiDataContext db, decimal userId)
        {
            List <PartnerCatalogEntity> workerEntityList = new List <PartnerCatalogEntity>();

            var user = from d in db.M_USERS
                       where d.USER_ID == userId
                       select d;

            if (!user.Any())
            {
                return(workerEntityList);
            }

            var query3 = from d in db.V_PARTNERS
                         where d.USER_ID == userId
                         select d;

            if (query3.Any())
            {
                foreach (V_PARTNER worker in query3.ToList())
                {
                    PartnerCatalogEntity wkEntity = new PartnerCatalogEntity();
                    wkEntity.userId = worker.USER_ID;

                    Catalog catalog = new Catalog();
                    catalog.catalogCd = worker.CATALOG_CD;
                    wkEntity.cost     = worker.COST;

                    Unit unit = new Unit();
                    unit.unitCd = worker.UNIT_CD;

                    string languageType = user.Single().LANGUAGE_TYPE;

                    if (string.IsNullOrEmpty(languageType) || languageType.Equals(Constant.LANGUAGE_VN))
                    {
                        catalog.catalogName = worker.CATALOG_NAME;
                        unit.unitName       = worker.UNIT_NAME;
                    }
                    else
                    {
                        catalog.catalogName = worker.CATALOG_NAME_EN;
                        unit.unitName       = worker.UNIT_NAME_EN;
                    }

                    wkEntity.catalog = catalog;
                    wkEntity.unit    = unit;
                    workerEntityList.Add(wkEntity);
                }
            }

            return(workerEntityList);
        }
示例#7
0
        /// <summary>
        /// Check user exists.
        /// </summary>
        /// <param name="userId">User ID</param>
        /// <returns>Exists: true, Not Exists: fale</returns>
        public static bool CheckUserExists(AloaiDataContext db, decimal userId)
        {
            var query = from d in db.M_USERS
                        where d.USER_ID == userId
                        select d;

            if (query.Any())
            {
                return(true);
            }

            return(false);
        }
示例#8
0
        /// <summary>
        /// Check Phone exists.
        /// </summary>
        /// <param name="phoneNumber">Phone number</param>
        /// <returns>Exists: true, Not Exists: false</returns>
        public static bool CheckPhoneExists(AloaiDataContext db, string phoneNumber)
        {
            var query = from d in db.M_USERS
                        where d.PHONE_NUMBER == phoneNumber &&
                        d.DELETE_FLG == 0
                        select d;

            if (query.Any())
            {
                return(true);
            }

            return(false);
        }
示例#9
0
        //Method used to Get User details will be used by
        //Authentication Provider class in Steps below
        /// <summary>
        /// Check token
        /// </summary>
        /// <param name="userId">user Id</param>
        /// <param name="token">Token string</param>
        /// <returns>Ok: true, Fail: false</returns>
        public bool CheckToken(AloaiDataContext context, string userId, string token)
        {
            var query = from d in context.M_USERS
                        where d.USER_ID == Convert.ToDecimal(userId) &&
                        d.TOKEN == token
                        select d;

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

            return(true);
        }
示例#10
0
        /// <summary>
        /// Get user avatar/ company logo.
        /// </summary>
        /// <param name="userId">User Id.</param>
        /// <returns>Avatar</returns>
        public static string GetUserAvatar(AloaiDataContext db, decimal userId)
        {
            String avatar = string.Empty;

            var user = from d in db.M_USERS
                       where d.USER_ID == userId
                       select d;

            if (!user.Any())
            {
                return(avatar);
            }

            avatar = user.Single().AVATAR;

            return(avatar);
        }
示例#11
0
        /// <summary>
        /// Get user name/ company name.
        /// </summary>
        /// <param name="userId">User Id.</param>
        /// <returns>Name</returns>
        public static string GetUserName(AloaiDataContext db, decimal userId)
        {
            String name = string.Empty;

            var user = from d in db.M_USERS
                       where d.USER_ID == userId
                       select d;

            if (!user.Any())
            {
                return(name);
            }

            name = user.Single().NAME;

            return(name);
        }
示例#12
0
        /// <summary>
        /// Update token
        /// </summary>
        /// <param name="userId">user Id</param>
        /// <param name="token">Token string</param>
        /// <returns>Ok: true, Fail: false</returns>
        public bool UpdateToken(AloaiDataContext context, decimal userId, string token)
        {
            var query = from d in context.M_USERS
                        where d.USER_ID == userId
                        select d;

            if (query.Any())
            {
                M_USER user = query.Single();
                user.TOKEN        = token;
                user.UPD_DATETIME = Utility.GetSysDateTime();
                context.SaveChanges();

                return(true);
            }

            return(false);
        }
示例#13
0
        /// <summary>
        /// Get worker/ company info.
        /// </summary>
        /// <param name="workerId">Worker Id.</param>
        /// <returns>Worker Info Entity</returns>
        public static PartnerInfoEntity GetWorkerInfo(AloaiDataContext db, decimal workerId)
        {
            PartnerInfoEntity workerEntity = new PartnerInfoEntity();

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

            if (user.Any())
            {
                // Worker info.
                var workerInfo = from d in db.M_PARTNER_INFOS
                                 where d.USER_ID == workerId
                                 select d;

                if (workerInfo.Any())
                {
                    M_PARTNER_INFO info = workerInfo.Single();

                    workerEntity.userId         = info.USER_ID;
                    workerEntity.score          = info.SCORE.Value;
                    workerEntity.introduce      = info.INTRODUCE;
                    workerEntity.fitLocationFlg = info.FIX_LOCATION_FLG;

                    Location loc = new Location();
                    loc.longitude = info.LONGITUDE;
                    loc.latitude  = info.LATITUDE;
                    loc.address   = info.ADDRESS;

                    workerEntity.location       = loc;
                    workerEntity.verifyFlg      = info.VERIFY_FLG;
                    workerEntity.verifyDate     = info.VERIFY_DATE;
                    workerEntity.verifyDateFrom = info.VERIFY_DATE_FROM;
                    workerEntity.verifyDateTo   = info.VERIFY_DATE_TO;
                    workerEntity.likeNum        = info.LIKE_NUM;
                    workerEntity.status         = info.STATUS;
                    workerEntity.regDatetime    = info.REG_DATETIME;
                    workerEntity.updDatetime    = info.UPD_DATETIME;
                }
            }

            return(workerEntity);
        }
示例#14
0
        /// <summary>
        /// Get system message info.
        /// </summary>
        /// <param name="languageType">Language type</param>
        /// <param name="cd">Message cd</param>
        /// <returns></returns>
        public static SystemMessageEntity GetSystemMessageInfo(AloaiDataContext db, string languageType, decimal cd)
        {
            var query = from d in db.M_SYSTEM_MESSAGES
                        where d.LANGUAGE_TYPE.Equals(languageType) &&
                        d.MESSAGE_CD == cd
                        select d;

            SystemMessageEntity entity = new SystemMessageEntity();

            if (query.Any())
            {
                M_SYSTEM_MESSAGE mess = query.Single();
                entity.messageId      = mess.MESSAGE_ID;
                entity.messageCd      = mess.MESSAGE_CD;
                entity.languageType   = mess.LANGUAGE_TYPE;
                entity.message        = mess.MESSAGE;
                entity.messageContent = mess.MESSAGE_CONTENT;
            }

            return(entity);
        }
示例#15
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);
        }
示例#16
0
        /// <summary>
        /// Get catalog name.
        /// </summary>
        /// <param name="languageType">Language type</param>
        /// <param name="cd">Catalog cd</param>
        /// <returns></returns>
        public static string GetCatalogName(AloaiDataContext db, string languageType, decimal?cd)
        {
            string name = string.Empty;

            var query = from d in db.M_CATALOGS
                        where d.CATALOG_CD == cd
                        select d;

            if (query.Any())
            {
                M_CATALOG catalog = query.Single();

                if (string.IsNullOrEmpty(languageType) || languageType.Equals(Constant.LANGUAGE_VN))
                {
                    name = catalog.CATALOG_NAME;
                }
                else
                {
                    name = catalog.CATALOG_NAME_EN;
                }
            }

            return(name);
        }
示例#17
0
        /// <summary>
        /// Get unit name.
        /// </summary>
        /// <param name="languageType">Language type</param>
        /// <param name="cd">Unit cd</param>
        /// <returns></returns>
        public static string GetUnitName(AloaiDataContext db, string languageType, decimal?cd)
        {
            string name = string.Empty;

            var query = from d in db.M_UNITS
                        where d.UNIT_CD == cd
                        select d;

            if (query.Any())
            {
                M_UNIT unit = query.Single();

                if (string.IsNullOrEmpty(languageType) || languageType.Equals(Constant.LANGUAGE_VN))
                {
                    name = unit.UNIT_NAME;
                }
                else
                {
                    name = unit.UNIT_NAME_EN;
                }
            }

            return(name);
        }
示例#18
0
 public JobController(AloaiDataContext context)
 {
     _context = context;
 }
示例#19
0
 public QuestionController(AloaiDataContext context)
 {
     _context = context;
 }
示例#20
0
        public static PartnerEntity GetPartnerInfo(AloaiDataContext db, decimal userId)
        {
            PartnerEntity partnerEntity = null;

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

            if (user.Any())
            {
                partnerEntity = new PartnerEntity();
                M_USER userEntity = user.Single();

                partnerEntity.phoneNumber = userEntity.PHONE_NUMBER;
                partnerEntity.name        = userEntity.NAME;

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

                // Hirer info.
                var hirerInfo = from d in db.M_PARTNER_INFOS
                                where d.USER_ID == userId
                                select d;

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

                    partnerEntity.userId         = info.USER_ID;
                    partnerEntity.introduce      = info.INTRODUCE;
                    partnerEntity.fixLocationFlg = info.FIX_LOCATION_FLG == 1 ? true : false;

                    Location location = new Location();
                    location.longitude      = info.LONGITUDE;
                    location.latitude       = info.LATITUDE;
                    location.address        = info.ADDRESS;
                    partnerEntity.location  = location;
                    partnerEntity.verifyFlg = info.VERIFY_FLG == 1 ? true : false;
                    partnerEntity.likeNum   = info.LIKE_NUM;
                    partnerEntity.score     = info.SCORE;
                }

                var catalogUnit = from d in db.V_PARTNERS
                                  where d.USER_ID == userId
                                  select d;

                if (catalogUnit.Any())
                {
                    partnerEntity.partnerCatalog = new PartnerCatalogEntity();

                    foreach (V_PARTNER catalog in catalogUnit.ToList())
                    {
                        partnerEntity.partnerCatalog.userId = catalog.USER_ID;

                        Catalog cal = new Catalog();
                        cal.catalogCd = catalog.CATALOG_CD;
                        Unit unit = new Unit();
                        unit.unitCd = catalog.UNIT_CD;

                        string languageType = user.Single().LANGUAGE_TYPE;

                        if (string.IsNullOrEmpty(languageType) || languageType.Equals(Constant.LANGUAGE_VN))
                        {
                            cal.catalogName = catalog.CATALOG_NAME;
                            unit.unitName   = catalog.UNIT_NAME;
                        }
                        else
                        {
                            cal.catalogName = catalog.CATALOG_NAME_EN;
                            unit.unitName   = catalog.UNIT_NAME_EN;
                        }

                        partnerEntity.partnerCatalog.catalog = cal;
                        partnerEntity.partnerCatalog.unit    = unit;
                        partnerEntity.partnerCatalog.cost    = catalog.COST;
                        break;
                    }
                }

                partnerEntity.imageInfoList = GetImageList(db, partnerEntity.userId, ImageType.Profile);
            }

            return(partnerEntity);
        }
示例#21
0
 public CommonController(AloaiDataContext context)
 {
     _context = context;
 }
示例#22
0
 public ContactController(AloaiDataContext context)
 {
     _context = context;
 }
示例#23
0
 public EstimationController(AloaiDataContext context)
 {
     _context = context;
 }
示例#24
0
 public PartnerController(AloaiDataContext context)
 {
     _context = context;
 }
示例#25
0
 public UnitController(AloaiDataContext context)
 {
     _context = context;
 }
示例#26
0
 public LoginController(AloaiDataContext context)
 {
     _context = context;
 }
示例#27
0
        /// <summary>
        /// Upload image to hosting.
        /// </summary>
        /// <param name="db">DataContext</param>
        /// <param name="objectId">Object ID</param>
        /// <param name="objectType">Object type</param>
        /// <param name="imageInfoEntity">Image info entity</param>
        /// <returns>Ok: true, Fail: false</returns>
        public static bool UploadAvatar(AloaiDataContext db, decimal objectId, ImageInfoEntity avatar, string imagePath, out string avartaPath)
        {
            ImageType objectType = ImageType.Avatar;

            avartaPath = avatar.path;

            if (avatar != null && !string.IsNullOrEmpty(avatar.path))
            {
                string path     = $"Upload/";
                string fileName = Path.GetFileName(avatar.path);

                string directoryName = AppDomain.CurrentDomain.BaseDirectory + path;
                string ext           = Path.GetExtension(avatar.path);

                fileName = System.IO.Path.Combine(directoryName, fileName) + ext;

                if (File.Exists(fileName))
                {
                    var delQuery = from d in db.M_IMAGE_DETAILS
                                   where d.OBJECT_ID == objectId &&
                                   d.OBJECT_TYPE == (int)objectType
                                   select d;

                    // Delete image not used.
                    if (delQuery.Any())
                    {
                        M_IMAGE_DETAIL list = delQuery.Single();

                        if (avatar.path == list.IMAGE_PATH)
                        {
                            return(true);
                        }

                        // Check if file exists with its full path
                        if (File.Exists(list.IMAGE_PATH))
                        {
                            // If file found, delete it.
                            File.Delete(list.IMAGE_PATH);
                        }

                        db.M_IMAGE_DETAILS.Remove(list);
                    }

                    if (avatar.image != null)
                    {
                        var thisFileName = Path.GetFileName(avatar.path.Trim('\"'));

                        M_IMAGE_DETAIL image = new M_IMAGE_DETAIL();
                        image.OBJECT_ID   = objectId;
                        image.OBJECT_TYPE = (int)objectType;
                        image.ROW_NO      = 1;
                        image.IMAGE_NAME  = Path.GetFileName(thisFileName);
                        image.IMAGE_PATH  = avatar.path;
                        avartaPath        = avatar.path;
                        db.M_IMAGE_DETAILS.Add(image);
                    }

                    db.SaveChanges();
                }
            }

            return(true);
        }
示例#28
0
        /// <summary>
        /// Upload image to hosting.
        /// </summary>
        /// <param name="db">DataContext</param>
        /// <param name="objectId">Object ID</param>
        /// <param name="objectType">Object type</param>
        /// <param name="imageInfoEntity">Image info entity</param>
        /// <returns>Ok: true, Fail: false</returns>
        public static bool UploadImage(AloaiDataContext db, decimal objectId, ImageType objectType, List <ImageInfoEntity> imageInfoEntity)
        {
            if (imageInfoEntity == null || imageInfoEntity.Count == 0)
            {
                if (!RemoveImage(db, objectId, objectType))
                {
                    return(false);
                }

                return(true);
            }

            int index = 0;

            var delQuery = from d in db.M_IMAGE_DETAILS
                           where d.OBJECT_ID == objectId &&
                           d.OBJECT_TYPE == (int)objectType
                           select d;

            // Delete image not used.
            if (delQuery.Any())
            {
                List <M_IMAGE_DETAIL> list = delQuery.ToList();

                foreach (M_IMAGE_DETAIL del in list)
                {
                    var exists = from d in imageInfoEntity
                                 where Path.GetFileName(d.path.Trim('\"')) == del.IMAGE_NAME
                                 select d;

                    if (!exists.Any())
                    {
                        string path     = $"Upload/";
                        string fileName = Path.GetFileName(del.IMAGE_PATH);

                        string directoryName = AppDomain.CurrentDomain.BaseDirectory + path;
                        string ext           = Path.GetExtension(del.IMAGE_PATH);

                        fileName = System.IO.Path.Combine(directoryName, fileName) + ext;

                        // Check if file exists with its full path
                        if (File.Exists(fileName))
                        {
                            // If file found, delete it.
                            File.Delete(fileName);
                        }
                    }

                    db.M_IMAGE_DETAILS.Remove(del);
                }
            }

            foreach (ImageInfoEntity imageInfo in imageInfoEntity)
            {
                if (!string.IsNullOrEmpty(imageInfo.path))
                {
                    continue;
                }

                index++;
                var thisFileName = Path.GetFileName(imageInfo.path.Trim('\"'));

                M_IMAGE_DETAIL image = new M_IMAGE_DETAIL();
                image.OBJECT_ID   = objectId;
                image.OBJECT_TYPE = (int)objectType;
                image.ROW_NO      = index;
                image.IMAGE_NAME  = Path.GetFileName(imageInfo.path);
                image.IMAGE_PATH  = imageInfo.path;

                db.M_IMAGE_DETAILS.Add(image);
            }

            db.SaveChanges();
            return(true);
        }
示例#29
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);
        }
示例#30
0
        /// <summary>
        /// Insert notify.
        /// </summary>
        /// <param name="db">PartTimeDataClassesDataContext</param>
        /// <param name="notifyType">Notify type</param>
        /// <param name="id">Object ID</param>
        /// <param name="userSendId">User send ID</param>
        /// <param name="userReceiveId">User receive ID</param>
        /// <param name="receiveModeUser">Receive mode user</param>
        /// <returns>Success: True; Fail: False</returns>
        public static bool InsertNotify(AloaiDataContext db, decimal notifyType, decimal id, decimal userSendId
                                        , decimal userReceiveId, decimal receiveModeUser)
        {
            try
            {
                string senderName = string.Empty;

                // Check User receive notify leaved company but job is exists.
                // If true is not receive notify.
                if (notifyType != (int)NotifyType.System)
                {
                    var queryUser = from d in db.M_USERS
                                    where d.USER_ID == userReceiveId
                                    select d;

                    if (!queryUser.Any())
                    {
                        return(true);
                    }

                    var queryExchange = from d in db.V_CONTACT_INFOS
                                        where d.CONTACT_ID == id
                                        select d;

                    if (!queryExchange.Any())
                    {
                        return(true);
                    }
                }

                D_NOTIFY notify = new D_NOTIFY();
                notify.NOTIFY_TYPE       = notifyType;
                notify.OBJECT_ID         = id;
                notify.USER_SEND_ID      = userSendId;
                notify.USER_RECIEVE_ID   = userReceiveId;
                notify.RECEIVE_MODE_USER = receiveModeUser;
                notify.READED_FLG        = (int)ReadedFlg.New;
                notify.REG_DATETIME      = GetSysDateTime();
                notify.NOTIFY_DATE       = GetSysDateTime();
                notify.CONTENT           = string.Empty;

                var query = from d in db.M_USERS
                            where d.USER_ID == userSendId
                            select d;

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

                M_USER user = query.Single();

                notify.CONTENT = user.NAME;

                db.D_NOTIFYS.Add(notify);
                db.SaveChanges();
            }
            catch
            {
                return(false);
            }

            return(true);
        }