List <QueryAdvResponse> QueryComplexAdv(QueryAdvRequest request) { AdvDao dao = new AdvDao(); uint timestamp = request.CreationTime != 0 ? request.CreationTime : Util.ToTimestamp(DateTime.Now); List <Adv> list = dao.GetByCtime(timestamp); List <QueryAdvResponse> responses = new List <QueryAdvResponse>(); foreach (var adv in list) { OrcaAdv orca_adv = AdvManager.Get(adv.AdvId); QueryAdvResponse response = new QueryAdvResponse { Adv = new OrcaAdv { AdvId = adv.AdvId, DivPaper = orca_adv.DivPaper } }; if (request.Resolution == QueryAdvRequest.Types.Resolution.Res4To3) { response.Adv.WallPaper4To3 = orca_adv.WallPaper4To3; } if (request.Resolution == QueryAdvRequest.Types.Resolution.Res16To9) { response.Adv.WallPaper16To9 = orca_adv.WallPaper16To9; } responses.Add(response); } return(responses); }
public static void Set(OrcaAdv adv) { Save(adv); lock (_adv_cache) { _adv_cache.Set(adv.AdvId, adv); } }
public static Adv CreateAdv(OrcaAdv adv) { return(new Adv { AdvId = adv.AdvId, AdvCreationTime = adv.CreationTime, AdvExpirationTime = adv.ExpirationTime }); }
public static OrcaAdv Get(uint adv_id) { lock (_adv_cache) { if (_adv_cache.Contains(adv_id)) { return(_adv_cache.Get(adv_id)); } OrcaAdv adv = Load(adv_id); _adv_cache.Set(adv_id, adv); return(adv); } }
public static void Save(OrcaAdv adv) { string filename = string.Format("{0}/{1}.dat", _file_root_path, adv.AdvId); FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write); CodedOutputStream output = new CodedOutputStream(fs, true); output.WriteMessage(adv); output.Flush(); fs.Flush(); fs.Close(); }
private static OrcaAdv Load(uint adv_id) { string filename = string.Format("{0}/{1}.dat", _file_root_path, adv_id); if (!File.Exists(filename)) { return(null); } FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read); CodedInputStream input = new CodedInputStream(fs, true); OrcaAdv adv = new OrcaAdv { AdvId = adv_id }; input.ReadMessage(adv); fs.Close(); return(adv); }