-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathExtensions.cs
More file actions
60 lines (52 loc) · 2.11 KB
/
Extensions.cs
File metadata and controls
60 lines (52 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using TCAdmin.SDK.Objects;
using Server = TCAdmin.GameHosting.SDK.Objects.Server;
using Service = TCAdmin.GameHosting.SDK.Objects.Service;
namespace TCAdminBackup
{
public static class Extensions
{
public static List<FileServer> S3FileServers(this ObjectList fileServers)
{
return fileServers.Cast<FileServer>().Where(x => x.Name.StartsWith("[S3]")).ToList();
}
public static List<FileServer> FtpFileServers(this ObjectList fileServers)
{
return fileServers.Cast<FileServer>().Where(x => x.Name.StartsWith("[FTP]")).ToList();
}
public static string CloudBackupsBucketName(this User user)
{
return $"{user.UserName.ToLower()}-backups";
}
public static string ReplaceVariables(this string query, Service service = null, User user = null, Server server = null, Datacenter datacenter = null)
{
var input = new TCAdmin.SDK.Scripting.InputParser(query);
service?.ReplacePropertyValues(input);
service?.ReplaceCustomVariables(new TCAdmin.GameHosting.SDK.Objects.Game(service.GameId).CustomVariables, service.Variables, input);
user?.ReplacePropertyValues(input);
server?.ReplacePropertyValues(input);
datacenter?.ReplacePropertyValues(input);
var output = input.GetOutput();
return output;
}
}
public class JsonHttpStatusResult : JsonResult
{
private readonly HttpStatusCode _httpStatus;
public JsonHttpStatusResult(object data, HttpStatusCode httpStatus, JsonRequestBehavior behavior = JsonRequestBehavior.AllowGet)
{
Data = data;
_httpStatus = httpStatus;
JsonRequestBehavior = behavior;
}
public override void ExecuteResult(ControllerContext context)
{
context.RequestContext.HttpContext.Response.StatusCode = (int)_httpStatus;
base.ExecuteResult(context);
}
}
}