public static ImageInfoEntity GetEXIF(string filePath) { var er = new ExifReader(filePath); var fileName = new FileInfo(filePath).Name; Double[] longitude, latitude; DateTime date; er.GetTagValue <Double[]>(ExifTags.GPSLongitude, out longitude); er.GetTagValue <Double[]>(ExifTags.GPSLatitude, out latitude); er.GetTagValue <DateTime>(ExifTags.DateTime, out date); var strLongitude = longitudeTrans(longitude); var strLatitude = longitudeTrans(latitude); var imageInfo = new ImageInfoEntity() { FileName = fileName, Date = date, //Lantitude = strLatitude, //Longitude = strLongitude, Province = "四川省", City = "成都市", UploaderName = "thw", //Rate = (float)(rand.Next(5)+0.1*rand.Next(10)) }; return(imageInfo); }
public ImageInfoEntity AddImageInfo(ImageInfoInputModel imageInfo, string freeUrl, string freeSuccess) { // checking if something went wrong in email sending process bool ok = true; bool emailSent = false; if (freeSuccess.ToLower() == "sent") { emailSent = true; } else { ok = false; } // Create the entity to add to the database. ImageInfoEntity newEnt = new ImageInfoEntity() { imageGUID = imageInfo.imageGUID, email = imageInfo.email, timeStamp = imageInfo.timeStamp, hasFreeEmailBeenSent = emailSent, hasPremiumEmailBeenSent = false, success = ok, hasImageBeenBought = false, premiumUrl = imageInfo.Url, freeUrl = freeUrl }; _context.imageInfo.Add(newEnt); _context.SaveChanges(); return(newEnt); }
public async Task RegisterImagePurchase(ImageInfoEntity imgInfo, string success) { try { var entity = _context.imageInfo.FirstOrDefault(item => item.ID == imgInfo.ID); // checking if something went wrong in email sending process bool ok = true; bool emailSent = false; if (success.ToLower() == "sent") { emailSent = true; } else { ok = false; } entity.hasImageBeenBought = true; entity.hasPremiumEmailBeenSent = emailSent; entity.success = ok; _context.imageInfo.Update(entity); await _context.SaveChangesAsync(); } catch (Exception ex) { Debug.WriteLine(ex.Message); } }
public ActionResult GetUserList() { List <M_USER> userList = _context.M_USERS.ToList(); List <UserEntity> list = new List <UserEntity>(); foreach (M_USER user in userList) { UserEntity entity = new UserEntity(); entity.userId = user.USER_ID; entity.phoneNumber = user.PHONE_NUMBER; entity.modeUser = user.MODE_USER; entity.name = user.NAME; ImageInfoEntity avatar = new ImageInfoEntity(); avatar.path = user.AVATAR; entity.avatar = avatar; list.Add(entity); } JavaScriptSerializer jon = new JavaScriptSerializer(); return(Ok(new Result { Status = 200, Message = string.Empty, Data = list })); }
/// <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); }
/// <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); }
// Called when a user buys an image, sends premium email, saves in the database that // the image has been bought, if the premium email got sent, and if everything worked in the process. public async Task <string> RegisterImagePurchase(string premiumCode) { ImageInfoEntity imgInfo = _imageRepository.GetImageInfoByGUID(premiumCode); var success = await _emailService.SendPremiumEmailWithTemplate(imgInfo); await _imageRepository.RegisterImagePurchase(imgInfo, success); return(success); }
public ActionResult GetJobInfo([FromRoute] decimal jobId) { V_JobEntity entity = null; var query = from d in _context.V_JOBS where d.JOB_ID == jobId select d; if (query.Any()) { V_JOB job = query.Single(); entity = new V_JobEntity(); entity.jobId = job.JOB_ID; entity.userId = job.USER_ID; entity.phoneNumber = job.PHONE_NUMBER; ImageInfoEntity avatar = new ImageInfoEntity(); avatar.path = job.AVATAR; entity.avatar = avatar; entity.score = job.SCORE; entity.likeNum = job.LIKE_NUM; TemplateEntity template = new TemplateEntity(); template.templateCd = job.TEMPLATE_CD; template.templateTitle = job.TEMPLATE_TITLE; entity.template = template; Location loc = new Location(); loc.latitude = job.LATITUDE; loc.longitude = job.LONGITUDE; entity.location = loc; Catalog catalog = new Catalog(); catalog.catalogCd = job.CATALOG_CD; catalog.catalogName = job.CATALOG_NAME; entity.catalog = catalog; entity.dateTime = job.UPD_DATETIME.HasValue ? job.UPD_DATETIME.Value : job.REG_DATETIME; return(Ok(new Result { Status = 200, Message = string.Empty, Data = entity })); } return(Ok(new Result { Status = 404, Message = "Data not exists.", Data = null })); }
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 })); }
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 })); }
public ActionResult UploadImage() { try { List <ImageInfoEntity> pathList = new List <ImageInfoEntity>(); string avartaPath = string.Empty; var files = Request.Form.Files; if (files != null && files != null && files.Count > 0) { foreach (IFormFile file in files) { if (Utility.UploadImage(file, out avartaPath)) { ImageInfoEntity image = new ImageInfoEntity(); image.path = avartaPath; pathList.Add(image); } } } return(Ok(new Result { Status = 200, Message = string.Empty, Data = pathList })); } catch { // Rollback transaction. } return(Ok(new Result { Status = 404, Message = string.Empty, Data = null })); }
/// <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); }
public async Task <string> SendPremiumEmailWithTemplate(ImageInfoEntity imageInfo) { // populate the MailChimp merge tags. Dictionary <string, string> dict = new Dictionary <string, string>() { { "IMAGEURL", imageInfo.premiumUrl }, { "CURRENT_YEAR", "2019" }, { "COMPANY", "Selfie Station" } }; //EmailAddress to send to EmailAddress address = new EmailAddress(); address.Type = "to"; address.Email = imageInfo.email; //Adding email address to list List <EmailAddress> toEmail = new List <EmailAddress>(); toEmail.Add(address); //Creating the email to send. EmailMessage emailMsg = new EmailMessage(); emailMsg.FromName = "Selfie Station"; emailMsg.FromEmail = "*****@*****.**"; emailMsg.To = toEmail; emailMsg.Subject = "Your Premium Selfie Station Photo"; // send with template string template = "SelfieStationPremiumImgTag"; var success = await SendEmail(emailMsg, address, dict, template); return(success); }
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); }
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 })); } }
public ActionResult GetJobByHirer([FromRoute] decimal userId) { double second = double.Parse(Utility.GetDefineValue(Constant.TIMER_CANCEL_JOB).value); List <V_JobEntity> entityList = new List <V_JobEntity>(); //string language = "vi"; //var hirerInfo = from d in _context.M_USERS // where d.USER_ID == userId // select d; //if (!hirerInfo.Any()) //{ // return Ok(new Result // { // Status = 404, // Message = "Data not exists.", // Data = null // }); //} //M_USER user = hirerInfo.Single(); //language = user.LANGUAGE_TYPE; var query = from d in _context.V_JOBS where d.USER_ID == userId && d.CANCEL_FLG == 0 select d; DateTime date = Utility.GetSysDateTime(); if (query.Any()) { foreach (V_JOB job in query.ToList()) { if ((job.UPD_DATETIME.HasValue && DateTime.Compare(job.UPD_DATETIME.Value.AddSeconds(second), date) >= 0) || (!job.UPD_DATETIME.HasValue && DateTime.Compare(job.REG_DATETIME.AddSeconds(second), date) >= 0)) { job.CANCEL_FLG = 1; _context.SaveChanges(); continue; } V_JobEntity entity = new V_JobEntity(); entity.jobId = job.JOB_ID; entity.userId = job.USER_ID; entity.userName = job.NAME; entity.phoneNumber = job.PHONE_NUMBER; ImageInfoEntity avatar = new ImageInfoEntity(); avatar.path = job.AVATAR; entity.avatar = avatar; entity.score = job.SCORE; entity.likeNum = job.LIKE_NUM; TemplateEntity template = new TemplateEntity(); template.templateCd = job.TEMPLATE_CD; template.templateTitle = job.TEMPLATE_TITLE; entity.template = template; Location loc = new Location(); loc.latitude = job.LATITUDE; loc.longitude = job.LONGITUDE; entity.location = loc; Catalog catalog = new Catalog(); catalog.catalogCd = job.CATALOG_CD; catalog.catalogName = job.CATALOG_NAME; entity.catalog = catalog; entity.dateTime = job.UPD_DATETIME.HasValue ? job.UPD_DATETIME.Value : job.REG_DATETIME; entityList.Add(entity); } } return(Ok(new Result { Status = 200, Message = string.Empty, Data = entityList })); }
/// <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); }