Exemplo n.º 1
0
        public static async Task <MediaUploadResults> StoreMediaAsync(
            ApplicationDbContext dbContext,
            UserInfo userEntity,
            IEnumerable <UploadedMedia> items)
        {
            var newEntities = new List <UserMedia>();

            foreach (UploadedMedia item in items)
            {
                if (new FileInfo(item.LocalFileName).Length > 0)
                {
                    string ext    = Path.GetExtension(item.OriginalName.Trim('\"')).Substring(1);
                    var    entity = new UserMedia
                    {
                        User       = userEntity,
                        State      = UserMediaState.UploadedButUnused,
                        CreatedUtc = DateTime.UtcNow,
                        Extension  = ext
                    };
                    var dataEntity = new UserMediaData
                    {
                        UserMedia = entity,
                        ImageData = File.ReadAllBytes(item.LocalFileName)
                    };
                    File.Delete(item.LocalFileName);
                    dbContext.UserMedias.Add(entity);
                    dbContext.UserMediaDatas.Add(dataEntity);

                    newEntities.Add(entity);
                }
            }

            await dbContext.SaveChangesAsync();

            await SearchOperations.IndexMediaAsync(newEntities);

            return(new MediaUploadResults
            {
                Files = newEntities
                        .Select(
                    e => new MediaUploadResult
                {
                    Id = e.UserMediaId
                })
                        .ToList()
            });
        }
 public MediaDataAccess() // Creacting constructor
 {
     umd = new UserMediaData();
     viewMediaTableAdapter = new ViewMediaTableAdapter();
 }