public async Task <ActionResult <dynamic> > AddVideo(string serverId, [FromBody] CreateVideoResource video) { var response = await _videosServices.AddVideo(serverId, video); if (!response.Success) { return(BadRequest(new ProblemDetails() { Type = "https://httpstatuses.com/400", Title = ReasonPhrases.GetReasonPhrase(400), Status = 400, Detail = response.Message })); } return(StatusCode(201, response.Videos)); }
public async Task <bool> FindVideo(CreateVideoResource video, string serverId) { try { var result = await _dataContext.Videos.AsNoTracking().FirstOrDefaultAsync(x => x.VideoBase64 == video.VideoBase64 && x.ServerId == serverId); if (result == null) { return(false); } return(true); } catch (Exception ex) { return(false); } }
public async Task <CreateVideoResponse> AddVideo(string serverId, CreateVideoResource video) { try { var server = await _serverServices.FindServerById(serverId); if (!server.Success) { return(new CreateVideoResponse("Server not found")); } if (await FindVideo(video, serverId) == true) { return(new CreateVideoResponse("Video já inserido no servidor")); } var encoded = Regex.Replace(video.VideoBase64, @"data:video\/.{3,7};base64,", String.Empty); encoded = encoded.Replace("data:application/pdf;base64,", String.Empty); var type = Regex.Replace(video.VideoBase64, @";.*", String.Empty); var contentType = type.Replace("data:", ""); // var type = Regex.Replace(image, @";.*", String.Empty); byte[] ret = Convert.FromBase64String(encoded); var model = _mapper.Map <CreateVideoResource, Videos>(video); model.ServerId = server.Server.Id; model.sizeInBytes = ret.Length; model.Id = Guid.NewGuid().ToString(); await _dataContext.Videos.AddAsync(model); await _dataContext.SaveChangesAsync(); return(new CreateVideoResponse(model)); } catch (Exception ex) { return(new CreateVideoResponse(ex.Message)); } }