An alternative to UBB.threads
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.2 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Web.Core;
using FLocal.Common.dataobjects;
namespace FLocal.Common.URL.upload {
public class Item : AbstractUrl {
public readonly Upload upload;
public Item(string uploadId, string remainder) : base(remainder) {
int iUploadId;
if(!int.TryParse(uploadId, out iUploadId)) {
string[] parts = uploadId.Split('.');
if(parts.Length != 2) throw new FLocalException("wrong url");
if(parts[0].Substring(0, 4).ToLower() != "file") throw new FLocalException("wrong url");
int rawFileNum = int.Parse(parts[0].Substring(4));
switch(parts[1].ToLower()) {
case "jpg":
iUploadId = rawFileNum;
break;
case "gif":
iUploadId = 5000000 + rawFileNum;
break;
case "png":
iUploadId = 6000000 + rawFileNum;
break;
default:
throw new FLocalException("wrong url");
}
}
this.upload = Upload.LoadById(iUploadId);
}
public override string title {
get {
return this.upload.filename;
}
}
protected override string _canonical {
get {
return "/Upload/Item/" + this.upload.id + "/";
}
}
}
}