Exemple #1
0
        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);
        }
Exemple #2
0
 public static void Set(OrcaAdv adv)
 {
     Save(adv);
     lock (_adv_cache)
     {
         _adv_cache.Set(adv.AdvId, adv);
     }
 }
Exemple #3
0
 public static Adv CreateAdv(OrcaAdv adv)
 {
     return(new Adv
     {
         AdvId = adv.AdvId,
         AdvCreationTime = adv.CreationTime,
         AdvExpirationTime = adv.ExpirationTime
     });
 }
Exemple #4
0
 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);
     }
 }
Exemple #5
0
        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();
        }
Exemple #6
0
        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);
        }