Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }