/// <summary>
 /// 更改相册封面图片
 /// </summary>
 /// <param name="_album">相册</param>
 /// <param name="_titleimgNo">图片编号</param>
 private void ChangeAlbumTitleImg(Album _album, string _titleimgNo)
 {
     if (_album != null && _album.SubPhotos != null && _album.SubPhotos.Count > 0)
     {
         if (string.IsNullOrEmpty(_titleimgNo))
         {
             _album.AlbumTitleImg = _album.SubPhotos[0].PhotoMiniData;
         }
         else
         {
             foreach (PhotoInfo _photo in _album.SubPhotos)
             {
                 if (_photo.PhotoNO == _titleimgNo)
                 {
                     _album.AlbumTitleImg = _photo.PhotoMiniData;
                     _photo.IsTitleImg = true;
                 }
                 else
                 {
                     _photo.IsTitleImg = false;
                 }
             }
         }
     }
     else
     {
         _album.AlbumTitleImg = "";
     }
 }
        /// <summary>
        /// 编辑相册信息
        /// </summary>
        /// <param name="_albuminfo">相册信息</param>
        /// <returns></returns>
        public ManagerStateMsg EditAlbum(Album _albuminfo)
        {
            ManagerStateMsg msg = new ManagerStateMsg(false, "方法 EditAlbum 执行出现错误!");
            IObjectContainer db = DataHelper.Instance.GetDbObj(typeof(RootAlbum));
            try
            {
                IObjectSet _result = db.Query(typeof(RootAlbum));
                RootAlbum root = (RootAlbum)_result.Next();
                if (root.SubAlbums != null && root.SubAlbums.Count > 0)
                {
                    foreach (Album _album in root.SubAlbums)
                    {
                        if (_album.AlbumNO == _albuminfo.AlbumNO)
                        {
                            _album.AlbumName = _albuminfo.AlbumName;
                            _album.AlbumRemark = _albuminfo.AlbumRemark;
                            _album.UpdateDate = DateTime.Now;

                            db.Store(root);
                            db.Commit();

                            msg.MsgInfo = "相册信息更新成功!";
                            msg.Statevalue = true;
                            break;
                        }
                    }
                }
                if (msg.Statevalue)
                {
                }
                else
                {
                    msg.MsgInfo = "未找到符合条件的相册!";
                }
            }
            catch (Exception ex)
            {
                msg.MsgInfo = ex.Message;
            }
            finally
            {
                db.Close();
            }

            return msg;
        }
        /// <summary>
        /// 创建相册
        /// </summary>
        /// <param name="_albuminfo"></param>
        /// <returns></returns>
        public ManagerStateMsg SaveAlbum(Album _albuminfo)
        {
            bool albumIsExtbol = AlbumBolIsExt(_albuminfo.AlbumName);//相册是否已存在
            ManagerStateMsg msg = new ManagerStateMsg(false, "");
            if (!albumIsExtbol)
            {
                IObjectContainer db = DataHelper.Instance.GetDbObj(typeof(RootAlbum));
                try
                {
                    IObjectSet _result = db.Query(typeof(RootAlbum));
                    RootAlbum root = (RootAlbum)_result.Next();
                    if (root.SubAlbums != null && root.SubAlbums.Count > 0)
                    {
                        root.SubAlbums.Add(_albuminfo);
                    }
                    else
                    {
                        root.SubAlbums = new List<Album>();
                        root.SubAlbums.Add(_albuminfo);
                    }
                    db.Store(root);
                    db.Commit();
                    msg.ReturnValue = _albuminfo;
                    msg.Statevalue = true;
                    msg.MsgInfo = "保存成功";
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    db.Close();
                }
            }
            else
            {
                msg.MsgInfo = "同名相册已存在!";
            }

            return msg;
        }
        /// <summary>
        ///添加照片至相册
        /// </summary>
        /// <param name="Photos"></param>
        /// <param name="_alumobj"></param>
        private void AddPhotosToAlume(List<string> Photos, Album _alumobj)
        {
            if (Photos != null && Photos.Count > 0)
            {
                string strImgPath = "";
                string strImgName = "";
                FileInfo tempfile = null;
                System.Drawing.Image newimg = null;
                string miniImgtempRoot = Path.Combine(rootPath, "miniImgtemp//" + _alumobj.AlbumName);
                if (!Directory.Exists(miniImgtempRoot))
                {
                    Directory.CreateDirectory(miniImgtempRoot);
                }
                string miniPath="";
                PhotoInfo newphoto = null;

                PhotoManager manager=new PhotoManager ();

                #region 逐一存储照片

                foreach (string _strImgName in Photos)
                {
                    miniPath="";
                    strImgPath = _strImgName;
                    if (File.Exists(strImgPath))
                    {
                        tempfile = new FileInfo(strImgPath);
                        miniPath=Path.Combine(miniImgtempRoot,tempfile.Name);//缩略图名称

                        strImgName = tempfile.Name.Substring(0, tempfile.Name.LastIndexOf("."));
                        tempfile = null;

                        newphoto = new PhotoInfo(strImgName,"");
                        newphoto.PhotoData = strImgPath;

                        bool bolstate = ImgManager.Instance.MakeThumbnail(strImgPath, miniPath, 100, 100);
                        if (bolstate)
                        {
                            #region 缩略图处理成功后存储照片信息
                            newphoto.PhotoMiniData = miniPath;
                            ManagerStateMsg msg = manager.AddPhoto(_alumobj.AlbumNO, newphoto);//添加照片至相册
                           if (msg.Statevalue)
                           {
                               if (AddPhotoEvent != null)
                               {
                                   AddPhotoEvent(_alumobj.AlbumName, strImgName, true);
                               }
                               else
                               {
                                   if (AddPhotoEvent != null)
                                   {
                                       AddPhotoEvent(_alumobj.AlbumName, strImgName, false);
                                   }
                               }
                           }
                            #endregion
                        }
                        else
                        {
                            newphoto = null;
                            if (AddPhotoEvent != null)
                            {
                                AddPhotoEvent(_alumobj.AlbumName, strImgName, false);
                            }
                        }
                        System.Threading.Thread.Sleep(500);
                    }
                }
                #endregion
            }
        }
        /// <summary>
        /// 创建相册
        /// </summary>
        /// <param name="SubDirs"></param>
        private List<Album> CreateAlbum(string[] SubDirs)
        {
            List<Album> list = new List<Album>();
            if (SubDirs != null && SubDirs.Length > 0)
            {
                IAlbumManager manager = new AlbumManager();
                Album newalbume = null;
                DirectoryInfo _dir=null;
                foreach (string strpath in SubDirs)
                {
                    _dir=new DirectoryInfo(strpath);
                    newalbume = new Album(_dir.Name, "");
                    ManagerStateMsg state = manager.SaveAlbum(newalbume);
                    if (CreateAlbumEvent != null)
                    {
                        if (state.Statevalue)
                        {
                            list.Add((Album)state.ReturnValue);
                        }
                        CreateAlbumEvent(_dir.Name, state.Statevalue);
                    }
                }
            }
            else
            {
                if (SyncEndEvent != null)
                {
                    SyncEndEvent(null, null);
                }
            }

            return list;
        }
 /// <summary>
 /// 格式化相册信息
 /// </summary>
 /// <param name="_row"></param>
 /// <returns></returns>
 private Album FormatAlbumByRow(DataRow _row)
 {
     Album _album = null;
     try
     {
         //AlbumNo,AlbumName,AlbumRootPath,AlbumRemark,AlbumTitleImg,CreateDate,UpdateDate,PhotoTols
         if (_row["AlbumNo"] != DBNull.Value && !string.IsNullOrEmpty(_row["AlbumNo"].ToString()))
         {
             _album = new Album();
             _album.AlbumNO = _row["AlbumNo"].ToString();
             if (_row["AlbumName"] != DBNull.Value)
             {
                 _album.AlbumName = _row["AlbumName"].ToString();
             }
             if (_row["AlbumRootPath"] != DBNull.Value)
             {
                 _album.AlbumRootPath = _row["AlbumRootPath"].ToString();
             }
             if (_row["AlbumRemark"] != DBNull.Value)
             {
                 _album.AlbumRemark = _row["AlbumRemark"].ToString();
             }
             if (_row["AlbumTitleImg"] != DBNull.Value)
             {
                 _album.AlbumTitleImg = _row["AlbumTitleImg"].ToString();
             }
             if (_row["CreateDate"] != DBNull.Value)
             {
                 _album.CreateDate = _row["CreateDate"].ToString();
             }
             if (_row["UpdateDate"] != DBNull.Value)
             {
                 _album.UpdateDate = _row["UpdateDate"].ToString();
             }
             if (_row["PhotoTols"] != DBNull.Value)
             {
                 _album.PhotosNumber = Convert.ToInt32(_row["PhotoTols"]);
             }
         }
     }
     catch
     {
     }
     return _album;
 }
        /// <summary>
        /// 创建相册
        /// </summary>
        /// <param name="_albuminfo"></param>
        /// <returns></returns>
        public ManagerStateMsg SaveAlbum(Album _albuminfo)
        {
            bool albumIsExtbol = AlbumBolIsExt(_albuminfo.AlbumName);//相册是否已存在
            ManagerStateMsg msg = new ManagerStateMsg(false, "");
            if (!albumIsExtbol)
            {
                SQLiteParameter[] pars = null;
                try
                {
                    pars = new SQLiteParameter[7];
                    pars[0] = new SQLiteParameter("@AlbumNo", DbType.String);
                    pars[0].Value = _albuminfo.AlbumNO;
                    pars[1] = new SQLiteParameter("@AlbumName", DbType.String);
                    pars[1].Value = _albuminfo.AlbumName;
                    pars[2] = new SQLiteParameter("@AlbumRootPath", DbType.String);
                    pars[2].Value = _albuminfo.AlbumRootPath;
                    pars[3] = new SQLiteParameter("@AlbumRemark", DbType.String);
                    pars[3].Value = _albuminfo.AlbumRemark;
                    pars[4] = new SQLiteParameter("@AlbumTitleImg", DbType.String);
                    pars[4].Value = _albuminfo.AlbumTitleImg;
                    pars[5] = new SQLiteParameter("@CreateDate", DbType.String);
                    pars[5].Value = _albuminfo.CreateDate;
                    pars[6] = new SQLiteParameter("@UpdateDate", DbType.String);
                    pars[6].Value = _albuminfo.UpdateDate;

                    string strSQL = "insert into Album (AlbumNo,AlbumName,AlbumRootPath,AlbumRemark,AlbumTitleImg,CreateDate,UpdateDate) values (@AlbumNo,@AlbumName,@AlbumRootPath,@AlbumRemark,@AlbumTitleImg,@CreateDate,@UpdateDate)";
                    int _uprows=SQLiteHelper.Instance.ExecuteNonQuery(strSQL, pars);
                    if (_uprows > 0)
                    {
                        msg.ReturnValue = _albuminfo;
                        msg.Statevalue = true;
                        msg.MsgInfo = "保存成功";
                    }
                    else
                    {
                        msg.MsgInfo = "写入数据库失败!";
                    }
                }
                catch (Exception ex)
                {
                }
            }
            else
            {
                msg.MsgInfo = "同名相册已存在!";
            }

            return msg;
        }
        /// <summary>
        /// 编辑相册信息
        /// </summary>
        /// <param name="_albuminfo">相册信息</param>
        /// <returns></returns>
        public ManagerStateMsg EditAlbum(Album _albuminfo)
        {
            ManagerStateMsg msg = new ManagerStateMsg(false, "方法 EditAlbum 执行出现错误!");
            try
            {
                SQLiteParameter[] pars = null;
                pars = new SQLiteParameter[4];
                pars[0] = new SQLiteParameter("@AlbumNo", DbType.String);
                pars[0].Value = _albuminfo.AlbumNO;
                pars[1] = new SQLiteParameter("@AlbumName", DbType.String);
                pars[1].Value = _albuminfo.AlbumName;
                pars[2] = new SQLiteParameter("@AlbumRemark", DbType.String);
                pars[2].Value = _albuminfo.AlbumRemark;
                pars[3] = new SQLiteParameter("@UpdateDate", DbType.String);
                pars[3].Value = _albuminfo.UpdateDate;

                string strQuerySQL ="update Album set AlbumName=@AlbumName,AlbumRemark=@AlbumRemark,UpdateDate=@UpdateDate where AlbumNo=@AlbumNo";
                int _upRowscount= SQLiteHelper.Instance.ExecuteNonQuery(strQuerySQL, pars);
                if (_upRowscount>0)
                {
                    msg.MsgInfo = "相册信息更新成功!";
                    msg.Statevalue = true;
                }
                else
                {
                    msg.MsgInfo = "更新相册信息失败!";
                }
            }
            catch (Exception ex)
            {
                msg.MsgInfo = ex.Message;
            }
            return msg;
        }