Exemple #1
0
        public string GetLink(int id)
        {
            Log.Debug("GETLink Request private using objectid:" + id);
            try
            {
                using (TuneWorldDBEntities entities = new TuneWorldDBEntities())
                {
                    var entity = entities.Objects.Where(e => e.ObjectId.Equals(id));

                    if (entity.Count() == 1)
                    {
                        string objectFinal = entity.First().ObjectUploadLink;
                        string urlString   = "";

                        using (client = new AmazonS3Client(awskey, awssecret, new AmazonS3Config
                        {
                            RegionEndpoint = regionep,
                            UseAccelerateEndpoint = true
                        }))
                        {
                            urlString = GeneratePreSignedDownloadURL(objectFinal);
                            Log.Debug("GETLink Request urlstring:" + urlString);
                        }
                        return(urlString);
                    }
                    return(null);
                }
            }
            catch (Exception ex)
            {
                Log.Debug("GETLink Request exception:" + ex.StackTrace);
                return(null);
            }
        }
Exemple #2
0
        public IEnumerable <Object> Get()
        {
            string userid = User.Identity.GetUserId();

            Log.Debug("GET Request private using userid:" + userid);
            using (TuneWorldDBEntities entities = new TuneWorldDBEntities())
            {
                return(entities.Objects.Where(obj => obj.UserId.Equals(userid)).ToList());
            }
        }
Exemple #3
0
        //delete related
        private bool DeleteObject(int id)
        {
            Log.Debug("Entered delete object");
            //delete from s3
            using (TuneWorldDBEntities entities = new TuneWorldDBEntities())
            {
                var entity = entities.Objects.Where(e => e.ObjectId.Equals(id));
                if (entity.Count() == 1)
                {
                    using (client = new AmazonS3Client(awskey, awssecret, new AmazonS3Config
                    {
                        RegionEndpoint = regionep,
                        UseAccelerateEndpoint = true
                    }))
                    {
                        try
                        {
                            // Delete the object
                            DeleteObjectRequest request = new DeleteObjectRequest
                            {
                                BucketName = bucketName,
                                Key        = entity.First().ObjectUploadLink,
                                //VersionId = versionID
                            };
                            Console.WriteLine("Deleting an object");
                            DeleteObjectResponse resp = client.DeleteObject(request);
                        }
                        catch (AmazonS3Exception s3Exception)
                        {
                            Log.Debug("Delete S3 Exception exception " + s3Exception.Message + s3Exception.StackTrace);
                            Console.WriteLine(s3Exception.Message, s3Exception.InnerException);
                            return(false);
                        }

                        //delete from rds
                        try
                        {
                            Log.Debug("Delete S3 success updating RDS ");
                            ObjectModel obj    = new ObjectModel(id);
                            string      cmdstr = obj.ObjectDeleteDB("Objects", id);
                            DBAccess.DBAccess.InsertUpdateDeleteIntoDB(cmdstr);
                        }
                        catch (Exception e)
                        {
                            Log.Debug("Delete updating RDS excepton" + e.Message + e.StackTrace);
                            return(false);
                        }
                        return(true);
                    }
                }
                return(false);
            }
        }
Exemple #4
0
        public IEnumerable <Object> Get(string searchterm, string category)
        {
            Log.Debug("GET Request public using searchterm:" + searchterm);
            using (TuneWorldDBEntities entities = new TuneWorldDBEntities())
            {
                entities.Configuration.ProxyCreationEnabled = false;
                switch (category)
                {
                case "Filename": return(entities.Objects.Where(e => (e.ObjectName.Contains(searchterm) || e.ObjectName.Contains(searchterm.ToLower()) || e.ObjectName.Contains(searchterm.ToUpper())) && e.MakePublic.Equals(true)).ToList());

                case "Songname": return(entities.Objects.Where(e => (e.SongName.Contains(searchterm) || e.SongName.Contains(searchterm.ToLower()) || e.SongName.Contains(searchterm.ToUpper())) && e.MakePublic.Equals(true)).ToList());

                case "Genre": return(entities.Objects.Where(e => (e.Genre.Contains(searchterm) || e.Genre.Contains(searchterm.ToLower()) || e.Genre.Contains(searchterm.ToUpper())) && e.MakePublic.Equals(true)).ToList());

                case "Language": return(entities.Objects.Where(e => (e.Language.Contains(searchterm) || e.Language.Contains(searchterm.ToLower()) || e.Language.Contains(searchterm.ToUpper())) && e.MakePublic.Equals(true)).ToList());
                }
                return(entities.Objects.Where(e => e.ObjectName.Contains(searchterm) && e.MakePublic.Equals(true)).ToList());
            }
        }
Exemple #5
0
        //rds related
        private bool UpdateRDS(IPrincipal user, MultipartFileData file, MultipartFormDataStreamProvider provider)
        {
            string filename       = file.Headers.ContentDisposition.FileName.Replace("\"", "");
            string objectFinal    = keyName + "/" + user.Identity.GetUserName() + "/" + filename;
            string uploadtime     = DateTime.Now.ToString();
            string userid         = user.Identity.GetUserId();
            string objectDesc     = provider.FormData.GetValues("filedescription")[0];
            string objectSongname = provider.FormData.GetValues("filesong")[0];
            string objectLanguage = provider.FormData.GetValues("filelanguage")[0];
            string objectGenre    = provider.FormData.GetValues("filegenre")[0];
            int    iPublic        = provider.FormData.GetValues("filepublic")[0] == "true" ? 1 : 0;

            //check if entry already exists based on objectFinal (update or insert)
            bool bInsert = true;
            int  objid   = 0;

            using (TuneWorldDBEntities entities = new TuneWorldDBEntities())
            {
                var entity = entities.Objects.Where(e => e.UserId.Equals(userid) && e.ObjectUploadLink.Equals(objectFinal));
                if (entity.Count() > 0)
                {
                    bInsert = false;
                    objid   = entity.First().ObjectId;
                }
            }

            string urlString = "";

            if (iPublic == 1)
            {
                //here it might not work for other region objects edit later because of region endpoint
                //https://s3.amazonaws.com/tuneworldmain/TuneWorldFolder/bcd%40xyz/Happy+Birthday+Tune.txt
                //urlString = "https://s3.amazonaws.com/" + bucketName + "/" + HttpUtility.UrlEncode(objectFinal);
                string cloudfrontobjectFinal = user.Identity.GetUserName() + "/" + filename;
                urlString = cloudfrontlink + HttpUtility.UrlEncode(cloudfrontobjectFinal);
            }
            else
            {
                using (client = new AmazonS3Client(awskey, awssecret, new AmazonS3Config
                {
                    RegionEndpoint = regionep,
                    UseAccelerateEndpoint = true
                }))
                {
                    urlString = GeneratePreSignedDownloadURL(objectFinal);
                }
            }


            ObjectModel obj    = new ObjectModel(userid, filename, objectDesc, objectFinal, urlString, uploadtime, iPublic, objectSongname, objectLanguage, objectGenre);
            string      cmdstr = "";

            if (bInsert)
            {
                cmdstr = obj.ObjectInsertDB("Objects");
            }
            else
            {
                cmdstr = obj.ObjjectUpdateDB("Objects", objid);
            }
            DBAccess.DBAccess.InsertUpdateDeleteIntoDB(cmdstr);
            return(true);
        }