Example #1
0
        public async Task <IMediaObject> ProcessUpload(Stream file, string filename, string filetype, long size, string directoryPath)
        {
            IMediaObject media = new MediaObject
            {
                Filename      = filename,
                BlobReference = GetBlobReference(directoryPath, await GetSafeFilename(directoryPath, filename)),
                UniqueId      = Guid.NewGuid().ToString(),
                Path          = directoryPath
            };

            // Upload the media, filename as the name, check it doesn't already exist first.
            BlockBlobClient uploadResult = await Upload(file, media.BlobReference);

            // Attach to the entity
            media.Url = uploadResult.Uri.AbsoluteUri;

            // Process type, size etc.
            media.CreatedOn       = DateTime.UtcNow;
            media.FileSize        = file.Length;
            media.FileType        = filetype;
            media.GenericFileType = filetype.ToFileType();

            GenericFileType type = filetype.ToFileType();

            switch (type)
            {
            case GenericFileType.Image:
                media = ProcessImage(media);
                break;
            }

            return(media);
        }
Example #2
0
        public async Task <HttpResponseMessage> UploadGenericFile()
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            if (!Request.Content.IsMimeMultipartContent())
            {
                response.StatusCode = HttpStatusCode.UnsupportedMediaType;
            }
            else
            {
                UserPrincipal loggedInUser             = (UserPrincipal)HttpContext.Current.User;
                MultipartMemoryStreamProvider provider = new MultipartMemoryStreamProvider();
                await Request.Content.ReadAsMultipartAsync(provider);

                Task <byte[]> fileData  = provider.Contents.First().ReadAsByteArrayAsync();
                string        name      = provider.Contents.First().Headers.ContentDisposition.FileName.Replace("/", string.Empty);
                string        ext       = name.Substring(name.LastIndexOf("."), name.Length);
                string        fileName  = string.Format("{0}.{1}", Guid.NewGuid().ToString(), ext);
                string        directory = string.Format(@"{0}Uploads\{1}", AppDomain.CurrentDomain.BaseDirectory, loggedInUser.AccountSession.ClubId);

                int                   objectId       = int.Parse(HttpContext.Current.Request.QueryString["objectId"].ToString());
                GenericFileType       fileType       = (GenericFileType)Enum.Parse(typeof(GenericFileType), HttpContext.Current.Request.QueryString["fileType"].ToString());
                GenericFileModuleType fileModuleType = (GenericFileModuleType)Enum.Parse(typeof(GenericFileModuleType), HttpContext.Current.Request.QueryString["fileModuleType"].ToString());

                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }

                using (FileStream fs = new FileStream(string.Format(@"{0}\{1}", directory, fileName), FileMode.OpenOrCreate))
                {
                    await fs.WriteAsync(fileData.Result, 0, fileData.Result.Length);

                    fs.Close();
                }

                response.Content = new ObjectContent <string>(fileName, new JsonMediaTypeFormatter());
            }

            return(response);
        }
Example #3
0
 public static GenericFile GetGenericFile(GenericFileType fileType, GenericFileModuleType moduleType, int objectId)
 {
     return(GenericFileDAL.GetGenericFile(fileType, moduleType, objectId));
 }
Example #4
0
 internal static GenericFile GetGenericFile(GenericFileType fileType, GenericFileModuleType moduleType, int objectId)
 {
     using (CoreModel coreDAL = new CoreModel())
         return(coreDAL.GenericFile.FirstOrDefault(f => f.FileType == (int)fileType &&
                                                   f.ModuleType == (int)moduleType && f.ObjectId == objectId));
 }