public ICommandResult Handle(DeleteVideoCommand command) { command.Validate(); if (command.IsInvalid) { return(new DefaultCommandResult(CommandResultStatus.InvalidCommand, command.Notifications)); } try { var video = _videoRepository.GetByServerIdAndVideoId(command.ServerId, command.VideoId); if (video == null) { return(new DefaultCommandResult(CommandResultStatus.InvalidData, "Video não foi localizado")); } _videoRepository.Delete(video); _videoRepository.DeleteInFileSystem(video); return(new DefaultCommandResult(CommandResultStatus.Success, "Video excluido com sucesso", null)); } catch (Exception e) { Console.WriteLine($"Fail to execute DeleteVideoHandler. Fail stack ===> {e.ToString()}"); return(new DefaultCommandResult(CommandResultStatus.Exception)); } }
public ICommandResult Handle(RecycleVideoForMoreThenDaysCommand command) { command.Validate(); if (command.IsInvalid) { return(new DefaultCommandResult(CommandResultStatus.InvalidCommand, command.Notifications)); } try { var statusRecycle = _recycleRepository.Get(); if (statusRecycle == null) { statusRecycle = new Entities.Recycle(RecyclerStatus.NotRunning, new DateTime()); _recycleRepository.Save(statusRecycle); } var deleteBeforeDate = DateTime.Now.Subtract(TimeSpan.FromDays(command.Days)); var videos = _videoRepository.GetAllBeforeDate(deleteBeforeDate); if (videos.Count() > 0) { statusRecycle.SetRunning(deleteBeforeDate); _recycleRepository.Update(statusRecycle); try { Thread.Sleep(5000); foreach (var video in videos) { _videoRepository.DeleteInFileSystem(video); _videoRepository.Delete(video); } statusRecycle.StopRunning(); _recycleRepository.Update(statusRecycle); } catch (Exception e) { Console.WriteLine($"Fail to execute RecycleVideoForMoreThenDaysHandler. Fail stack ===> {e.ToString()}"); statusRecycle.StopRunning(); _recycleRepository.Update(statusRecycle); } } return(new DefaultCommandResult()); } catch (Exception e) { Console.WriteLine($"Fail to execute RecycleVideoForMoreThenDaysHandler. Fail stack ===> {e.ToString()}"); return(new DefaultCommandResult(CommandResultStatus.Exception)); } }