public bool ChangeWorkerStatus(PartnerInfoEntity entity) { IDbContextTransaction tran = _context.Database.BeginTransaction(); try { if (!Utility.CheckUserExists(_context, entity.userId)) { return(false); } var query = from d in _context.M_PARTNER_INFOS where d.USER_ID == entity.userId select d; M_PARTNER_INFO user = query.Single(); user.STATUS = entity.status; _context.SaveChanges(); // Commit transaction. tran.Commit(); return(true); } catch { // Rollback transaction. tran.Rollback(); return(false); } }
/// <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); }
public ActionResult UpdateFixLocation(decimal userId, decimal fixLocationFlg) { using (IDbContextTransaction tran = _context.Database.BeginTransaction()) { try { var queryPartner = from d in _context.M_PARTNER_INFOS where d.USER_ID == userId select d; if (queryPartner.Any()) { M_PARTNER_INFO partner = queryPartner.Single(); partner.FIX_LOCATION_FLG = fixLocationFlg; partner.UPD_DATETIME = Utility.GetSysDateTime(); _context.SaveChanges(); tran.Commit(); } return(Ok(new Result { Status = 200, Message = string.Empty, Data = true })); } catch (Exception) { tran.Rollback(); } } return(Ok(new Result { Status = 404, Message = string.Empty, Data = false })); }
/// <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); }
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); }
/// <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 UpdatePartner(AloaiDataContext db, PartnerEntity partnerEntity) { var query = from d in db.M_USERS where d.USER_ID == partnerEntity.userId select d; M_USER user = query.Single(); //user.PHONE_NUMBER = partnerEntity.PhoneNumber; user.NAME = partnerEntity.name; if (partnerEntity.avatar != null && !string.IsNullOrEmpty(partnerEntity.avatar.path)) { string avartaPath; if (Utility.UploadAvatar(db, partnerEntity.userId, partnerEntity.avatar, partnerEntity.avatar.path, out avartaPath)) { user.AVATAR = avartaPath; } } user.UPD_DATETIME = Utility.GetSysDateTime(); db.SaveChanges(); var queryPartner = from d in db.M_PARTNER_INFOS where d.USER_ID == partnerEntity.userId select d; if (queryPartner.Any()) { M_PARTNER_INFO partner = queryPartner.Single(); partner.INTRODUCE = partnerEntity.introduce; partner.FIX_LOCATION_FLG = partnerEntity.fixLocationFlg ? 1 : 0; if (partnerEntity.fixLocationFlg) { partner.LONGITUDE = partnerEntity.location.longitude; partner.LATITUDE = partnerEntity.location.latitude; partner.ADDRESS = partnerEntity.location.address; } else { partner.LONGITUDE = string.Empty; partner.LATITUDE = string.Empty; partner.ADDRESS = string.Empty; } partner.UPD_DATETIME = Utility.GetSysDateTime(); db.SaveChanges(); } var queryDel = from d in db.T_PARTNER_CATALOG_UNITS where d.USER_ID == partnerEntity.userId select d; if (queryDel.Any()) { db.T_PARTNER_CATALOG_UNITS.RemoveRange(queryDel.ToList()); db.SaveChanges(); } if (partnerEntity.partnerCatalog != null) { T_PARTNER_CATALOG_UNIT worker = new T_PARTNER_CATALOG_UNIT(); worker.USER_ID = partnerEntity.userId; worker.CATALOG_CD = partnerEntity.partnerCatalog.catalog.catalogCd; worker.COST = partnerEntity.partnerCatalog.cost; worker.UNIT_CD = partnerEntity.partnerCatalog.unit.unitCd; worker.REG_DATETIME = Utility.GetSysDateTime(); db.T_PARTNER_CATALOG_UNITS.Add(worker); db.SaveChanges(); } UploadImage(db, partnerEntity.userId, ImageType.Profile, partnerEntity.imageInfoList); return(true); }
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 })); } }
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 })); } }