private void UpdateLogoImage(Team oldTeam, TeamViewModel newViewModel) { if (newViewModel.NewLogoImage == null) { return; } using (var stream = newViewModel.NewLogoImage.OpenReadStream()) { var extension = newViewModel.NewLogoImage.FileName.Split('.').Last(); var fileName = string.Format("logo-{0}.{1}", newViewModel.Id, extension); var oldFile = _dbContext.Teams.Include(t => t.LogoImage).Single(t => t.Id == newViewModel.Id).LogoImage; if (oldFile == null) { var category = ViewHelpers.GetFileCategoryForProperty <Team>(t => t.LogoImage); oldTeam.LogoImage = _storage.Value.Create( category, fileName, stream ); } else { oldTeam.LogoImage = _storage.Value.Replace( oldFile, fileName, stream ); } oldTeam.LogoImage.Name = string.Format("{0}.{1}", newViewModel.Name, extension); newViewModel.LogoImageUrl = oldTeam.LogoImage.Url; } }