Example #1
0
        public async Task DeleteLogFileMonitorState(LogFileMonitorStateDto model)
        {
            var tableOperation = TableOperation.Retrieve <LogFileMonitorStateEntity>("state", model.FileMonitorId.ToString());
            var result         = await _stateTable.ExecuteAsync(tableOperation);

            if (result.HttpStatusCode == 404)
            {
                return;
            }

            var logFileMonitorStateEntity = (LogFileMonitorStateEntity)result.Result;
            var operation = TableOperation.Delete(logFileMonitorStateEntity);

            await _stateTable.ExecuteAsync(operation);
        }
Example #2
0
        public async Task UpdateState(LogFileMonitorStateDto model)
        {
            try
            {
                var logFileMonitorStateEntity = new LogFileMonitorStateEntity(model);

                var operation = TableOperation.InsertOrMerge(logFileMonitorStateEntity);
                await _stateTable.ExecuteAsync(operation);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        public LogFileMonitorStateEntity(LogFileMonitorStateDto model)
        {
            RowKey       = model.FileMonitorId.ToString();
            PartitionKey = "state";

            ServerId        = model.ServerId;
            GameType        = model.GameType;
            ServerTitle     = model.ServerTitle;
            FilePath        = model.FilePath;
            FtpHostname     = model.FtpHostname;
            FtpUsername     = model.FtpUsername;
            FtpPassword     = model.FtpPassword;
            RemoteSize      = model.RemoteSize;
            LastReadAttempt = model.LastReadAttempt;
            LastRead        = model.LastRead;
            PlayerCount     = model.PlayerCount;
        }
Example #4
0
        public async Task <List <LogFileMonitorStateDto> > GetLogFileMonitorStates(FileMonitorFilterModel filterModel)
        {
            var query   = new TableQuery <LogFileMonitorStateEntity>().AsTableQuery().ApplyFilter(filterModel);
            var results = new List <LogFileMonitorStateDto>();

            TableContinuationToken continuationToken = null;

            do
            {
                var queryResult = await _stateTable.ExecuteQuerySegmentedAsync(query, continuationToken);

                foreach (var entity in queryResult)
                {
                    var fileMonitorStateDto = new LogFileMonitorStateDto
                    {
                        FileMonitorId   = Guid.Parse(entity.RowKey),
                        ServerId        = entity.ServerId,
                        GameType        = entity.GameType,
                        ServerTitle     = entity.ServerTitle,
                        FilePath        = entity.FilePath,
                        FtpHostname     = entity.FtpHostname,
                        FtpUsername     = entity.FtpUsername,
                        FtpPassword     = entity.FtpPassword,
                        RemoteSize      = entity.RemoteSize,
                        LastReadAttempt = entity.LastReadAttempt,
                        LastRead        = entity.LastRead,
                        PlayerCount     = entity.PlayerCount
                    };

                    results.Add(fileMonitorStateDto);
                }

                continuationToken = queryResult.ContinuationToken;
            } while (continuationToken != null);

            return(results);
        }