Exemple #1
0
        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); }
        }
Exemple #4
0
        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
            }));
        }
Exemple #5
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);
        }
Exemple #6
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);
        }
        // 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);
        }
Exemple #8
0
        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
            }));
        }
Exemple #9
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
            }));
        }
Exemple #10
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
            }));
        }
Exemple #11
0
        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
            }));
        }
Exemple #12
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);
        }
        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);
        }
Exemple #14
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);
        }
Exemple #15
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
                }));
            }
        }
Exemple #16
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
                }));
            }
        }
Exemple #17
0
        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
            }));
        }
Exemple #18
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);
        }