/// <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; }