public async Task <QuadroPersonalizado> ApagarQuadroPersonalizado(int congregacaoId, string url, StorageConfig config) { using (RepositorySession dalSession = new RepositorySession(Runtime.JWInstance)) { IUnitOfWork unitOfWork = dalSession.UnitOfWork; unitOfWork.Begin(); try { var model = _repositoryQuadro.ObterQuadroPersonalizado(ref unitOfWork, congregacaoId, url); if (model == null) { model = new QuadroPersonalizado(); model.AddNotification(nameof(JsonImage.Url), "Quadro não encontrado"); unitOfWork.Rollback(); return(model); } await _storageAzure.DeleteBlobData(model.Url, config); _repositoryQuadro.ApagarQuadroPersonalizado(ref unitOfWork, url, congregacaoId); unitOfWork.Commit(); return(model); } catch { throw; } } }
public async Task <QuadroPersonalizado> NovoQuadroPersonalizado(QuadroPersonalizado model, StorageConfig config, IFormFile file) { using (RepositorySession dalSession = new RepositorySession(Runtime.JWInstance)) { IUnitOfWork unitOfWork = dalSession.UnitOfWork; JsonImage url = new JsonImage(); unitOfWork.Begin(); try { if (model.Valid) { if (file != null && _storageAzure.IsImage(file.FileName.Trim('\"'))) { if (file.Length > 0) { using (var stream = file.OpenReadStream()) url = await _storageAzure.Upload(stream, Guid.NewGuid() + "_" + file.FileName, config); } else { model.AddNotification(nameof(JsonImage.Url), "Arquivo Vazio"); } } else { model.AddNotification(nameof(JsonImage.Url), "Arquivo não suportado"); } model.Url = url.Url; if (model.Valid) { _repositoryQuadro.InserirQuadroPersonalizado(ref unitOfWork, model); unitOfWork.Commit(); } else if (model.Url != null) { await _storageAzure.DeleteBlobData(model.Url, config); } } } catch { unitOfWork.Rollback(); await _storageAzure.DeleteBlobData(model.Url, config); throw; } return(model); } }
public void InserirQuadroPersonalizado(ref IUnitOfWork unitOfWork, QuadroPersonalizado model) { unitOfWork.Connection.Execute(@" INSERT INTO [dbo].[QuadroPersonalizado] ([Url], [Titulo], [CongregacaoId], [DataExpiracao], [DataInicio], [AtivoStorage]) VALUES (@Url, @Titulo, @CongregacaoId, @DataExpiracao, @DataInicio, @AtivoStorage)", param: new { @Url = model.Url, @Titulo = model.Titulo, @CongregacaoId = model.CongregacaoId, @DataExpiracao = model.DataExpiracao, @DataInicio = model.DataInicio, @AtivoStorage = model.AtivoStorage }, transaction: unitOfWork.Transaction ); }