コード例 #1
0
        public async Task UploadObjectDataAsyncAWSS3(string filename, byte[] bytea, EbFileCategory cat)
        {
            try
            {
                var fileTransferUtility = new TransferUtility(s3Client);
                var ms = new System.IO.MemoryStream();
                ms.Write(bytea, 0, bytea.Length);
                ms.Position = 0;

                await fileTransferUtility.UploadAsync(ms, bucketName, filename);

                Console.WriteLine("Upload 4 completed");
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
コード例 #2
0
        public string UploadFile(string filename, byte[] bytea, EbFileCategory category, int _infraConId)
        {
            Console.WriteLine("Inside Upload FilesDB Collection");

            Console.WriteLine("InfraCon Id: " + _infraConId);
            Console.WriteLine("Default Con Id: " + DefaultConId);

            try
            {
                if (_infraConId == 0)
                {
                    _infraConId = DefaultConId;
                }
                this.UsedConId = _infraConId;
                Console.WriteLine("Used Con Id: " + UsedConId);
                return(this[this.UsedConId].UploadFile(filename, bytea, category));
            }
            catch (Exception e)
            {
                Console.WriteLine("Error in Upload File" + e.Message + "\nStack Trace: " + e.StackTrace);
                return(null);
            }
        }
コード例 #3
0
 public byte[] DownloadFileById(string filestoreid, EbFileCategory category)
 {
     AsyncHelper.RunSync(() => DowloadwithAsyncDropbox(filestoreid: filestoreid));
     return(result);
 }
コード例 #4
0
 public string UploadFile(string filename, byte[] bytea, EbFileCategory category)
 {
     AsyncHelper.RunSync(() => UploadObjectDataAsyncAWSS3(filename, bytea, category));
     return(filename);
 }
コード例 #5
0
 public byte[] DownloadFileById(string filestoreid, EbFileCategory category)
 {
     AsyncHelper.RunSync(() => ReadObjectDataAsyncAWSS3(filestoreid));
     return(result);
 }
コード例 #6
0
        private int GetFileRefIdInfra(int userId, string filename, string filetype, string tags, EbFileCategory ebFileCategory, string context)
        {
            int         refId = 0;
            EbDataTable table = null;

            //logging connection
            Console.WriteLine("FileClient Connection at GetFileRefIdInfra");
            Console.WriteLine(this.InfraConnectionFactory.DataDB.DBName);

            try
            {
                DbParameter[] parameters =
                {
                    this.InfraConnectionFactory.DataDB.GetNewParameter("userid",       EbDbTypes.Int32,  userId),
                    this.InfraConnectionFactory.DataDB.GetNewParameter("filename",     EbDbTypes.String, filename),
                    this.InfraConnectionFactory.DataDB.GetNewParameter("filetype",     EbDbTypes.String, filetype),
                    this.InfraConnectionFactory.DataDB.GetNewParameter("tags",         EbDbTypes.String, string.IsNullOrEmpty(tags)? string.Empty: tags),
                    this.InfraConnectionFactory.DataDB.GetNewParameter("filecategory", EbDbTypes.Int16,  (int)ebFileCategory),
                    this.InfraConnectionFactory.DataDB.GetNewParameter("context",      EbDbTypes.String, context)
                };
                table = this.InfraConnectionFactory.DataDB.DoQuery(this.InfraConnectionFactory.DataDB.EB_UPLOAD_IDFETCHQUERY, parameters);

                string s = table.Rows[0][0].ToString();
                refId = int.Parse(s);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: POSGRE: " + e.Message);
            }
            return(refId);
        }
コード例 #7
0
        public DownloadFileResponse Get(DownloadFileByIdRequest request)
        {
            Console.WriteLine("In DownloadFileByIdRequest");
            byte[] fb = new byte[0];

            string sFilePath = string.Format("../StaticFiles/{0}/{1}", request.SolnId, request.FileDetails.FileRefId);

            MemoryStream ms = null;

            DownloadFileResponse dfs = new DownloadFileResponse();

            try
            {
                if (!System.IO.File.Exists(sFilePath))
                {
                    EbFileCategory category = request.FileDetails.FileCategory;

                    string Qry = this.EbConnectionFactory.DataDB.EB_DOWNLOAD_FILE_BY_ID;

                    DbParameter[] parameters =
                    {
                        this.EbConnectionFactory.DataDB.GetNewParameter("fileref", EbDbTypes.Int32, request.FileDetails.FileRefId),
                    };

                    EbDataTable t = this.EbConnectionFactory.DataDB.DoQuery(Qry, parameters);
                    if (t.Rows.Count > 0)
                    {
                        request.FileDetails.FileStoreId = t.Rows[0]["filestore_sid"].ToString();
                        request.FileDetails.InfraConID  = Convert.ToInt32(t.Rows[0]["filedb_con_id"]);
                    }
                    else
                    {
                        throw new Exception("File Not Found in Database , fileref = " + request.FileDetails.FileRefId);
                    }

                    fb = this.EbConnectionFactory.FilesDB.DownloadFileById(request.FileDetails.FileStoreId, category, request.FileDetails.InfraConID);

                    if (fb != null)
                    {
                        EbFile.Bytea_ToFile(fb, sFilePath);
                    }
                }

                if (File.Exists(sFilePath))
                {
                    ms = new MemoryStream(File.ReadAllBytes(sFilePath));

                    dfs.StreamWrapper = new MemorystreamWrapper(ms);
                    dfs.FileDetails   = new FileMeta
                    {
                        FileName           = request.FileDetails.FileName,
                        FileType           = request.FileDetails.FileType,
                        Length             = request.FileDetails.Length,
                        FileStoreId        = request.FileDetails.FileStoreId,
                        UploadDateTime     = request.FileDetails.UploadDateTime,
                        MetaDataDictionary = (request.FileDetails.MetaDataDictionary != null) ? request.FileDetails.MetaDataDictionary : new Dictionary <String, List <string> >()
                        {
                        },
                    };
                }
                else
                {
                    throw new Exception("File Not Found");
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine("ObjectId not in Correct Format: " + request.FileDetails.FileName);
                Console.WriteLine("Exception: " + e.ToString());
            }
            catch (Exception e)
            {
                Log.Info("Exception:" + e.ToString());
            }

            return(dfs);
        }
コード例 #8
0
        public DownloadFileResponse Get(DownloadImageByIdRequest request)
        {
            Console.WriteLine("In DownloadImageByIdRequest");

            byte[] fb = new byte[0];

            string sFilePath = string.Format("../StaticFiles/{0}/{1}/{2}", request.SolnId, request.ImageInfo.ImageQuality, request.ImageInfo.FileRefId);

            MemoryStream ms = null;

            DownloadFileResponse dfs = new DownloadFileResponse();

            Console.WriteLine("Download Image Info: " + request.ImageInfo.ToJson());

            try
            {
                if (!System.IO.File.Exists(sFilePath))
                {
                    Console.WriteLine("Image Not in Cache: " + sFilePath);

                    EbFileCategory category = request.ImageInfo.FileCategory;

                    string Qry = this.EbConnectionFactory.DataDB.EB_DOWNLOAD_IMAGE_BY_ID;

                    DbParameter[] parameters = { this.EbConnectionFactory.DataDB.GetNewParameter("fileref", EbDbTypes.Int32, request.ImageInfo.FileRefId) };
                    EbDataTable   t          = this.EbConnectionFactory.DataDB.DoQuery(Qry, parameters);

                    if (t.Rows.Count == 0)
                    {
                        throw new Exception("filestore_sid not found - FileRefId:" + request.ImageInfo.FileRefId + " Quality:" + request.ImageInfo.ImageQuality);
                    }

                    Dictionary <int, ImageMeta> sidAll = new Dictionary <int, ImageMeta>();

                    for (int i = 0; i < t.Rows.Count; i++)
                    {
                        sidAll.Add(Convert.ToInt32(t.Rows[i][0]), new ImageMeta()
                        {
                            FileStoreId = t.Rows[i][1].ToString(), InfraConID = Convert.ToInt32(t.Rows[i][2])
                        });
                    }
                    if (sidAll.ContainsKey((int)request.ImageInfo.ImageQuality))
                    {
                        request.ImageInfo.FileStoreId = sidAll[(int)request.ImageInfo.ImageQuality].FileStoreId;
                        request.ImageInfo.InfraConID  = sidAll[(int)request.ImageInfo.ImageQuality].InfraConID;
                    }
                    else
                    {
                        request.ImageInfo.FileStoreId = sidAll[(int)ImageQuality.original].FileStoreId;
                        request.ImageInfo.InfraConID  = sidAll[(int)ImageQuality.original].InfraConID;
                    }

                    fb = this.EbConnectionFactory.FilesDB.DownloadFileById(request.ImageInfo.FileStoreId, category, request.ImageInfo.InfraConID);

                    if (fb != null)
                    {
                        EbFile.Bytea_ToFile(fb, sFilePath);
                    }
                    else
                    {
                        Console.WriteLine("No File Found in : FileStoreId: " + request.ImageInfo.FileStoreId);
                    }
                }

                if (File.Exists(sFilePath))
                {
                    ms = new MemoryStream(File.ReadAllBytes(sFilePath));

                    dfs.StreamWrapper = new MemorystreamWrapper(ms);
                    dfs.FileDetails   = new FileMeta
                    {
                        FileName           = request.ImageInfo.FileName,
                        FileType           = request.ImageInfo.FileType,
                        Length             = request.ImageInfo.Length,
                        FileStoreId        = request.ImageInfo.FileStoreId,
                        UploadDateTime     = request.ImageInfo.UploadDateTime,
                        MetaDataDictionary = (request.ImageInfo.MetaDataDictionary != null) ? request.ImageInfo.MetaDataDictionary : new Dictionary <String, List <string> >()
                        {
                        },
                    };
                }
                else
                {
                    throw new Exception("File Not Found");
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine("ObjectId not in Correct Format: " + request.ImageInfo.FileName);
                Console.WriteLine("Exception: " + e.ToString());
            }
            catch (Exception e)
            {
                Log.Info("Exception:" + e.ToString());
            }

            return(dfs);
        }
コード例 #9
0
        //public EbMqResponse Post(GetImageFtpRequest request)
        //{
        //    try
        //    {
        //        this.EbConnectionFactory = new EbConnectionFactory(request.SolnId, this.Redis);

        //        long size = this.EbConnectionFactory.FTP.GetFileSize(request.FileUrl.Value);


        //        if (size > 0)
        //        {
        //            int id = FileExists(this.EbConnectionFactory.DataDB, fname: request.FileUrl.Value.SplitOnLast('/').Last(), CustomerId: request.FileUrl.Key, IsExist: 1);
        //            if (id > 0)
        //                Log.Info("Counter Updated (File Exists)");
        //            else
        //                Log.Info("Counter Not Updated (File Exists)");


        //            byte[] _byte = this.EbConnectionFactory.FTP.Download(request.FileUrl.Value);

        //            if (_byte.Length > 0)
        //            {
        //                if (UpdateCounter(this.EbConnectionFactory.DataDB, id: id, IsFtp: 1))
        //                    Log.Info("Counter Updated (Byte Received)");
        //                else
        //                    Log.Info("Counter Not Updated (Byte Received)");


        //                UploadImageRequest ImageReq = new UploadImageRequest()
        //                {
        //                    ImgQuality = ImageQuality.original,
        //                    FileCategory = EbFileCategory.Images,

        //                    Byte = _byte,

        //                    UserId = request.UserId,
        //                    SolnId = request.SolnId,

        //                    BToken = request.BToken,
        //                    RToken = request.RToken
        //                };

        //                ImageReq.ImageRefId = GetFileRefId(this.EbConnectionFactory.DataDB, request.UserId, request.FileUrl.Value.Split('/').Last(), request.FileUrl.Value.Split('.').Last(), String.Format(@"CustomerId: {0}", request.FileUrl.Key.ToString()), EbFileCategory.Images);

        //                Console.WriteLine(@"File Recieved) ");

        //                object _imgenum = null;

        //                bool isImage = (Enum.TryParse(typeof(ImageTypes), request.FileUrl.Value.Split('.').Last().ToLower(), out _imgenum));

        //                if (MapFilesWithUser(this.EbConnectionFactory, request.FileUrl.Key, ImageReq.ImageRefId) < 1)
        //                    throw new Exception("File Mapping Failed");

        //                if (isImage)
        //                {
        //                    byte[] ThumbnailBytes;

        //                    if (UpdateCounter(this.EbConnectionFactory.DataDB, id: id, IsImg: 1))
        //                        Log.Info("Counter Updated (IsImage)");

        //                    if (ImageReq.Byte.Length > 307200)
        //                    {
        //                        int qlty = (int)(20480000 / ImageReq.Byte.Length);

        //                        qlty = qlty < 7 ? 7 : qlty;

        //                        Log.Info("Need to Compress");
        //                        string Clodinaryurl = this.EbConnectionFactory.ImageManipulate[0].Resize
        //                                            (ImageReq.Byte, ImageReq.ImageRefId.ToString(), qlty);

        //                        ImageReq.ImgManpSerConId = this.EbConnectionFactory.ImageManipulate[0].InfraConId;

        //                        using (var client = new HttpClient())
        //                        {
        //                            var response = client.GetAsync(Clodinaryurl).Result;

        //                            if (response.IsSuccessStatusCode)
        //                            {
        //                                var responseContent = response.Content;

        //                                // by calling .Result you are synchronously reading the result
        //                                ImageReq.Byte = responseContent.ReadAsByteArrayAsync().Result;
        //                                if (UpdateCounter(this.EbConnectionFactory.DataDB, id: id, IsCloudLarge: 1))
        //                                    Log.Info("Counter Updated (Recieved Large Image)");
        //                            }
        //                            else
        //                            {
        //                                throw new Exception("Cloudinary Error: Image Not Downloaded");
        //                            }
        //                        }

        //                    }

        //                    string thumbUrl = this.EbConnectionFactory.ImageManipulate[0].GetImgSize(ImageReq.Byte, request.FileUrl.Value.Split('/').Last(), ImageQuality.small);


        //                    this.MessageProducer3.Publish(ImageReq);
        //                    Log.Info("Pushed Image Large to Queue");


        //                    //TO Get thumbnail
        //                    using (var client = new HttpClient())
        //                    {
        //                        var response = client.GetAsync(thumbUrl).Result;

        //                        if (response.IsSuccessStatusCode)
        //                        {
        //                            var responseContent = response.Content;

        //                            // by calling .Result you are synchronously reading the result
        //                            ThumbnailBytes = responseContent.ReadAsByteArrayAsync().Result;
        //                        }
        //                        else
        //                        {
        //                            throw new Exception("Cloudinary Error: Transformed Image Not Available");
        //                        }

        //                    }


        //                    if (ThumbnailBytes.Length > 0)
        //                    {
        //                        ImageReq.Byte = ThumbnailBytes;
        //                        ImageReq.ImgManpSerConId = this.EbConnectionFactory.ImageManipulate[0].InfraConId;
        //                        ImageReq.ImgQuality = ImageQuality.small;

        //                        this.MessageProducer3.Publish(ImageReq);

        //                        if (UpdateCounter(this.EbConnectionFactory.DataDB, id: id, IsCloudSmall: 1))
        //                            Log.Info("Counter Updated (Recieved SmallImage)");
        //                        Log.Info("Pushed Small to Queue after Cloudinary");
        //                    }


        //                }
        //                else
        //                {
        //                    this.MessageProducer3.Publish(new UploadFileRequest()
        //                    {
        //                        FileRefId = ImageReq.ImageRefId,
        //                        FileCategory = EbFileCategory.File,

        //                        Byte = ImageReq.Byte,

        //                        UserId = request.UserId,
        //                        SolnId = request.SolnId,

        //                        BToken = request.BToken,
        //                        RToken = request.RToken
        //                    });
        //                    if (UpdateCounter(this.EbConnectionFactory.DataDB, id: id, IsFile: 1))
        //                        Log.Info("Counter Updated (File Pushed)");
        //                }
        //            }
        //        }
        //    }
        //    catch (Exception e)
        //    {
        //        Log.Error("MQ Exception: " + e.ToString());
        //        return new EbMqResponse();
        //    }
        //    return new EbMqResponse { IsError = false };
        //}

        //private int MapFilesWithUser(EbConnectionFactory connectionFactory, int CustomerId, int FileRefId)
        //{
        //    int res = 0;
        //    string MapQuery = @"INSERT into customer_files (customer_id, eb_files_ref_id) values(@cust_id, @ref_id) returning id";
        //    DbParameter[] MapParams =
        //    {
        //                connectionFactory.DataDB.GetNewParameter("cust_id", EbDbTypes.Int32, CustomerId),
        //                connectionFactory.DataDB.GetNewParameter("ref_id", EbDbTypes.Int32, FileRefId)
        //    };
        //    var table = connectionFactory.DataDB.DoQuery(MapQuery, MapParams);
        //    res = (int)table.Rows[0][0];
        //    return res;
        //}

        //public bool UpdateCounter(IDatabase DataDB, int id, int IsFtp = 0, int IsCloudLarge = 0, int IsCloudSmall = 0, int IsFile = 0, int IsImg = 0)
        //{
        //    int res = 0;

        //    try
        //    {
        //        string MapQuery = @"
        //                            UPDATE
        //                                eb_image_migration_counter
        //                            SET
        //                             ftp_get = eb_image_migration_counter.ftp_get + @ftp,
        //                             cldnry_large = eb_image_migration_counter.cldnry_large + @cldl ,
        //                             cldnry_small = eb_image_migration_counter.cldnry_small + @clds,
        //                             file_upld = eb_image_migration_counter.file_upld + @file,
        //                             img_org = eb_image_migration_counter.img_org + @img
        //                            WHERE
        //                                eb_image_migration_counter.id = @id;";
        //        DbParameter[] MapParams =
        //        {
        //                        DataDB.GetNewParameter("id", EbDbTypes.Int32, id),
        //                        DataDB.GetNewParameter("ftp", EbDbTypes.Int32, IsFtp),
        //                        DataDB.GetNewParameter("cldl", EbDbTypes.Int32, IsCloudLarge),
        //                        DataDB.GetNewParameter("clds", EbDbTypes.Int32, IsCloudSmall),
        //                        DataDB.GetNewParameter("file", EbDbTypes.Int32, IsFile),
        //                        DataDB.GetNewParameter("img", EbDbTypes.Int32, IsImg)
        //            };
        //        res = DataDB.DoNonQuery(MapQuery, MapParams);
        //    }
        //    catch (Exception e)
        //    {
        //        Log.Error("Counter: " + e.Message);
        //    }
        //    return (res > 0);
        //}

        //public int FileExists(IDatabase DataDB, string fname, int CustomerId, int IsExist = 0)
        //{
        //    int res = 0;

        //    try
        //    {
        //        string AddQuery = EbConnectionFactory.DataDB.EB_FILEEXISTS;

        //        DbParameter[] MapParams =
        //        {
        //                        DataDB.GetNewParameter("cid", EbDbTypes.Int32, CustomerId),
        //                        DataDB.GetNewParameter("fname", EbDbTypes.String, fname),
        //                        DataDB.GetNewParameter("exist", EbDbTypes.Int32, IsExist),
        //            };
        //        var tab = DataDB.DoQuery(AddQuery, MapParams);
        //        if (tab.Rows.Capacity > 0)
        //            res = Convert.ToInt32(tab.Rows[0][0]);
        //    }
        //    catch (Exception e)
        //    {
        //        Log.Error("Counter: " + e.Message);
        //    }
        //    return res;
        //}

        private int GetFileRefId(IDatabase datadb, int userId, string filename, string filetype, string tags, EbFileCategory ebFileCategory)
        {
            try
            {
                string IdFetchQuery = EbConnectionFactory.DataDB.EB_GETFILEREFID;

                DbParameter[] parameters =
                {
                    datadb.GetNewParameter("userid",       EbDbTypes.Int32,  userId),
                    datadb.GetNewParameter("filename",     EbDbTypes.String, filename),
                    datadb.GetNewParameter("filetype",     EbDbTypes.String, filetype),
                    datadb.GetNewParameter("tags",         EbDbTypes.String, tags),
                    datadb.GetNewParameter("filecategory", EbDbTypes.Int16,  ebFileCategory)
                };
                var table = datadb.DoQuery(IdFetchQuery, parameters);

                return((int)table.Rows[0][0]);
            }
            catch
            {
                return(0);
            }
        }